向 Slack 談話的範例網頁應用程式

創建一個簡單的網頁應用程式,通過對 Rememberizer 的查詢將 LLM 與用戶知識集成是非常容易的。

應用程式的源代碼可以在 這裡 找到。

在本節中,我們將提供逐步指導和完整的源代碼,以便您可以快速創建自己的應用程式。

我們在 OpenAI 上創建了一個 Talk-to-Slack GPT。Talk-to-Slack 網頁應用程式非常相似。

由 Rememberizer 在 Heroku 上提供的 Talk to Slack.com 網頁應用程式
由 Rememberizer 在 Heroku 上提供的 Talk-to-Slack.com 網頁應用程式
由 Rememberizer 在 OpenAI 上提供的 Talk to Slack GPT
由 Rememberizer 在 OpenAI 上提供的 Talk to Slack GPT

簡介

在這份指南中,我們提供了逐步的指導和完整的源碼,以幫助你創建你自己的應用程式,類似於我們與Rememberizer.ai的Talk-to-Slack GPT整合。與Slack整合不同的是,一個網路應用程式提供更多功能和控制,例如網路抓取、本地數據庫訪問、圖形與動畫,以及收集付款。此外,它可以被任何人使用,而不需要一個高級genAI帳戶。

概述

我們的示例應用程式,與 Slack 對話,託管在 Heroku 上,並整合 OpenAI 的 LLM 與 Rememberizer.ai,以增強您的 Slack 體驗。該網路應用程式使用 Flask 建構並提供如 OAuth2 整合,Slack 數據訪問,和直觀的使用者介面等功能。

功能

  • 基於 Flask 的架構:後端操作、前端通訊以及API交互均由 Flask 負責處理。

  • OAuth2 整合:使用 Rememberizer 的 OAuth2 流程,以實現安全的授權和資料存取。

  • Slack 數據存取:使用 Rememberizer 的API 安全地取得已連接的 Slack 用戶資料。

  • OpenAI LLM 整合:使用 OpenAI 的 LLM 服務來處理查詢,以便得出有見地的回答。

  • 直觀的用戶界面:提供現代 UI 設計以便輕鬆導航和交互。

  • 最佳實踐:遵從安全與用戶體驗標準,以實現無縫整合。

設定和部署

前置條件

  • Python

  • Flask

請注意,讓一個 LLM 將整個應用程式重寫成另一種語言(在我們的案例中是 Golang)並不是很困難。因此,請記住您並不僅限於使用 Python。

環境設定

設定這些環境變數:

  • APP_SECRET_KEY:Flask 的獨特秘密金鑰。

  • REMEMBERIZER_CLIENT_ID:您的 Rememberizer 應用的客戶端 ID。

  • REMEMBERIZER_CLIENT_SECRET:您的 Rememberizer 應用的客戶端秘密。

  • OPENAI_API_KEY:您的 OpenAI API 金鑰。

運行應用程式

  1. 啟動 Flask 應用程式:在終端機中運行 flask run,並在 http://localhost:5000 訪問應用程式。

  2. 將回調 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 部署

  1. 創建 Heroku 帳戶:安裝 Heroku CLI。

  2. 準備您的應用程序:確保存在 Procfileruntime.txtrequirements.txt

  3. 部署:使用 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