このアプリケーションは、Next.js をフロントエンドとして、FastAPI をバックエンドとして利用することでチャットボットを容易にし、動的な Web インタラクションに LangChain の機能を利用します。
このアプリケーションは、Python/FastAPI サーバーを/api/
ルートの下の Next.js アプリに統合します。これは、 next.config.js
書き換えによって実現され、すべての/api/:path*
リクエストが/api
フォルダーにある FastAPI サーバーに送信されます。ローカルでは、FastAPI は127.0.0.1:8000
で実行されますが、本番環境では Vercel でサーバーレス関数として動作します。
npm install
.env
ファイルを作成します。 OPENAI_API_KEY=[your-openai-api-key]
npm run dev
バックエンドのみのテストの場合:
conda create --name nextjs-fastapi-your-chat python=3.10
conda activate nextjs-fastapi-your-chat
pip install -r requirements.txt
uvicorn api.index:app --reload
チャット履歴を保存するためのオプションは次のとおりです。
RAG (Retrieval Augmented Generation) は、カスタム知識ベースから取得したコンテキストを使用して言語モデルを強化します。このプロセスには、HTML ドキュメントを取得し、それらをチャンクに分割し、OpenAI のような埋め込みモデルを使用してこれらのチャンクをベクトル化することが含まれます。このベクトル化されたデータはベクトル ストアを形成し、ユーザーのクエリに基づいたセマンティック検索を可能にします。取得された関連チャンクは言語モデルのコンテキストとして使用され、ユーザーの問い合わせに対する包括的な応答を形成します。
get_vectorstore_from_url
関数は、指定された URL からテキストを抽出して処理します。一方、 get_context_retriever_chain
会話履歴全体に関連するコンテキストを取得するチェーンを形成します。このパイプライン アプローチにより、応答がコンテキストを認識して正確になることが保証されます。