QAnything接口文档

QAnything接口主要包括7个接口:新建知识库、查看知识库、删除知识库;上传文件、获取文件列表、删除文件;问答。

一.新建知识库(POST)

1.URL

http://{your_host}:8777/api/local_doc_qa/new_knowledge_base

2.请求参数(Body)

参数名示例参数值是否必填参数类型描述说明
user_id“zzp”String用户id (如需使用前端填zzp不要更换)
kb_name“kb_test”String知识库名称 (可以随意指定)

3.请求示例

{"user_id": "zzp",  //用户id"kb_name": "kb_test"  //知识库名称
}

4.响应示例

{"code": 200, //状态码"msg": "success", //提示信息"data": {"kb_id": "KB4c50de98d6b548af9aa0bc5e10b2e3a7", //知识库id"kb_name": "kb_test" //知识库名称}
}

二.上传文件(POST)

1.URL

http://{your_host}:8777/api/local_doc_qa/upload_files

说明:Content-Type: multipart/form-data

2.请求参数(Body)

参数名示例参数值是否必填参数类型描述说明
files文件二进制[文件类型]需要上传的文件,可多选(当use_lcoal_file为true时,选择无效)
user_id“zzp”String用户id
kb_id“KBb1dd58e8485443ce81166d24f6febda7”String知识库id
mode“strong”String上传模式,soft:文件名重复的文件不再上传,strong:文件名重复的文件强制上传
use_local_fileFALSEBoolean是否使用本地目录上传文件:「source/data」,可选:【true,false】

3.请求示例

同步请求示例:

import os
import requestsurl = "http://{your_host}:8777/api/local_doc_qa/upload_files"
folder_path = "./docx_data"
data = {"user_id": "zzp","kb_id": "KB6dae785cdd5d47a997e890521acbe1c9"
}files = []
for root, dirs, file_names in os.walk(folder_path):for file_name in file_names:if file_name.endswith(".md"):  # 只上传md文件file_path = os.path.join(root, file_name)files.append(("files", open(file_path, "rb")))response = requests.post(url, files=files, data=data)
print(response.text)

异步请求示例:

import argparse
import os
import sys
import json
import aiohttp
import asyncio
import time
import random
import string
import hashlib
import statisticsfiles = []
for root, dirs, file_names in os.walk("./docx_data"):for file_name in file_names:if file_name.endswith(".docx"):  # 只上传docx文件file_path = os.path.join(root, file_name)# if len(file_path) < 50:# print(file_path)files.append(file_path)
print(len(files))
response_times = []async def send_request(round_, files):print(len(files))url = 'http://{your_host}:8777/api/local_doc_qa/upload_files'data = aiohttp.FormData()data.add_field('user_id', 'zzp')data.add_field('kb_id', 'KBf1dafefdb08742f89530acb7e9ed66dd')data.add_field('mode', 'soft')total_size = 0for file_path in files:# print(file_path)file_size = os.path.getsize(file_path)total_size += file_sizedata.add_field('files', open(file_path, 'rb'))print('size:', total_size / (1024 * 1024))try:start_time = time.time()async with aiohttp.ClientSession() as session:async with session.post(url, data=data) as response:end_time = time.time()response_times.append(end_time - start_time)print(f"round_:{round_}, 响应状态码: {response.status}, 响应时间: {end_time - start_time}秒")#print(await response.json())except Exception as e:print(f"请求发送失败: {e}")async def main():start_time = time.time()num = int(sys.argv[1])  // 一次上传数量,http协议限制一次请求data不能大于100M,请自行控制数量round_ = 0r_files = files[:num]tasks = []task = asyncio.create_task(send_request(round_, r_files))tasks.append(task)await asyncio.gather(*tasks)print(f"请求完成")end_time = time.time()total_requests = len(response_times)total_time = end_time - start_timeqps = total_requests / total_timeprint(f"total_time:{total_time}")if __name__ == '__main__':asyncio.run(main())

4.响应示例

{"code": 200,  //状态码"msg": "success,后台正在飞速上传文件,请耐心等待",  //提示信息"data": [{"file_id": "1b6c0781fb9245b2973504cb031cc2f3",  //文件id"file_name": "网易有道智云平台产品介绍2023.6.ppt",  //文件名"status": "gray"  //文件状态(red:入库失败-切分失败,green,成功入库,yellow:入库失败-milvus失败,gray:正在入库)},{"file_id": "aeaec708c7a34952b7de484fb3374f5d","file_name": "有道知识库问答产品介绍.pptx","status": "gray"},{"file_id": "8ee98a88457c414a986a09c536fedde9","file_name": "韦小宝身份证.jpg","status": "gray"},{"file_id": "67af479f907b497cadb30c6e4b2d3fbc","file_name": "成长中心-辅导老师日常问题文档.pdf","status": "gray"}]  //文件列表
}

