> 技术文档 > 简单易懂的利用python 调用ragflow api 教程及示例(内含源代码)_ragflow接口调用示例代码

简单易懂的利用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顺利!