テキストドキュメントの追加(file)
テキストドキュメントの追加(file)
テキストファイルを一括追加し、順にチャンク分割・埋め込み(ベクトル化)・保存を行います。
注:
embedding_model_version_idで埋め込みモデルを指定できます。省略した場合はシステムのデフォルト埋め込みモデルが使用されます。
注:このAPIは追加処理の結果のみを返します。最終的な埋め込み処理の完了状況は、「ドキュメントステータスのクエリ(Query Document Status)」APIを使用して確認してください。
リクエストメソッド
POST
リクエストURL
https://api-${endpoint}.gptbots.ai/v1/bot/doc/text/add
リクエスト認証
認証方法の説明についてはAPI Overviewをご参照ください。
リクエスト
リクエスト例
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/bot/doc/text/add' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"knowledge_base_id": "67457fea6f658672d6482542",
"embedding_model_version_id": "6620f06262390a0be1411c5d",
"chunk_token": 700,
"splitter": "\n",
"files": [
{
"file_url": "https://www.gptbots.ai/ja_JP/docs/article_1.pdf",
"file_base64": "SGVsbG8sIEJhc2U2NCBFbmNvZGluZyE=",
"source_url": "https://www.gptbots.ai/ja_JP/docs/article_1.pdf",
"file_name": "article_1.pdf"
}
]
}'
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/bot/doc/text/add' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"knowledge_base_id": "67457fea6f658672d6482542",
"embedding_model_version_id": "6620f06262390a0be1411c5d",
"chunk_token": 700,
"splitter": "\n",
"files": [
{
"file_url": "https://www.gptbots.ai/ja_JP/docs/article_1.pdf",
"file_base64": "SGVsbG8sIEJhc2U2NCBFbmNvZGluZyE=",
"source_url": "https://www.gptbots.ai/ja_JP/docs/article_1.pdf",
"file_name": "article_1.pdf"
}
]
}'
このコードブロックをポップアップで表示
リクエストヘッダー
| フィールド | タイプ | 説明 |
|---|---|---|
| Authorization | Bearer ${API Key} | 認証には Authorization: Bearer ${API Key} を使用してください。トークンはAPIキーページから取得できます。 |
| Content-Type | application/json | データの形式は application/json を設定してください。 |
リクエストボディ
| フィールド名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| knowledge_base_id | String | 任意 | ドキュメントを追加する対象のナレッジベース。未指定の場合は「デフォルト」のナレッジベースが使用されます。 |
| files | Array | 必須 | 追加するドキュメントのリスト。最大20件のドキュメントを同時に追加可能です。 |
| file_url | String | 任意 | 追加するドキュメントのURL。対応フォーマット:pdf/txt/md/doc/docx。PDFの最大サイズは30MB、その他形式は10MB。注:sURLまたはbase64のいずれか一方は必須。両方指定された場合は base64 が優先されます。 |
| file_base64 | String | 任意 | 追加するドキュメントのbase64エンコード文字列。対応フォーマット:pdf/txt/md/doc/docx。PDFの最大サイズは30MB、その他形式は10MB。※URLまたはbase64のいずれか一方は必須。両方指定された場合は base64 が優先されます。 |
| file_name | String | 必須 | 追加するドキュメントの名称。1~200文字まで指定可能です。 |
| source_url | String | 任意 | 追加するドキュメントのリソースURL。URLの形式に準拠している必要があります。 |
| embedding_model_version_id | String | 任意 | このバッチのドキュメントをベクトル化する埋め込みモデルのバージョンID。省略した場合はシステムのデフォルト埋め込みモデルが使用されます。値はモデル一覧の取得 API が返す EMBEDDING グループ内の modelId を指定してください。 |
| chunk_token | Integer | 任意 | ドキュメントを分割する際の1チャンクあたりの最大トークン数。デフォルトは600。指定可能な範囲は1~1000。注:最大トークン数または区切り文字のいずれか一方を必ず指定してください。両方指定された場合は区切り文字が優先されます。どちらも指定しない場合、リクエスト自体は成功しますが、ドキュメントはベクトル化の段階で処理に失敗します(ステータス FAIL_STORE)。 |
| splitter | String | 任意 | ドキュメントを分割する際の区切り文字。デフォルトは空。\n を使用して行区切りにすることが可能です。注:最大トークン数または区切り文字のいずれか一方を必ず指定してください。両方指定された場合は区切り文字が優先されます。どちらも指定しない場合、リクエスト自体は成功しますが、ドキュメントはベクトル化の段階で処理に失敗します(ステータス FAIL_STORE)。 |
レスポンス
レスポンス例
{
"doc": [
{
"doc_id": "xxxxxx",
"doc_name": "test_1.txt"
},
{
"doc_id": "xxxxxx",
"doc_name": "test_2.pdf"
}
],
"failed": [
"file_1",
"file_2"
]
}
{
"doc": [
{
"doc_id": "xxxxxx",
"doc_name": "test_1.txt"
},
{
"doc_id": "xxxxxx",
"doc_name": "test_2.pdf"
}
],
"failed": [
"file_1",
"file_2"
]
}
このコードブロックをポップアップで表示
成功時のレスポンス
| フィールド | タイプ | 説明 |
|---|---|---|
| doc | Array<Object> | 追加されたドキュメントの一覧。 |
| doc_id | String | 追加されたドキュメントのID。 |
| doc_name | String | 追加されたドキュメントの名前。 |
| failed | Array<Object> | 追加に失敗したドキュメント名の一覧。 |
エラー時のレスポンス
| フィールド | タイプ | 説明 |
|---|---|---|
| code | Int | エラーコード |
| message | String | エラーの詳細内容 |
エラーコード
| Code | Message |
|---|---|
| 40000 | パラメータエラー |
| 40000 | The embedding_model_version_id does not exist: 指定したモデルバージョンIDがプラットフォームのモデル一覧に存在しません |
| 40000 | The embedding_model_version_id is not an embedding model: 指定したモデルが埋め込みモデルではありません(例:チャットモデルの modelId を指定した場合) |
| 40000 | The embedding_model_version_id is not an available embedding model: この埋め込みモデルの提供元は API での指定にまだ対応していません |
| 40127 | 開発者認証に失敗しました |
| 20059 | エージェントが削除されています |
注:
embedding_model_version_idの検証に失敗した場合、バッチ内のドキュメントは一切作成されず、failedリストにも含まれません。上記のエラーレスポンスがそのまま返されます。