三.查看知识库(POST)

1.URL

http://{your_host}:8777/api/local_doc_qa/list_knowledge_base

2.请求参数(Body)

参数名示例参数值是否必填参数类型描述说明
user_id“zzp”String用户id

3.请求示例

{"user_id": "zzp" //用户id
}

4.响应示例

{"code": 200,  //状态码"msg": "success",  //提示信息"data": [{"kb_id": "KB973d4aea07f14c60ae1974404a636ad4",  //知识库id"kb_name": "kb_test"  //知识库名称}]   //知识库列表
}

四.获取文件列表(POST)

1.URL

http://{your_host}:8777/api/local_doc_qa/list_files

2.请求参数(Body)

参数名示例参数值是否必填参数类型描述说明
user_id“zzp”String用户id
kb_id“KBb1dd58e8485443ce81166d24f6febda7”String知识库id

3.请求示例

{"user_id": "zzp", //用户id  注意需要满足 只含有字母 数字 和下划线且字母开头 的要求"kb_id": "KBb1dd58e8485443ce81166d24f6febda7" //知识库id
}

4.响应示例

{"code": 200, //状态码"msg": "success", //提示信息"data": {"total": {  // 知识库所有文件状态"green": 100,"red": 1,"gray": 1,"yellow": 1,},        "details": {  // 每个文件的具体状态{"file_id": "21a9f13832594b0f936b62a54254543b", //文件id"file_name": "有道知识库问答产品介绍.pptx", //文件名"status": "green" //文件状态(red:入库失败-切分失败,green,成功入库,yellow:入库失败-milvus失败,gray:正在入库)},{"file_id": "333e69374a8d4b9bac54f274291f313e", //文件id"file_name": "网易有道智云平台产品介绍2023.6.ppt", //文件名"status": "green" //文件状态(red:入库失败-切分失败,green,成功入库,yellow:入库失败-milvus失败,gray:正在入库)},{"file_id": "709d6c3e071947038645f1f26ad99c6f", //文件id"file_name": "韦小宝身份证.jpg", //文件名"status": "green" //文件状态(red:入库失败-切分失败,green,成功入库,yellow:入库失败-milvus失败,gray:正在入库)},{"file_id": "85297c0b56104028913e89b6834c1a39", //文件id"file_name": "成长中心-辅导老师日常问题文档.pdf", //文件名"status": "green" //文件状态(red:入库失败-切分失败,green,成功入库,yellow:入库失败-milvus失败,gray:正在入库)},}}
}                

五.问答(POST)

1.URL

http://{your_host}:8777/api/local_doc_qa/local_doc_chat

2.请求参数(Body)

参数名示例参数值是否必填参数类型描述说明
user_id“zzp”String用户id
kb_ids[“KBb1dd58e8485443ce81166d24f6febda7”]Array知识库id的列表,支持多个知识库联合问答
question“保险单号是多少?”String知识库id的列表,支持多个知识库联合问答
history[[“question1”,“answer1”],[“question2”,“answer2”]]Array历史对话

3.请求示例

{"user_id": "zzp", //用户id"kb_ids": ["KBb1dd58e8485443ce81166d24f6febda7"], //知识库id,支持多个知识库联合问答"question": "保险单号是多少?", //用户问题"history": [] //历史对话:List[str]
}

4.响应示例

{"code": 200, //状态码"msg": "success", //提示信息"question": "保险单号是多少?", //用户问题"response": "保险单号是601J389343982022000536",  //模型回答"related_questions": [],  //相关问题"history": [["保险单号是多少?","保险单号是601J389343982022000536。"]], //历史对话:List[List[str]]"source_documents": [{"file_id": "f9b794233c304dd5b5a010f2ead67f51", //文本内容对应的文件id"file_name": "一嗨案件支付三者车损、人伤保险赔款及权益转让授权书.docx", //文本内容对应的文件名"content": "未支付第三者车损、人伤赔款及同意直赔第三者确认书 华泰财产保险有限公司  北京   分公司: 本人租用一嗨在贵司承保车辆(车牌号:京KML920)商业险保单号: 601J389343982022000536、交强险保单号:  601J310028493882022000570, 对 2023 年 03 月 25日所发生的保险事故(事故号:  9010020230325004124)中所涉及的交强险和商业险的保险赔款总金额 (依:三者京AFT5538定损金额), 同意支付给本次事故中第三者方。 在此本人确认:本人从未支付给第三者方任何赔偿,且承诺不就本次事故再向贵司及一嗨进行索赔。 同时本人保证如上述内容不属实、违反承诺,造成保险人损失的,由本人承担赔偿责任。 确认人(驾驶员)签字:              第三者方签字: 联系电话:                        联系电话: 确认日期:    年    月    日", //文本内容"retrieval_query": "保险单号是多少?", //文本内容对应的问题"score": "3.5585756", //相关性得分,分数越高越相关"embed_version": "local_v0.0.1_20230525_6d4019f1559aef84abc2ab8257e1ad4c" //embedding模型版本号}], //知识库相关文本内容"rematched_source_documents": [] //重新匹配的文本内容
}

