当前位置: 首页 > news >正文

讯飞星火知识库文档问答Web API的使用(二)

在这里插入图片描述
上一篇提到过星火spark大模型,现在有更新到3.0:
给ChuanhuChatGPT 配上讯飞星火spark大模型V2.0(一)
同时又看到有知识库问答的web api,于是就测试了一下。
下一篇是在ChuanhuChatGPT 中单独写一个基于星火知识库的内容。


1 SparkDesk的文档问答

SparkDesk的文档问答模块相关文档与地址:

  • 官方演示地址: https://chatdoc.xfyun.cn/chat
  • 星火知识库 API 文档
  • embedding API 文档

本篇记录的是通过星火知识库Web API +ChuanhuGPT 的一个实验项目

吐槽一下:
星火文档问答官方开放的代码不咋地,可能没啥人用,拿个半成品就挂官方了?? 讯飞的AI社区官方感觉也不咋运营…

知识库web api整体结构还是简单的,不过跟在线的版本,有一些功能上的阉割:

  • 文档上传
  • 文档总结/摘要
  • 文档问答

知识库API 第一次申请会给1000次额度:
在这里插入图片描述

2 代码示例

笔者稍微打包了一下,具体代码放到了我的github:SparkDesk_Document_QA:

  • Document_upload_summary.py:文档上传 + 文档总结
  • Document_Q_And_A.py:文档问答

使用前需申请一下api key + 安装依赖:

pip install websocket -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install websocket-client -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install requests_toolbelt -i https://pypi.tuna.tsinghua.edu.cn/simple

2.1 文档上传+文档总结

官方关于文档总结有两个接口,我就没看懂这俩啥区别。。所以只封装一个进来,与文档上传放在一个类中。
官方文档:ChatDoc

文档上传规范:
上传知识库文档数据,目前支持 doc/docx、pdf、md、txt 格式,单文件大小不超过 20MB,不超过 100W 字符。

文档上传参数含义:
在这里插入图片描述
文档上传返回参数详情:
在这里插入图片描述
文档总结参数请求:
在这里插入图片描述
文档总结输出内容:
在这里插入图片描述

本地文档上传示例:

    APPId = "xxxx"APISecret = "xxxx"dus = Document_Upload_Summary(APPId, APISecret)# 本地文档上传files = {'file': open('背影.txt', 'rb')}body = {"url": "","fileName": "背影.txt","fileType": "wiki",     # 固定值"needSummary": False,"stepByStep": False,"callbackUrl": "your_callbackUrl",}response = dus.upload_files(files,body)if response.json()['code'] == 0:print(f'请求的文件FIleId:{response.json()["data"]["fileId"]}')# 文档总结fileid = 'xxxx'response = dus.file_summary(fileid)response.json()

其中,注意,

  • 文档上传还是一个个上传比较好,需要记录下fileid,之后对话就是根据这个进行问答;
  • 文档上传可以用URL

2.2 文档对话

这里本来是支持流式输出的,笔者改成了一次性全部输出,是通过global的方式
此时额外学了一下websocket:python中使用websocket调用、获取、保存大模型API

官方文档:ChatDoc

文档对话的参数:
在这里插入图片描述
输出参数详情:
在这里插入图片描述

若返回 fileRefer 为空,提示 "抱款,在文档中没有找到与提问相关的内容,请尝试换个问题问问吧。"表示提问未匹配到文档内容,可以降低chatExtends.wikiFilterScore以降低匹配阈值,也可以开启chatExtends.sparkWhenWithoutEmbedding用大模型兜底

单轮对话:

APPId = "xxxx"
APISecret = "xxxxxx"
doc_qa = Document_Q_And_A(APPId, APISecret)# 单轮对话
body = {'chatExtends' :  {"wikiPromptTpl": "请将以下内容作为已知信息:\n<wikicontent>\n请根据以上内容回答用户的问题。\n问题:<wikiquestion>\n回答:","wikiFilterScore": 65,"temperature": 0.5,'sparkWhenWithoutEmbedding':False},"fileIds": ["xxxxx"],"messages": [{"role": "user","content": "父亲要走的时候,去买了什么东西?"}]
}
recep_mesg = doc_qa.chat(body)
doc_qa.embellish_message_func(recep_mesg)

