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
○ その他 (手動入力)
#ERROR!
イメージソース: アリババクラウド (中国本土)
ベクトルデータベース: oceanbase
S3アドレス: http://172.18.107.232:9000
MCPアドレス: http://172.18.107.232:3005
#ERROR!
上記の設定を確認しますか? (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テストを実行し、システムがナレッジベースを正しく検索して質問に答えられるかどうかを確認します。