新增文字類型文件
新增文字類型文件
批量上傳文字類型文件,這些文件將依序進行分段/切片、嵌入/向量表示及儲存,以取得新的文件 ID。
注意:
可透過embedding_model_version_id指定嵌入模型;未填寫時使用系統預設的嵌入模型。
僅提供上傳結果,最終的嵌入結果可透過「查詢文件狀態」API 獲取。
請求方法
POST
請求 URL
https://api-${endpoint}.gptbots.ai/v1/bot/doc/text/add
請求驗證
請參閱概覽了解驗證詳情。
請求
請求範例
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/zh_TW/docs/article_1.pdf",
"file_base64": "SGVsbG8sIEJhc2U2NCBFbmNvZGluZyE=",
"source_url": "https://www.gptbots.ai/zh_TW/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/zh_TW/docs/article_1.pdf",
"file_base64": "SGVsbG8sIEJhc2U2NCBFbmNvZGluZyE=",
"source_url": "https://www.gptbots.ai/zh_TW/docs/article_1.pdf",
"file_name": "article_1.pdf"
}
]
}'
此代碼塊在浮窗中顯示
請求標頭
| 欄位 | 類型 | 描述 |
|---|---|---|
| Authorization | Bearer ${API Key} | 使用 Authorization: Bearer ${API Key} 進行驗證。API Key 可從 API Key 頁面獲取。 |
| Content-Type | application/json | 資料類型,設為 application/json。 |
請求參數
| 欄位 | 類型 | 必填 | 描述 |
|---|---|---|---|
| knowledge_base_id | String | 否 | 文件新增的目標知識庫。如果未填,預設為「Default」知識庫。 |
| files | Array<Object> | 是 | 要新增的文件列表。支援一次最多新增 20 個文件。 |
| file_url | String | 否 | 要新增文件的 URL。支援格式:pdf/txt/md/doc/docx。PDF 最大 30MB,其他格式最大 10MB。注意:URL 或 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 | 否 | 分段時每個知識段的最大 token 數量。預設值為 600,有效範圍為 1-1000。 注意: chunk_token 或 splitter 必須指定其一,當兩者皆指定時,以 splitter 為主。若皆未提供,介面仍會回傳成功,但文件會在向量化階段處理失敗(狀態為 FAIL_STORE),請務必至少提供其一。 |
| splitter | String | 否 | 用於文字分段的分段符。預設為空,可自訂字串作為分段符。 注意: chunk_token 或 splitter 必須指定其一,當兩者皆指定時,以 splitter 為主。若皆未提供,介面仍會回傳成功,但文件會在向量化階段處理失敗(狀態為 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清單中,而是直接回傳上述錯誤回應。