其中,
websocket是把一句话流式,一个片段一个片段的输出,embellish_message_func就是把这些拼装起来;
body中chatExtends 可以不设置,也有默认;fileIds 是之前上传的field,可以支持多个field
embellish_message_func输出两类内容:

  • 一句完整的话
  • 引用的参考文献内容,是一个字典形式,{'43816997a7a44a299d0bfb7c360c5838': [2, 0, 1]}

多轮对话:

# 多轮对话
body = {"fileIds": ["xxxxxx"],"messages": [{"role": "user","content": "父亲要走的时候,去买了什么东西?"},{"role": "user","content": "如何理赔"},{"role": "assistant","content": "您好,根据您提供的信息,理赔操作指引如下:\n\n1. 登录小程序,点击“理赔申请”。\n2. 选择对应保单。\n3. 上传理赔相关资料。\n4. 填写发票总金额。\n5. 填写银行账户,需精确到支行。\n6. 点击“提交”成功后,返回“理赔服务”界面,点选“理赔查询”,查看理赔进度和申请记录。\n7. 如有需要,点击“查看详情”,查看理赔详情和金额。\n\n请注意,如有严重既往症员工还请和HR部门及时报备沟通,如未及时报备,保险公司不承担相关责任。同时,索赔资料不齐全导致延迟赔付等问题也需要注意。"},{"role": "user","content": "家属有什么福利"}]
}
doc_qa.chat(body)
recep_mesg

如上进行多轮对话输出

2.3 其他知识库高级功能

星火知识库服务还提供 自定义切分、OCR 识别、文档内容查询、内容相似度检索等功能,如有需要请联系cbg_open_ml@iflytek.com
貌似没理我,暂时没申请到…

相关文章:

讯飞星火知识库文档问答Web API的使用(二)

上一篇提到过星火spark大模型&#xff0c;现在有更新到3.0&#xff1a; 给ChuanhuChatGPT 配上讯飞星火spark大模型V2.0&#xff08;一&#xff09; 同时又看到有知识库问答的web api&#xff0c;于是就测试了一下。 下一篇是在ChuanhuChatGPT 中单独写一个基于星火知识库的内容…...

第十三章 深度解读预训练与微调迁移,模型冻结与解冻(工具)

一个完整的代码 pythonCopy codeimport torch import torchvision import torchvision.transforms as transforms import torch.nn as nn import torch.optim as optim # 设置设备&#xff08;CPU或GPU&#xff09; device torch.device("cuda" if torch.cuda.is_a…...

tinyViT论文笔记

论文&#xff1a;https://arxiv.org/abs/2207.10666 GitHub&#xff1a;https://github.com/microsoft/Cream/tree/main/TinyViT 摘要 在计算机视觉任务中&#xff0c;视觉ViT由于其优秀的模型能力已经引起了极大关注。但是&#xff0c;由于大多数ViT模型的参数量巨大&#x…...

解决ssh -T git@github.com报错connection closed问题

解决ssh -T gitgithub.com报错connection closed问题 问题解决 问题 $ ssh -T gitgithub.com kex_exchange_identification: Connection closed by remote host Connection closed by 20.205.243.166 port 22解决 参考链接 $ ssh -T -p 443 gitssh.github.com...

新手如何购买保险,保险投资基础入门

一、教程描述 本套保险教程&#xff0c;大小2.63G&#xff0c;共有11个文件。 二、教程目录 第01课 保险到底有什么用.mp4 第02课 已有社保还需要商业保险吗.mp4 第03课 你必须要懂的保险基础知识.mp4 第04课 关于重疾你必须要知道的几件事情.mp4 第05课 家庭重疾险如何…...

基于springboot网上超市管理系统

基于springboot网上超市管理系统 摘要 随着互联网的快速发展&#xff0c;电子商务行业迎来了蓬勃的发展&#xff0c;网上超市作为电子商务的一种形式&#xff0c;为消费者提供了便利的购物体验。本文基于Spring Boot框架&#xff0c;设计和实现了一个网上超市管理系统&#xff…...

FlagEmbedding目前最好的sentence编码工具

FlagEmbedding专注于检索增强llm领域&#xff0c;目前包括以下项目: Fine-tuning of LM : LM-Cocktail Dense Retrieval: LLM Embedder, BGE Embedding, C-MTEB Reranker Model: BGE Reranker 更新 11/23/2023: Release LM-Cocktail, 一种通过模型融合在微调时保持原有模型通用…...

rabbitMQ发布确认-交换机不存在或者无法抵达队列的缓存处理