六.删除文件(POST)

1.URL

http://{your_host}:8777/api/local_doc_qa/delete_files

2.请求参数(Body)

参数名示例参数值是否必填参数类型描述说明
user_id“zzp”String用户id
kb_id“KB1271e71c36ec4028a6542586946a3906”String知识库id
file_ids[“73ff7cf76ff34c8aa3a5a0b4ba3cf534”]Array要删除文件的id,支持批量删除

3.请求示例

{"user_id": "zzp", //用户id"kb_id": "KB1271e71c36ec4028a6542586946a3906", //知识库id"file_ids": ["73ff7cf76ff34c8aa3a5a0b4ba3cf534"] //文件id列表
}

4.响应示例

{"code": 200, //状态码"msg": "documents ['73ff7cf76ff34c8aa3a5a0b4ba3cf534'] delete success" //提示信息
}

七.删除知识库(POST)

1.URL

http://{your_host}:8777/api/local_doc_qa/delete_knowledge_base

2.请求参数(Body)

参数名示例参数值是否必填参数类型描述说明
user_id“zzp”String用户id
kb_ids[“KB1cd81f2bc515437294bda1934a20b235”]Array要删除的知识库id,支持批量删除

3.请求示例

{"user_id": "zzp", //用户id"kb_ids": ["KB1cd81f2bc515437294bda1934a20b235"] //知识库id列表
}

4.响应示例

{"code": 200, //状态码"msg": "Knowledge Base [('KB1cd81f2bc515437294bda1934a20b235',)] delete success" //提示信息
}

参考文献

[1] https://github.com/netease-youdao/QAnything/blob/develop_for_v1.2.2/docs/API.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】:命令行参数

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux命令行参数的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入…

禹神electron学习~

最近时间比较富裕 咱们浅浅来学习下electron 视频在这禹神&#xff1a;一小时快速上手Electron&#xff0c;前端Electron开发教程_哔哩哔哩_bilibili 先看下流程模型 先决条件 首先第一步 查看你的node和npm版本 创建你的应用 创建一个文件夹 我创建的名称为my-electron-…

Transformer动画讲解 - 工作原理

Transformer模型在多模态数据处理中扮演着重要角色,其能够高效、准确地处理包含不同类型(如图像、文本、音频、视频等)的多模态数据。 Transformer工作原理四部曲:Embedding(向量化)、Attention(注意力机制)、MLPs(多层感知机)和Unembedding(模型输出)。 阶段一:…

机器人控制系列教程之任务空间运动控制器搭建(2)

Simulink中的实例 推文《机器人控制系列教程之任务空间运动控制器搭建(1)》中&#xff0c;我们详细的讲解了Simulink中的taskSpaceMotionModel模块&#xff0c;实现的方式可以按照如下的步骤。 可以控制器模型替换为taskSpaceMotionModel模块后&#xff0c;该模块的输入分别为…

git 命令之 stash 命令详解

Git Stash 命令详解 在 Git 版本控制系统中&#xff0c;git stash 命令是开发者们的一个强大工具&#xff0c;它允许开发者保存当前工作目录的修改&#xff0c;以便稍后能够重新应用这些修改。这在需要切换分支或处理紧急任务时非常有用&#xff0c;因为它可以帮助开发者保持工…

501、二叉搜索树中的众数

给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。如果树中有不止一个众数&#xff0c;可以按 任意顺序 返回。 假定 BST 满足如下定义&#xff1…

周报 | 24.6.24-24.6.30文章汇总

为了更好地整理文章和发表接下来的文章&#xff0c;以后每周都汇总一份周报。 程序员学长 | 快速学会一个算法&#xff0c;Transformer&#xff08;下&#xff09;-CSDN博客 周报 | 24.6.17-24.6.23文章汇总-CSDN博客 python | NLTK&#xff0c;一个强大的 自然语言处理 Pyt…

Redis面试合集

概念 Redis是一种key-value型非关系数据库。 特点&#xff1a; 1、速度快&#xff0c;存在于内存中&#xff0c;类似于HashMap&#xff0c;HashMap的操作和查找的时间复杂度都是O(1) 2、支持丰富的数据类型&#xff0c;包括字符串、哈希、列表、集合、有序集合五种数据类型…

解锁跨境电商新边界:Temu API接口深度解析引言

