Python调用RAGFlow API的实用教程:示例代码全解析
参考官方ragflow文档http://localhost/user-setting/api以及如何调用 RAGflow 的 API 接口?_ragflow api-CSDN博客
官方文档中给出了一些示例,但是是以crul的方式运行的,这里结合具体的示例和界面演示,利用python进行实现
1.创建数据库
import requests
url = "http://localhost/api/v1/datasets" # 替换实际地址
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer "+"api" # 替换你的API密钥
}
data = {
"name": "test_1",
}
response = requests.post(url, headers=headers, json=data)
print("状态码:", response.status_code)
print("响应内容:", response.text) # 查看服务器返回的JSON
博主之前尝试的时候出现这一问题:
这里需要注意在api之前要加上"Bearer "
第一步完成,数据库创建成功
除了名字name这一参数,官方文档中也介绍了其他的参数,可自行查阅
2.上传文档
上一步创建数据库成功后在运行结果处会显示id,这个就是数据库id
import requests
dataset_id = "id"
url = f"http://localhost/api/v1/datasets/{dataset_id}/documents"
headers = {
"Authorization": "Bearer "+"api"
}
# 使用 with 语句确保文件正确关闭
with open('test1.pdf', 'rb') as f:
files = {
"file": ('test1.pdf', f, 'application/pdf') # 显式指定文件名和 MIME 类型
}
response = requests.post(url, headers=headers, files=files)
print("状态码:", response.status_code)
print("响应内容:", response.text)
运行成功,该数据库下已经有test1这一文件
3.解析文档
上一步运行中 有显示文档id信息
另外文档id也可以在这里的预览顶部网址处获取
import requests
url = f"http://localhost/api/v1/datasets/{dataset_id}/chunks" # 替换实际地址
headers = {
"Content-Type": "application/json'",
"Authorization": f"Bearer {api}" # 替换你的API密钥
}
data = {
"document_ids": [document_ids],
}
response = requests.post(url, headers=headers, json=data)
print("状态码:", response.status_code)
print("响应内容:", response.text) # 查看服务器返回的JSON`
注意这里的文件Id需要以列表的形式进行导入
解析完成,注意这里代码运行结束的时候是文档开始解析的时候,需要稍等一会文档解析完成
4.检索内容
import requests
url = f"http://localhost/api/v1/retrieval" # 替换实际地址
headers = {
"Content-Type": "application/json'",
"Authorization": f"Bearer {api}" # 替换你的API密钥
}
data = {
"question": "长江流域地表水资源储量如何?",
"dataset_ids": [dataset_id],
"document_ids": [document_ids],
}
response = requests.post(url, headers=headers, json=data)
print("状态码:", response.status_code)
print("响应内容:", response.text) # 查看服务器返回的JSON`
检索成功,这里是以Unicode编码中文字符表示中文资料的
5.创建聊天
注意这里的chat_id指的是助理id,也就是下方网址处的id
import requests
url = f"http://localhost/api/v1/chats/{chat_id}/completions" # 替换实际地址
headers = {
"Content-Type": "application/json'",
"Authorization": f"Bearer {api}" # 替换你的API密钥
}
data = {
"model": "model",
"messages": [{"role": "user", "content": "Say this is a test! "}],
}
response = requests.post(url, headers=headers, json=data)
print("状态码:", response.status_code)
print("响应内容:", response.text) # 查看服务器返回的JSON`
相应成功
ragflow中也有对应的对话
6.和聊天助手对话
url = f"http://localhost/api/v1/chats/{chat_id}/completions" # 替换实际地址
headers = {
"Content-Type": "application/json'",
"Authorization": f"Bearer {api}" # 替换你的API密钥
}
data = {
"question": "Who are you",
"stream": True,
"session_id": session_id
}
response = requests.post(url, headers=headers, json=data)
print("状态码:", response.status_code)
print("响应内容:", response.text) # 查看服务器返回的JSON``
系统中也可见问答效果
祝大家使用ragflow顺利!
作者:代码没bug神兽