rabbitMQ在发送消息时&#xff0c;会出现交换机不存在&#xff08;交换机名字写错等消息&#xff09;&#xff0c;这种情况如何会退给生产者重新处理&#xff1f;【交换机层】 生产者发送消息时&#xff0c;消息未送达到指定的队列&#xff0c;如何消息回退&#xff1f; 核心&…...

STM32 MAP文件

文章目录 1 生成Map2 map中概念3 文件分析流程3.1 Section Cross References3.2 Removing Unused input sections from the image&#xff08;移除未使用的段&#xff09;3.3 Image Symbol Table 映像符号表3.4 Memory Map of the image&#xff08;映像的内存分布&#xff09;…...

云原生Kubernetes系列 | Kubernetes静态Pod的使用

云原生Kubernetes系列 | Kubernetes静态Pod的使用 静态pod不建议在master上操作,因为master上跑的是集群核心静态pod,如果配置失败,会导致集群故障。建议在knode1或knode2上去做。 kubernetes master节点上的核心组件pod其实都是静态pod: [root@k8s-master ~]# ls /etc/ku…...

二次创作Z01语言

目录 一&#xff0c;字符集 二&#xff0c;编译分词 三&#xff0c;token含义 四&#xff0c;Z01翻译成C 五&#xff0c;执行翻译后的代码 六&#xff0c;打印Hello World! 一&#xff0c;字符集 假设有门语言叫Z01语言&#xff0c;代码中只有0和1这两种字符。 二&#…...

【蓝桥杯国赛真题28】Scratch行驶的汽车 少儿编程图形化编程 中小学生第十四届蓝桥杯scratch国赛真题讲解

目录 scratch行驶的汽车 一、题目要求 编程实现 二、案例分析 1、角色分析...

LeetCode Hot100 236.二叉树的最近公共祖先

题目&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节…...

ERROR: Could not find a version that satisfies the requirement torch

在windows 上安装pip install torch torchvision torchaudio 报错&#xff1a; ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found for torch 解决办法&#xff1a; 将python版本降到3.11…...

2009年iMac装64位windows7及win10

2009年iMac装64位windows7及win10 Boot Camp没有“创建 Windows7 或更高版本的安装磁盘”选项 安装完Mac OS系统后&#xff0c;要制作Windows7安装U盘时才发现&#xff0c;Boot Camp没有“创建 Windows7 或更高版本的安装磁盘”选项&#xff0c;搜索到文章&#xff1a;修改Boo…...

(三) Windows 下 Sublime Text 3 配置Python环境和Anaconda代码提示

一&#xff1a;新建一个 Python3.7 编译环境。 1 Tools--Build System--New Build System... 修改前&#xff1a; 修改后&#xff1a; 内容&#xff1a; {"cmd":["C:\\Python\\Python37-32\\python.exe","-u","$file"],"file_r…...

【shell脚本】一些简单的shell脚本案例,mark一下

1、使用变量生成随机密码 比如自定义密码里面是数字和字母(或者还可以是某些符号等),随机生成一个想要的多少位的密码 [root@localhost test]#vim mima.sh #!/bin/bash str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPKRSTUVWXYZ0123456789" for i in {1..6} …...

Android Studio记录一个错误:Execution failed for task ‘:app:lintVitalRelease‘.

Android出现Execution failed for task :app:lintVitalRelease.> Lint found fatal errors while assembling a release target. Execution failed for task :app:lintVitalRelease解决方法 Execution failed for task ‘:app:lintVitalRelease’ build project 可以正常执…...

计算机组成原理4

1.汇编语言 2.汇编语言常见的运算指令 3.AT&T格式 和 Intel格式 4.跳转指令 5.cmp比较的底层原理 6.函数调用的机器级表示 7.CISC和RISC...

【人工智能】Chatgpt的训练原理

前言 前不久&#xff0c;在学习C语言的我写了一段三子棋的代码&#xff0c;但是与我对抗的电脑是没有任何思考的&#xff0c;你看了这段代码就理解为什么了&#xff1a; void computerMove(char Board[ROW][COL], int row, int col) {while (1){unsigned int i rand() % ROW, …...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能

vxe-table vue 表格复选框多选数据&#xff0c;实现快捷键 Shift 批量选择功能 查看官网&#xff1a;https://vxetable.cn 效果 代码 通过 checkbox-config.isShift 启用批量选中,启用后按住快捷键和鼠标批量选取 <template><div><vxe-grid v-bind"gri…...