Chainlit: スケーラブルな会話型 AI フレームワーク
Chainlit は、堅牢でスケーラブルな会話型 AI アプリケーションを構築するために設計されたオープンソースの非同期 Python フレームワークです。 柔軟な基盤を提供し、開発者が外部 API、カスタム ロジック、ローカル モデルをシームレスに統合できるようにします。
このチュートリアルでは、Chainlit 内の 2 つの取得拡張生成 (RAG) 実装を示します。
ローカルチェーンライトセットアップ
仮想環境を作成します:
<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
のプレースホルダーにアクセスします。アップサンの展開
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 がメイン環境で実行されていることが表示されます。
実装 1: 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
に追加します。 これにより、ログイン フォームが追加されます。
ハッシュされたパスワードを生成するスクリプトを作成します。ユーザーをデータベースに追加します (ハッシュされたパスワードを使用)。認証をデプロイし、ログインをテストします。
結論
このチュートリアルでは、2 つの RAG 実装と認証を使用して、Upsun に Chainlit アプリケーションをデプロイする方法を示しました。 柔軟なアーキテクチャにより、さまざまな適応と統合が可能になります。
以上がUpsun 上の RAG を使用した Chainlit AI インターフェイスの実験の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。