首頁 > 後端開發 > Python教學 > 在 Upsun 上使用 RAG 試驗 Chainlit AI 介面

在 Upsun 上使用 RAG 試驗 Chainlit AI 介面

Patricia Arquette
發布: 2025-01-21 00:14:14
原創
368 人瀏覽過

Chainlit:可擴充的對話式人工智慧框架

Chainlit 是一個開源非同步 Python 框架,旨在建立強大且可擴展的對話式 AI 應用程式。 它提供了靈活的基礎,允許開發人員無縫整合外部 API、自訂邏輯和本地模型。

Experiment with Chainlit AI interface with RAG on Upsun

本教學示範了 Chainlit 中的兩種檢索增強產生 (RAG) 實作:

  1. 利用 OpenAI 助理上傳文件。
  2. 將 llama_index 與本機文件資料夾結合使用。

本地 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

啟動Chainlit:

<code class="language-bash">chainlit hello</code>
登入後複製

存取佔位符//m.sbmmt.com/link/2674cea93e3214abce13e072a2dc2ca5

Experiment with Chainlit AI interface with RAG on Upsun

Upsun 部署

Git 初始化

初始化 Git 儲存庫:

<code class="language-bash">git init .</code>
登入後複製

建立.gitignore檔案:

<code>.env
database/**
data/**
storage/**
.chainlit
venv
__pycache__</code>
登入後複製

Upsun 專案建立

使用 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 在您的主環境中運作。

Experiment with Chainlit AI interface with RAG on Upsun

實現一: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 將建立一個向量儲存。

Experiment with Chainlit AI interface with RAG on Upsun

Experiment with Chainlit AI interface with RAG on Upsun

助理邏輯(app.py)

app.py 內容替換為提供的程式碼。 關鍵部分:@cl.on_chat_start 建立一個新的 OpenAI 線程,@cl.on_message 將使用者訊息傳送到該線程並串流回應。

提交並部署變更。測試助手。

Experiment with Chainlit AI interface with RAG on Upsun

實作2:OpenAI llama_index

此實作使用 llama_index 進行本地知識管理,並使用 OpenAI 進行回應產生。

建立分支

建立一個新分支:

<code class="language-bash">mkdir chainlit && cd chainlit
python3 -m venv venv
source venv/bin/activate</code>
登入後複製
登入後複製

資料夾建立與安裝

建立 datastorage 資料夾。將安裝新增至 Upsun 配置中。

app.py 更新

使用提供的 llama_index 程式碼更新 app.py。 此程式碼載入文檔,建立 VectorStoreIndex,並使用它透過 OpenAI 回答查詢。

部署新環境並上傳data資料夾。測試應用程式。

Experiment with Chainlit AI interface with RAG on Upsun

獎勵:身份驗證

使用 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)

使用 app.py 將驗證邏輯新增至 @cl.password_auth_callback。 這會新增一個登入表單。

建立一個腳本來產生雜湊密碼。將使用者新增至資料庫(使用雜湊密碼)。部署身份驗證和測試登入。

Experiment with Chainlit AI interface with RAG on Upsun

結論

本教程示範如何在 Upsun 上部署 Chainlit 應用程序,並使用兩個 RAG 實作和身份驗證。 靈活的架構允許各種適應和整合。

以上是在 Upsun 上使用 RAG 試驗 Chainlit AI 介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板