向 Slack 发送消息的示例 Web 应用
创建一个简单的网络应用程序,以通过对 Rememberizer 的查询将 LLM 与用户知识集成是非常简单的。
应用的源代码可以在 这里 找到。
在本节中,我们将提供逐步说明和完整的源代码,以便您可以快速创建自己的应用程序。
我们在 OpenAI 上创建了一个 Talk-to-Slack GPT。Talk-to-Slack 网页应用非常相似。


介绍
在这个指南中,我们提供了分步说明和完整的源代码,以帮助您创建自己的类似于我们与Rememberizer.ai的Talk-to-Slack GPT整合的应用程序。与Slack整合不同,一个网页应用程序提供更多的特性和控制,如网页抓取,本地数据库访问,图形和动画,以及收集支付。此外,它可以被任何人使用,而无需拥有高级genAI账户。
概述
我们的示例应用程序,“Talk to Slack”,托管在Heroku上,并整合了OpenAI的LLM和Rememberizer.ai,以增强您的Slack体验。该网络应用程序使用Flask构建,并提供了如OAuth2集成、访问Slack数据和直观用户界面等功能。
特性
基于Flask的架构:由Flask处理后端操作,前端通信和API交互。
OAuth2集成:通过Rememberizer的OAuth2流程进行安全授权和数据访问。
Slack数据访问:使用Rememberizer的API安全地获取用户连接的Slack数据。
OpenAI LLM集成:通过OpenAI的LLM服务处理查询,以获得有洞察力的回应。
直观的用户界面:通过现代UI设计进行简单的导航和交互。
最佳实践:遵守安全和用户体验标准,以实现无缝集成。
设置和部署
前提条件
Python
Flask
环境配置
设置以下环境变量:
APP_SECRET_KEY
:Flask的唯一密钥。REMEMBERIZER_CLIENT_ID
:您的Rememberizer应用的客户端ID。REMEMBERIZER_CLIENT_SECRET
:您的Rememberizer应用的客户端密钥。OPENAI_API_KEY
:您的OpenAI API密钥。
运行应用程序
启动 Flask 应用:在终端中运行
flask run
,并通过http://localhost:5000
访问应用。将回调 URL 复制到您的 Rememberizer 应用配置中:
https://<YOURHOST>/auth/rememberizer/callback
示例:http://localhost:5000/auth/rememberizer/callback
。
部署到云端
建议部署到 Heroku、Google Cloud Platform (GCP)、Amazon Web Services (AWS) 或 Microsoft Azure 等平台。
Heroku 部署
创建 Heroku 账户:安装 Heroku CLI。
准备您的应用程序:确保存在
Procfile
、runtime.txt
和requirements.txt
。部署:使用 Heroku CLI 或 GitHub 集成进行部署。
详细步骤
将 Heroku 连接到 GitHub:启用来自 GitHub 仓库的自动部署,以实现无缝更新。
手动部署:可选择使用手动部署以获得更多控制。
其他设置
安装 Heroku CLI:
brew tap heroku/brew && brew install heroku
(macOS)。添加 SSL 证书:使用自签名证书进行初始 HTTPS 设置。
在 Heroku 上配置环境变量:使用
heroku config:set KEY=value
设置必要的密钥。
其他云平台
GCP:设置 GCP 账户,使用
app.yaml
准备您的应用,并使用gcloud app deploy
进行部署。AWS:在设置 AWS 账户和 AWS CLI 后,使用 Elastic Beanstalk 进行部署。
Azure:在创建 Azure 账户并安装 Azure CLI 后,通过 Azure App Service 进行部署。
安全性和最佳实践
在部署之前,请验证您的 requirements.txt
,调整生产环境的配置,并更新 OAuth 重定向 URI。
应用代码说明
@app.route('/') (首页路由):
当访问根 URL (/) 时,此路由渲染 index.html 模板。它作为您应用程序的主页。
@app.route('/auth/rememberizer') (Rememberizer 认证路由):
此路由启动与 Rememberizer.ai 的 OAuth2 认证过程。它生成一个随机状态值,将其存储在会话中,构建包含必要参数(客户端 ID、重定向 URI、范围和状态)的授权 URL,并将用户重定向到 Rememberizer.ai 的授权页面。
@app.route('/auth/rememberizer/callback') (Rememberizer 回调路由):
此路由处理用户授权您的应用程序后来自 Rememberizer.ai 的回调。它从查询参数中提取授权码,使用 Rememberizer.ai 的令牌端点将其兑换为访问令牌,并将访问令牌存储在会话中。然后,它将用户重定向到 /dashboard 路由。
@app.route('/dashboard') (仪表板路由):
此路由向用户显示仪表板页面。它检查用户的会话中是否有访问令牌;如果没有,它将用户重定向到认证路由。如果用户已认证,它会向 Rememberizer.ai 的账户端点发出请求以检索账户信息,并使用这些信息渲染 dashboard.html 模板。
@app.route('/slack-info') (Slack 集成信息路由):
此路由显示用户与 Rememberizer.ai 的 Slack 集成信息。它检查访问令牌,并向 Rememberizer.ai 的集成端点发出请求以获取集成数据。然后,它使用这些数据渲染 slack_info.html 模板。
@app.route('/ask', methods=['POST']) (提问路由):
此路由处理用户提交的问题。它检查访问令牌,从表单数据中检索用户的问题,并向 Rememberizer.ai 的文档搜索端点发出请求以查找相关信息。然后,它使用 OpenAI 的 GPT-4 模型根据问题和搜索结果生成答案。答案在 answer.html 模板中渲染。
附加说明
图标设计:使用详细的折纸艺术风格设计,反映了AI和通信集成。我们的图标是在Midjourney和Image2Icon中创建的。
SSL 配置:使用OpenSSL生成自签名证书以实现安全通信。
探索与创新
我们鼓励您通过自己的 AI 集成网页应用进行探索和创新,旨在提升您平台内的生产力和协作。
本修订文档为开发者提供了创建自己 AI 集成网页应用的全面指南,类似于 Talk-to-Slack。它包括设置、部署和应用代码概述的详细说明,以及最佳实践
Last updated