概述
本文档旨在为开发者提供知识库系统的快速入门指南,涵盖从API token申请到完整知识库构建和使用的全流程。通过5个核心接口实现最短链路接入,并提供多语言SDK接入教程。
Token申请与认证
申请步骤:
- 访问百宝箱开发平台:百宝箱
- 添加令牌:在授权管理创建一个令牌
- 调用api:令牌创建好就可以调用下面的api了
知识库核心功能接口
序号 |
接口名称 |
功能描述 |
HTTP方法 |
path |
参数示例 |
1 |
创建知识库 |
创建新的知识库实例 |
POST |
/api/datasets/createDatasets |
{"name":"test_knowledge","description":"这是openapi创建的一个知识库"} |
3 |
上传文件 |
上传文档内容到指定文件 |
POST |
/api/file/upload |
|
2 |
创建知识库文件 |
在知识库中创建文件结构 |
POST |
/api/datasets/createDatasetDocument |
{"datasetId":"20250926asnT00509423","fileId":"20250926gatN15957444"} |
4 |
查询构建进度 |
检查知识库构建状态 |
GET |
/api/datasets/queryProgress |
{"documentId": "20250926asnT00509423"} |
5 |
知识库召回 |
从知识库中检索信息 |
POST |
/api/datasets/retrieve |
{"datasetId":"test_dataset_id","query":"什么是百宝箱?","limit":1} |
调用示例
openapi
直接使用以下curl命令即可:
创建知识库
curl -X POST \ https://api.tbox.cn/api/datasets/createDatasets \ -H 'Authorization: your-authorization-token-here' \ -H 'Content-Type: application/json' \ -d '{"name" : "test_knowledge", "description": "这是openapi创建的一个知识库"}'
上传文件
curl -X POST \ https://api.tbox.cn/api/file/upload \ -H 'Authorization: your-authorization-token-here' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \ -F 'file=@D:\下载\什么是百宝箱.txt'
创建知识库文件
curl -X POST \ https://api.tbox.cn/api/datasets/createDatasetDocument \ -H 'Authorization: your-authorization-token-here' \ -H 'Content-Type: application/json' \ -d '{"datasetId" : "20250926asnT00509423","fileId": "20250926gatN15957444"}'
查询知识库文件构建进度
curl -X GET \ 'https://api.tbox.cn/api/datasets/queryProgress?documentId=20250926a0ce2331328873' \ -H 'Authorization: your-authorization-token-here' \ -H 'Content-Type: application/json' \
知识库召回
curl -X POST \ https://api.tbox.cn/api/datasets/retrieve \ -H 'Authorization: your-authorization-token-here' \ -H 'Content-Type: application/json' \ -d '{"datasetId": "20250926asnT00509423","query": "什么是百宝箱?","limit": 1}'
Python SDK
sdk版本:
pip install tboxsdk==0.0.10
创建知识库
from tboxsdk.tbox import TboxClient def create_datasets(): """创建知识库请参考以下调用方式""" tbox = TboxClient(authorization="{your_token}") response = tbox.create_datasets(name="test_knowledge_1", description="这是openapi创建的一个知识库") print(f"--------------------------------------------------------") print(f"response: {response}") print(f"--------------------------------------------------------") if __name__ == "__main__": create_datasets()
上传文件
from tboxsdk.tbox import TboxClient def upload_file(): tbox = TboxClient(authorization="{your_token}") response = tbox_client.upload_file(file_path="{file_path}") print(f"--------------------------------------------------------") print(f"response: {response}") print(f"--------------------------------------------------------") if response.get("errorCode") == "0": file_id = response.get("data", "") print(f"文件ID: {file_id}") if __name__ == "__main__": upload_file()
创建知识库文件
from tboxsdk.tbox import TboxClient def create_dataset_document(): """创建知识库文件请参考以下调用方式""" tbox = TboxClient(authorization="{your_token}") response = tbox.create_dataset_document(dataset_id="2025092835ty00509709", file_id="20250928CyzT16083822") print(f"--------------------------------------------------------") print(f"response: {response}") print(f"--------------------------------------------------------") if __name__ == "__main__": create_dataset_document()
查询知识库文件构建进度
from tboxsdk.tbox import TboxClient def query_document_progress(): """创建知识库请参考以下调用方式""" tbox = TboxClient(authorization="{your_token}") response = tbox.query_document_progress(document_id="202509282GnZ0931358743") print(f"--------------------------------------------------------") print(f"response: {response}") print(f"--------------------------------------------------------") if __name__ == "__main__": query_document_progress()
知识库召回
from tboxsdk.tbox import TboxClient def retrieve_dataset(): """知识库召回请参考以下调用方式""" tbox = TboxClient(authorization="{your_token}") response = tbox.retrieve_dataset(query="什么是百宝箱?", dataset_id='2025092835ty00509709') print(f"--------------------------------------------------------") print(f"response: {response}") print(f"--------------------------------------------------------") if __name__ == "__main__": retrieve_dataset()
Java SDK
sdk版本:
<dependency> <groupId>cn.tbox</groupId> <artifactId>tboxsdk</artifactId> <version>0.0.11</version> </dependency>
创建知识库
import cn.tbox.sdk.TboxClient; import cn.tbox.sdk.core.exception.TboxClientConfigException; import cn.tbox.sdk.core.exception.TboxHttpResponseException; import cn.tbox.sdk.model.request.CreateDatasetRequest; import cn.tbox.sdk.model.response.TboxResponse; public class Demo { private static final String YOUR_TOKEN = "{your_token}"; public static void main(String[] args) throws TboxHttpResponseException { try { TboxClient client = new TboxClient(YOUR_TOKEN); CreateDatasetRequest chatRequest = new CreateDatasetRequest(); chatRequest.setName("test_knowledge_java"); chatRequest.setDescription("这是openapi创建的一个知识库"); TboxResponse<String> result = client.createDataset(chatRequest); System.out.println(result); } catch (TboxClientConfigException e) { System.err.println("Configuration error: " + e.getMessage()); e.printStackTrace(); } } }
上传文件
import java.util.Map; import cn.tbox.sdk.TboxClient; import cn.tbox.sdk.core.exception.TboxClientConfigException; import cn.tbox.sdk.core.http.HttpClientConfig; public class Demo { private static final String YOUR_TOKEN = "{your_token}"; public static void main(String[] args) throws TboxClientConfigException { // 初始化客户端 TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN)); TboxResponse<String> response = client.uploadFile("{filePath}"); System.out.println(response.getData()); } }
创建知识库文件
import cn.tbox.sdk.TboxClient; import cn.tbox.sdk.core.exception.TboxClientConfigException; import cn.tbox.sdk.core.exception.TboxHttpResponseException; import cn.tbox.sdk.model.request.CreateDatasetDocumentRequest; import cn.tbox.sdk.model.response.TboxResponse; public class Demo { private static final String YOUR_TOKEN = "{your_token}"; public static void main(String[] args) throws TboxHttpResponseException { try { TboxClient client = new TboxClient(YOUR_TOKEN); CreateDatasetDocumentRequest chatRequest = new CreateDatasetDocumentRequest(); chatRequest.setDatasetId("20250928clVY00509608"); chatRequest.setFileId("20250928CyzT16083822"); TboxResponse<String> result = client.createDatasetDocument(chatRequest); System.out.println(result); } catch (TboxClientConfigException e) { System.err.println("Configuration error: " + e.getMessage()); e.printStackTrace(); } } }
查询知识库文件构建进度
import cn.tbox.sdk.TboxClient; import cn.tbox.sdk.core.exception.TboxClientConfigException; import cn.tbox.sdk.core.exception.TboxHttpResponseException; import cn.tbox.sdk.model.response.DocumentProgressResponse; import cn.tbox.sdk.model.response.TboxResponse; public class Demo { private static final String YOUR_TOKEN = "{your_token}"; public static void main(String[] args) throws TboxHttpResponseException { try { TboxClient client = new TboxClient(YOUR_TOKEN); TboxResponse<DocumentProgressResponse> result = client.queryDocumentProgress("20250928EeSR0831362774"); System.out.println(result); } catch (TboxClientConfigException e) { System.err.println("Configuration error: " + e.getMessage()); e.printStackTrace(); } } }
知识库召回
import cn.tbox.sdk.TboxClient; import cn.tbox.sdk.core.exception.TboxClientConfigException; import cn.tbox.sdk.core.exception.TboxHttpResponseException; import cn.tbox.sdk.model.request.DatasetRetrieveRequest; import cn.tbox.sdk.model.response.DatasetRetrieveResponse; import cn.tbox.sdk.model.response.TboxResponse; public class Demo { private static final String YOUR_TOKEN = "{your_token}"; public static void main(String[] args) throws TboxHttpResponseException { try { TboxClient client = new TboxClient(YOUR_TOKEN); DatasetRetrieveRequest request = new DatasetRetrieveRequest(); request.setQuery("什么是百宝箱?"); request.setDatasetId("20250928clVY00509608"); TboxResponse<DatasetRetrieveResponse> result = client.retrieveDataset(request); System.out.println(result); } catch (TboxClientConfigException e) { System.err.println("Configuration error: " + e.getMessage()); e.printStackTrace(); } } }
Node.js SDK
创建知识库
import { TboxClient } from 'tbox-nodejs-sdk'; const client = new TboxClient({ httpClientConfig: { authorization: 'TBox-7a630a0c6e6a4d4da24c07f14b795403', }, }); const response = await client.createDatasets({ name: `test_dataset_${Date.now()}`, description: 'test dataset', }); console.log('response', response);
上传文件
import { TboxClient } from 'tbox-nodejs-sdk'; import { readFileSync } from 'node:fs'; const client = new TboxClient({ httpClientConfig: { authorization: 'your-authorization-token-here' } }); const file = new Blob([readFileSync('local-file-path')]); client.uploadFile(file, 'local-filename').then(response => { console.log(response); });
创建知识库文件
import { TboxClient } from 'tbox-nodejs-sdk'; const client = new TboxClient({ httpClientConfig: { authorization: 'TBox-7a630a0c6e6a4d4da24c07f14b795403', }, }); const response = await client.createDatasetDocument({ datasetId: '20250918d5DU00506980', fileId: '20250917piHA13216855', }); console.log('response', response);
查询知识库文件构建进度
import { TboxClient } from 'tbox-nodejs-sdk'; const client = new TboxClient({ httpClientConfig: { authorization: 'TBox-7a630a0c6e6a4d4da24c07f14b795403', }, }); const response = await client.queryDocumentProgress({ documentId: '20250918dm078031012985', }); console.log('response', response);
知识库召回
import { TboxClient } from 'tbox-nodejs-sdk'; const client = new TboxClient({ httpClientConfig: { authorization: 'TBox-7a630a0c6e6a4d4da24c07f14b795403', }, }); const response = await client.retrieveDataset({ datasetId: '20250918d5DU00506980', query: 'test', }); console.log('response', response);