简单易懂的利用python 调用ragflow api 教程及示例(内含源代码)_ragflow接口调用示例代码
参考官方ragflow文档http://localhost/user-setting/api以及如何调用 RAGflow 的 API 接口?_ragflow api-CSDN博客
官方文档中给出了一些示例,但是是以crul的方式运行的,这里结合具体的示例和界面演示,利用python进行实现
1.创建数据库
import requestsurl = \"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 requestsdataset_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 requestsurl = 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 requestsurl = 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 requestsurl = 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顺利!