引言 在竞争激烈的跨境电商领域&#xff0c;高效、精准的数据获取成为商家制胜的关键。Temu&#xff08;拼多多跨境电商&#xff09;作为行业内的新秀&#xff0c;其API接口服务为商家提供了强大的数据交互能力&#xff0c;尤其是其获取商品详情的核心功能&#xff0c;更是为商…

Python 文件操作

文件编码 将文件的内容翻译为二进制 文件操作 打开文件 open函数 语法&#xff1a; open(name, mode, encoding)name&#xff1a;文件名的字符串&#xff0c;可以包含具体路径。若没有路径&#xff0c;则默认为与py文件位于同一层 mode&#xff1a;打开文件的模式&#xf…

新质生产力最新测算(Shp/dta/xcel格式,2012-2022年)

数据简介&#xff1a;参考学者蔡湘杰、贺正楚的做法、我们通过收集数据构建了如下所示的衡量新质生产力的指标体系&#xff0c;但部分数据由于收集难度以及未公布等问题&#xff0c;部分数据有缺少&#xff0c;下面展示了部分原始数据&#xff0c;便于大家进行分析。 数据来源…

sql 的 update操作

sqlserver:在SQL Server中&#xff0c;你的UPDATE语句的语法需要稍微调整一下。你不能直接在SET子句之后立即跟INNER JOIN。正确的语法是将JOIN操作放在UPDATE和SET之间。以下是正确的写法&#xff1a; UPDATE test_item SET test_item.s1no subcontractor.s1no FROM test_it…

【PYG】简单分析Planetoid()中存储Cora数据集边的数量

文章目录 这得分析cora.cites原始文件步骤示例代码输出解释分析 chagpt生成的第一个版本答案&#xff0c;打印数据集的部分可以看下输出解释进一步验证总结 chatgpt生成的第二个版本答案检查 Cora 数据集的边输出解释检查边的方向性解释进一步优化运行结果解释 chagpt生成的第三…

RedHat9 | 内部YUM本地源服务器搭建

服务器参数 标识公司内部YUM服务器主机名yum-server网络信息192.168.37.1/24网络属性静态地址主要操作用户root 一、基础环境信息配置 修改主机名 [rootyum-server ~]# hostnamectl hostname yum-server添加网络信息 [rootyum-server ~]# nmcli connection modify ens160 …

mac 安装cnpm 淘宝镜像记录

mac 安装cnpm 淘宝镜像记录 本文介绍了在安装cnpm时遇到权限问题的解决方案&#xff0c;包括使用sudo&#xff0c;处理SSL证书过期&#xff0c;以及因版本不一致导致的错误处理方法&#xff0c;步骤包括设置npm配置、卸载和重新安装cnpm到特定版本。 安装 npm install cnpm …

Ansible 最佳实践:现代 IT 运维的利器

Ansible 最佳实践&#xff1a;现代 IT 运维的利器 Ansible 是一种开源的 IT 自动化工具&#xff0c;通过 SSH 协议实现远程节点和管理节点之间的通信&#xff0c;适用于配置管理、应用程序部署、任务自动化等多个场景。本文将介绍 Ansible 的基本架构、主要功能以及最佳实践&a…

免费开源的后端API服务-supabase安装和使用-简直是前端学习者福音

文章目录 它是什么安装和部署关于安装关于部署1、注册用户2、创建组织3、创建项目 创建数据库表&#xff08;填充内容&#xff09;填充数据库表 使用postman联调API 它是什么 一个开源免费的后端框架&#xff0c;firebase的替代品。可以简单理解类似于headless cms&#xff0c…

8605 删数问题

这是一个典型的贪心算法问题。我们可以从高位开始&#xff0c;找到第一个比后面数字大的数字&#xff0c;删除它&#xff0c;然后继续这个过程&#xff0c;直到删除k个数字。如果我们已经删除了k个数字&#xff0c;但是还没有找到一个比后面数字大的数字&#xff0c;那么我们就…

【多模态LLM】以ViT进行视觉表征的多模态模型1(BLIP-2、InstructBLIP)

note CLIP和BLIP的区别&#xff1a; CLIP&#xff1a;通过对比学习联合训练&#xff0c;预测图像和文本之间的匹配关系。即使用双塔结构&#xff0c;分别对图像和文本编码&#xff0c;然后通过计算cos进行图文匹配。BLIP&#xff1a;包括两个单模态编码器&#xff08;图像编码…

[Day 21] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的智能合約運行機制 區塊鏈技術自比特幣誕生以來&#xff0c;便以其去中心化、安全性和透明性等特點引起了廣泛的關注和應用。而智能合約作為區塊鏈技術的一大創新&#xff0c;進一步擴展了區塊鏈的應用場景&#xff0c;使其不僅僅局限於數字貨幣&#xff0c;還可以應用…