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神兽

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python调用RAGFlow API的实用教程:示例代码全解析

    发表回复