如果第三方脚本需要调用 RAGflow 的 API 接口,向知识库提供内容并进行 RAG 处理,通常需要调用以下相关接口:
1. 创建数据集 (Create dataset)
-
接口 :POST /api/v1/datasets
-
作用 :在向知识库提供内容之前,需要先创建一个数据集(知识库)。这个接口允许你指定数据集的名称、语言、嵌入模型等参数。
-
示例 :
curl --request POST \
--url http://{address}/api/v1/datasets \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data '{
"name": "test_1"
}'
2. 上传文档 (Upload documents)
-
接口 :POST /api/v1/datasets/{dataset_id}/documents
-
作用 :将文档(如文本文件、PDF 等)上传到指定的数据集(知识库)中。这是将内容导入知识库的关键步骤。
-
示例 :
curl --request POST \
--url http://{address}/api/v1/datasets/{dataset_id}/documents \
--header 'Content-Type: multipart/form-data' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--form 'file=@./test1.txt' \
--form 'file=@./test2.pdf'
3. 解析文档 (Parse documents)
-
接口 :POST /api/v1/datasets/{dataset_id}/chunks
-
作用 :对上传的文档进行解析,将其内容转换为适合 RAG 处理的格式。这个过程会根据文档的类型和内容进行相应的处理,如文本提取、分词等。
-
示例 :
curl --request POST \
--url http://{address}/api/v1/datasets/{dataset_id}/chunks \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data '
{
"document_ids": ["97a5f1c2759811efaa500242ac120004","97ad64b6759811ef9fc30242ac120004"]
}'
4. 检索内容 (Retrieve chunks)
-
接口 :POST /api/v1/retrieval
-
作用 :在完成文档解析后,如果需要从知识库中检索特定内容,可以使用此接口。它会根据用户的问题或关键词,在知识库中查找相关的文档片段(chunks)。
-
示例 :
curl --request POST \
--url http://{address}/api/v1/retrieval \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data '
{
"question": "What is advantage of ragflow?",
"dataset_ids": ["b2a62730759d11ef987d0242ac120004"],
"document_ids": ["77df9ef4759a11ef8bdd0242ac120004"]
}'
5. 创建聊天会话 (Create session with chat assistant)
-
接口 :POST /api/v1/chats/{chat_id}/sessions
-
作用 :如果希望与知识库进行交互式对话,需要先创建一个聊天会话。这个会话将用于后续的对话交互。
-
示例 :
curl --request POST \
--url http://{address}/api/v1/chats/{chat_id}/sessions \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data '
{
"name": "new session"
}'
6. 与聊天助手对话 (Converse with chat assistant)
-
接口 :POST /api/v1/chats/{chat_id}/completions
-
作用 :在创建会话后,可以使用此接口向聊天助手提问,开启基于知识库的 AI 对话。聊天助手会根据知识库中的内容生成回答。
-
示例 :
curl --request POST \
--url http://{address}/api/v1/chats/{chat_id}/completions \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data-binary '
{
"question": "Who are you",
"stream": true,
"session_id":"9fa7691cb85c11ef9c5f0242ac120005"
}'
通过以上接口,第三方脚本可以完成向 RAGflow 知识库提供内容并进行 RAG 处理的整个流程。根据具体的应用场景和需求,可以选择调用其中的部分或全部接口。