FastGPTは、LLM大規模言語モデルに基づく知識ベースの質問応答システムであり、データ処理とモデル呼び出しを随時利用可能な機能として提供します。 本記事では、OceanBaseをベクトルライブラリとして使用してFastGPTをデプロイし、知識質問応答を実装する方法について説明します。
バージョン互換性
- OceanBaseデータベース ≥ V4.3.3
前提条件
FastGPTを使用する前に、次のことを確認してください:
- OceanBaseデータベースのデプロイが完了し、MySQLモードのユーザーテナントが作成されていること。テナント作成の詳細については、テナントの作成を参照してください。
- ベクトル検索機能を有効にするため、テナントでob_vector_memory_limit_percentage構成パラメータが設定されていることを確認してください。V4.3.5 BP3 より前のバージョンでは値を30に設定することを推奨しますが、V4.3.5 BP3 以降のバージョンではデフォルト値の0のままにしておくことを推奨します。この構成パラメータをより正確に設定する必要がある場合は、ob_vector_memory_limit_percentageを参照してこの値を計算してください。
- Dockerのデプロイが完了し、Dockerサービスが実行中であり、現在のユーザーがdockerコマンドを実行する権限を持っていること(docker infoで確認可能)。
- Docker Compose V2がインストール済みであること(docker-composeで確認可能)。
- 通義千問(Qwen)APIキーを取得済みであること(Alibaba Cloud Bailianプラットフォームから取得)。
手順
ステップ1:OceanBaseデータベースの接続文字列を取得する
OceanBaseデータベースのデプロイ担当者から接続文字列を取得します。例:
obclient -h$host -P$port -u$user_name -p$password -D$database_name
パラメータ説明:
$host:接続IPアドレス。ODP接続の場合はODPアドレスを使用し、直接接続の場合はOBServer IPを使用します。$port:接続ポート。ODPのデフォルトは2883、直接接続のデフォルトは2881です。$database_name:データベース名。注意
テナントに接続するユーザーには、データベースに対する
CREATE、INSERT、DROPおよびSELECT権限が付与されていなければなりません。ユーザー権限の詳細については、MySQLモードの権限分類を参照してください。$user_name:接続アカウント。ODP形式:ユーザー@テナント#クラスタまたはクラスタ:テナント:ユーザー。直接接続形式:ユーザー@テナント。$password:アカウントのパスワード。
接続文字列の詳細については、OBClientを使用してOceanBaseテナントに接続するを参照してください。
例:
obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest
ステップ2:FastGPTサービスのデプロイ
- docker-compose.ymlとconfig.json設定ファイルを取得します:
bash <(curl -fsSL https://doc.fastgpt.cn/deploy/install.sh) --region=cn --vector=oceanbase
出力例:
イメージソースを選択してください (↑↓ 選択、Enterで確定):
● アリババクラウド (中国本土)
○ GitHub (グローバル)
ベクトルデータベースを選択してください (↑↓ 選択、Enterで確定):
○ PostgreSQL + pgvector
○ Milvus
○ Zilliz
● OceanBase
○ SeekDB
S3アクセスアドレスを選択してください - クライアントとコンテナがアクセス可能である必要があります (↑↓ 選択、Enterで確定):
● http://172.18.107.232:9000
○ その他 (手動入力)
SSE MCPアクセスアドレスを選択してください - クライアントとコンテナがアクセス可能である必要があります (↑↓ 選択、Enterで確定):
● http://172.18.107.232:3005
○ その他 (手動入力)
==============================
イメージソース: アリババクラウド (中国本土)
ベクトルデータベース: oceanbase
S3アドレス: http://172.18.107.232:9000
MCPアドレス: http://172.18.107.232:3005
==============================
上記の設定を確認しますか? (y/n) [y]: y
設定ファイルをダウンロード中です...
docker-compose.ymlをダウンロードしました
config.jsonをダウンロードしました
S3アクセスアドレスを更新しました: http://172.18.107.232:9000
MCPアクセスアドレスを更新しました: http://172.18.107.232:3005
設定のダウンロードに成功しました! 次の操作:
1. サービスを起動する: docker compose up -d
2. ポートを開放する: 3000, 9000, 3005
3. サービスにアクセスする: http://localhost:3000
4. サービスにログインする: デフォルトアカウントは 'root'、パスワードは: '1234'
5. モデルを設定する: 'アカウント-モデルプロバイダー'ページでモデルを設定します
詳細ドキュメント: https://doc.fastgpt.cn/docs/self-host/deploy/docker
- コンテナを起動します:
docker-compose up -d
# コンテナの状態を確認します。
sudo docker ps -a |grep fastgpt
- FastGPTにアクセスします:
http://localhost:3000 から FastGPT にアクセスします。デフォルトのアカウントは root、パスワードは 1234 です。
ステップ3:AIモデルの設定
FastGPTに初めてログインした後、言語モデルとインデックスモデルを設定する必要があります。
- システムは自動的にモデル設定ページに移動します。
- 自動的に移動しない場合は、アカウント-モデルプロバイダーページで設定できます。
- 設定ファイルをクリックし、Qwenモデルを設定する例を以下に示します。
[
{
"model": "text-embedding-v1",
"metadata": {
"provider": "Qwen",
"model": "text-embedding-v1",
"name": "text-embedding-v1",
"type": "embedding",
"defaultToken": 512,
"maxToken": 8000,
"defaultConfig": {
"dimensions": 1536
},
"isActive": true,
"requestUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings",
"requestAuth": "Bearer **************",
"normalization": false,
"batchSize": 1,
"isDefault": true
}
},
{
"model": "qwen-max",
"metadata": {
"provider": "Qwen",
"model": "qwen-max",
"name": "qwen-max",
"type": "llm",
"maxContext": 128000,
"maxTokens": 8000,
"quoteMaxToken": 120000,
"maxTemperature": 1,
"showTopP": true,
"responseFormatList": [
"text",
"json_object"
],
"showStopSign": true,
"vision": false,
"reasoning": false,
"toolChoice": true,
"datasetProcess": true,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"useInEvaluation": true,
"isActive": true,
"maxResponse": 8000,
"requestUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
"requestAuth": "Bearer *************",
"defaultSystemChatPrompt": "",
"isDefault": true,
"isDefaultDatasetTextModel": true
}
}
]
requestAuthにQwen APIキーを入力してください。形式は:Bearer API-KEY です。 設定完了後、利用可能なモデルページで確認できます。
ステップ4:ナレッジベースの作成
- FastGPTのナレッジベースページで、「新規作成」をクリックして汎用ナレッジベースを作成します。
- 新規作成/インポートをクリックし、ナレッジベースのタイプ(ローカルファイル、Webページのリンク、またはカスタムテキスト)を選択します。
- ドキュメントファイル(PDF、TXT、DOCXなどの形式をサポート)をアップロードし、次へをクリックします。
- データ処理パラメータを設定します。例:
- 処理方法:ブロックストレージ
- ブロック条件:原文長が1000を超える
- インデックスモデル:text-embedding-v1
- テキスト理解モデル:qwen-max
ステップ5:Q&A機能のテスト
- ワークベンチで新しいAgentを作成します。
- 対話Agentテンプレートを選択し、名前を入力して、作成をクリックします。
- Agentアプリケーションパラメータを設定します:
- AIモデル:qwen-max
- 関連ナレッジベース:作成済みのナレッジベースを選択します。
- 検索方法:セマンティック検索
- 最低関連度:0.4
- 引用上限:5000
- デバッグプレビューでQ&Aテストを実行し、システムがナレッジベースを正しく検索して質問に答えられるかどうかを確認します。