Chainlit:可擴充的對話式人工智慧框架
Chainlit 是一個開源非同步 Python 框架,旨在建立強大且可擴展的對話式 AI 應用程式。 它提供了靈活的基礎,允許開發人員無縫整合外部 API、自訂邏輯和本地模型。
本教學示範了 Chainlit 中的兩種檢索增強產生 (RAG) 實作:
本地 Chainlit 設定
建立虛擬環境:
<code class="language-bash">mkdir chainlit && cd chainlit python3 -m venv venv source venv/bin/activate</code>
安裝所需的套件並儲存相依性:
<code class="language-bash">pip install chainlit pip install llama_index # For implementation #2 pip install openai pip freeze > requirements.txt</code>
啟動Chainlit:
<code class="language-bash">chainlit hello</code>
存取佔位符https://www.php.cn/link/2674cea93e3214abce13e072a2dc2ca5
Upsun 部署
初始化 Git 儲存庫:
<code class="language-bash">git init .</code>
建立.gitignore
檔案:
<code>.env database/** data/** storage/** .chainlit venv __pycache__</code>
使用 CLI 建立 Upsun 項目(依照指示操作)。 Upsun 將自動設定遠端儲存庫。
Chainlit 的 Upsun 設定範例:
<code class="language-yaml">applications: chainlit: source: root: "/" type: "python:3.11" mounts: "/database": source: "storage" source_path: "database" ".files": source: "storage" source_path: "files" "__pycache__": source: "storage" source_path: "pycache" ".chainlit": source: "storage" source_path: ".chainlit" web: commands: start: "chainlit run app.py --port $PORT --host 0.0.0.0" upstream: socket_family: tcp locations: "/": passthru: true "/public": passthru: true build: flavor: none hooks: build: | set -eux pip install -r requirements.txt deploy: | set -eux # post_deploy: | routes: "https://{default}/": type: upstream upstream: "chainlit:http" "https://www.{default}": type: redirect to: "https://{default}/"</code>
透過 Upsun CLI 設定 OPENAI_API_KEY
環境變數:
<code class="language-bash">upsun variable:create env:OPENAI_API_KEY --value=sk-proj[...]</code>
提交並部署:
<code class="language-bash">git add . git commit -m "First chainlit example" upsun push</code>
查看部署狀態。 成功部署將顯示 Chainlit 在您的主環境中運作。
實現一:OpenAI助理及上傳檔案
此實作使用 OpenAI 助理來處理上傳的文件。
在 OpenAI 平台上建立一個新的 OpenAI 助理。設定係統指令,選擇模型(帶有文字回應格式),並保持較低的溫度(例如0.10)。 複製助手 ID (asst_[xxx]
) 並將其設定為環境變數:
<code class="language-bash">upsun variable:create env:OPENAI_ASSISTANT_ID --value=asst_[...]</code>
將您的文件(首選 Markdown)上傳到助手。 OpenAI 將建立一個向量儲存。
將 app.py
內容替換為提供的程式碼。 關鍵部分:@cl.on_chat_start
建立一個新的 OpenAI 線程,@cl.on_message
將使用者訊息傳送到該線程並串流回應。
提交並部署變更。測試助手。
實作2:OpenAI llama_index
此實作使用 llama_index 進行本地知識管理,並使用 OpenAI 進行回應產生。
建立一個新分支:
<code class="language-bash">mkdir chainlit && cd chainlit python3 -m venv venv source venv/bin/activate</code>
建立 data
和 storage
資料夾。將安裝新增至 Upsun 配置中。
使用提供的 llama_index 程式碼更新 app.py
。 此程式碼載入文檔,建立 VectorStoreIndex,並使用它透過 OpenAI 回答查詢。
部署新環境並上傳data
資料夾。測試應用程式。
獎勵:身份驗證
使用 SQLite 資料庫新增身份驗證。
建立一個 database
資料夾並將掛載加入到 Upsun 配置中。為資料庫路徑建立環境變數:
<code class="language-bash">pip install chainlit pip install llama_index # For implementation #2 pip install openai pip freeze > requirements.txt</code>
使用 app.py
將驗證邏輯新增至 @cl.password_auth_callback
。 這會新增一個登入表單。
建立一個腳本來產生雜湊密碼。將使用者新增至資料庫(使用雜湊密碼)。部署身份驗證和測試登入。
結論
本教程示範如何在 Upsun 上部署 Chainlit 應用程序,並使用兩個 RAG 實作和身份驗證。 靈活的架構允許各種適應和整合。
以上是在 Upsun 上使用 RAG 試驗 Chainlit AI 介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!