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

这篇具有很好参考价值的文章主要介绍了讯飞星火知识库文档问答Web API的使用(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

讯飞文档问答,LLM大模型,前端
上一篇提到过星火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次额度:
讯飞文档问答,LLM大模型,前端

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 字符。

文档上传参数含义:
讯飞文档问答,LLM大模型,前端
文档上传返回参数详情:
讯飞文档问答,LLM大模型,前端
文档总结参数请求:
讯飞文档问答,LLM大模型,前端
文档总结输出内容:
讯飞文档问答,LLM大模型,前端

本地文档上传示例:

    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

20231207update:

  • 从实验来看,如果上传的是txt格式的文档,接口好像出不了总结
{'flag': True, 'code': 0,'desc': '成功', 'data': None, 'sid': 'xxx'}

但是同一个txt,星火知识库网页版又可以出总结,感觉接口出现了什么问题:
讯飞文档问答,LLM大模型,前端

2.2 文档对话

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

官方文档:ChatDoc

文档对话的参数:
讯飞文档问答,LLM大模型,前端
输出参数详情:
讯飞文档问答,LLM大模型,前端

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

此时这里对于fileRefer是有点问题的,接口文档没有标记 下面列表的6 具体代表的是第六页,还是第6个chunk,如果是第6个chunk,那么第6个,是按什么规矩进行划分,每一个chunk是什么,也是没有表述清晰的:

{'xx1': [6], 'xx2': [0],'xx3': [14]}

单轮对话:

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
貌似没理我,暂时没申请到…文章来源地址https://www.toymoban.com/news/detail-778064.html

到了这里,关于讯飞星火知识库文档问答Web API的使用(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源大模型ChatGLM2-6B 2. 跟着LangChain参考文档搭建LLM+知识库问答系统

    租用了1台GPU服务器,系统 ubuntu20,Tesla V100-16GB (GPU服务器已经关机结束租赁了) SSH地址:* 端口:17520 SSH账户:root 密码:Jaere7pa 内网: 3389 , 外网:17518 VNC地址:* 端口:17519 VNC用户名:root 密码:Jaere7pa 硬件需求,ChatGLM-6B和ChatGLM2-6B相当。 量化等级    最低 GPU 显存 F

    2024年02月03日
    浏览(56)
  • 【LangChain学习】基于PDF文档构建问答知识库(三)实战整合 LangChain、OpenAI、FAISS等

    接下来,我们开始在web框架上整合 LangChain、OpenAI、FAISS等。 因为项目是基于PDF文档的,所以需要一些操作PDF的库,我们这边使用的是PyPDF2 传入 pdf 文件路径,返回 pdf 文档的文本内容。 首先我们需要将第一步拿到的本文内容拆分,我们使用的是 RecursiveCharacterTextSplitter ,默认

    2024年02月13日
    浏览(73)
  • #LLMOps##AIGC# Dify_构建本地知识库问答应用-生成Al应用的创新引擎 用于构建助手API和GPT的开源开发平台

    github: https://github.com/langgenius/dify/blob/main/README_CN.md 介绍文档:https://docs.dify.ai/getting-started/readme Dify 笔记 Dify 是什么? 开源的大语言模型(LLM)应用开发平台 融合了后端即服务(Backend as Service)和 LLMOps 的理念 使开发者可以快速搭建生产级的生成式 AI 应用 为什么使用 Dify?

    2024年01月16日
    浏览(48)
  • ai聊天问答知识库机器人源码,基于gpt实现的本地知识库问答实现,聊天对话效果,发送回复以及流式输出...

    现在基于gpt做自己项目的问答机器人,效果非常的好。可以把自己的文档上传上去,让机器人根据文档来进行回答。 想要实现智能AI问答功能,现在大部分都是基于向量数据库的形式。 整体的流程就是:上传文档===openai向量接口 ==== 存入向量数据库 访客咨询:  咨询问题

    2024年02月10日
    浏览(49)
  • chatglm实现基于知识库问答的应用

    目前由于ChatGPT横空出世,互联网如雨后春笋冒出了非常多的类ChatGPT的大型语言模型。但是对于这些语言模型,我们应该如何将它应用到我们实际的生产中需要一个更加成熟的解决方案。 本文旨在通过介绍ChatGLM的使用来讲述如何将一个开源的语言模型应用于智能问答,知识库

    2024年02月06日
    浏览(38)
  • 【chatglm3】(4):如何设计一个知识库问答系统,参考智谱AI的知识库系统,

    https://www.bilibili.com/video/BV16j411E7FX/?vd_source=4b290247452adda4e56d84b659b0c8a2 【chatglm3】(4):如何设计一个知识库问答系统,参考智谱AI的知识库系统,学习设计理念,开源组件 https://open.bigmodel.cn/knowledge 知识配置: 项目地址是: https://github.com/chatchat-space/Langchain-Chatchat gitee搬运的项

    2024年02月05日
    浏览(48)
  • 基于大语言模型知识问答应用落地实践 – 知识库构建(下)

    上篇介绍了构建知识库的大体流程和一些优化经验细节,但并没有结合一个具体的场景给出更细节的实战经验以及相关的一些 benchmark 等,所以本文将会切入到一个具体场景进行讨论。 目标场景:对于 PubMed 医疗学术数据中的 1w 篇文章进行知识库构建,实现快速的注入和查

    2024年02月10日
    浏览(50)
  • LangChain入门(四)-构建本地知识库问答机器人

    在这个例子中,我们会介绍如何从我们本地读取多个文档构建知识库,并且使用 Openai API 在知识库中进行搜索并给出答案。 目录 一、安装向量数据库chromadb和tiktoken 二、使用案例 三、embeddings持久化 四、在线的向量数据库Pinecone 一、安装向量数据库chromadb和tiktoken    其中h

    2024年02月05日
    浏览(60)
  • 【Langchain】+ 【baichuan】实现领域知识库【RAG】问答系统

    本项目使用 Langchain 和 baichuan 大模型, 结合领域百科词条数据(用xlsx保存),简单地实现了领域百科问答实现。

    2024年02月21日
    浏览(50)
  • Linux服务器快速安装FastGPT知识库问答系统

    最近开始体验FastGPT知识库问答系统,参考官方文档,在自己的阿里云服务器使用Docker Compose快速完成了部署。 环境说明:阿里云ECS,2核8G,X86架构,CentOS 7.9操作系统。 1.登录服务器,执行相关命令完成安装。 1.登录服务器,在/mnt目录(可以自己选择)下创建fastgpt目录,并下载

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包