基于讯飞开放平台API服务构建集成大模型能力

news2024/11/16 5:32:59

在前面的一篇文章中实测体验了讯飞开放平台发布的V2.0版本大模型的能力,感兴趣的话可以自行移步阅读即可:

《科大讯飞发布星火认知大模型2.0版——体验实测》

这里一并发布的还有API接口,如下所示:

 点击【API测试申请】即可自动跳转至新建工单页面,如下所示:

 填写自己的对应信息即可提交工单,等待平台审核通过。

APPID的获取方法在这里。安装提示进行操作创建1个应用即可。如下所示:

 接下来就可以通过编写程序来调用接口进行大模型能力的调用了。这里程序其实也是不需要自己去重头开发的,官方的实例里面还是比较详细的。 文档地址在这里,如下所示:

 请求参数构造实例如下所示:

# 参数构造示例如下
{
        "header": {
            "app_id": "12345",
            "uid": "12345"
        },
        "parameter": {
            "chat": {
                "domain": "general",
                "temperature": 0.5,
                "max_tokens": 1024, 
            }
        },
        "payload": {
            "message": {
                # 如果想获取结合上下文的回答,需要开发者每次将历史问答信息一起传给服务端,如下示例
                # 注意:text里面的所有content内容加一起的tokens需要控制在8192以内,开发者如有较长对话需求,需要适当裁剪历史信息
                "text": [
                    {"role": "user", "content": "你是谁"} # 用户的历史问题
                    {"role": "assistant", "content": "....."}  # AI的历史回答结果
                    # ....... 省略的历史对话
                    {"role": "user", "content": "你会做什么"}  # 最新的一条问题,如无需上下文,可只传最新一条问题
                ]
        }
    }
}

接口请求字段由三个部分组成:header,parameter, payload。 字段解释如下

header部分

参数名称类型必传参数要求参数说明
app_idstring应用appid,从开放平台控制台创建的应用中获取
uidstring最大长度32每个用户的id,用于区分不同用户

parameter.chat部分

参数名称类型必传参数要求参数说明
domainstring取值为[general,generalv2]指定访问的领域,general指向V1.5版本 generalv2指向V2版本。注意:不同的取值对应的url也不一样!
temperaturefloat取值为[0,1],默认为0.5核采样阈值。用于决定结果随机性,取值越高随机性越强即相同的问题得到的不同答案的可能性越高
max_tokensint取值为[1,4096],默认为2048模型回答的tokens的最大长度
top_kint取值为[1,6],默认为4从k个候选中随机选择⼀个(⾮等概率)
chat_idstring需要保障用户下的唯一性用于关联用户会话

payload.message.text部分

注:text下所有content累计内容 tokens需要控制在8192内

参数名称类型必传参数要求参数说明
rolestring取值为[user,assistant]user表示是用户的问题,assistant表示AI的回复
contentstring所有content的累计tokens需控制8192以内用户和AI的对话内容

接口响应实例如下所示:

# 接口为流式返回,此示例为最后一次返回结果,开发者需要将接口多次返回的结果进行拼接展示
{
    "header":{
        "code":0,
        "message":"Success",
        "sid":"cht000cb087@dx18793cd421fb894542",
        "status":2
    },
    "payload":{
        "choices":{
            "status":2,
            "seq":0,
            "text":[
                {
                    "content":"我可以帮助你的吗?",
                    "role":"assistant",
                    "index":0
                }
            ]
        },
        "usage":{
            "text":{
                "question_tokens":4,
                "prompt_tokens":5,
                "completion_tokens":9,
                "total_tokens":14
            }
        }
    }
}

接口返回字段分为两个部分,header,payload。字段解释如下

header部分

字段名类型字段说明
codeint错误码,0表示正常,非0表示出错;详细释义可在接口说明文档最后的错误码说明了解
messagestring会话是否成功的描述信息
sidstring会话的唯一id,用于讯飞技术人员查询服务端会话日志使用,出现调用错误时建议留存该字段
statusint会话状态,取值为[0,1,2];0代表首次结果;1代表中间结果;2代表最后一个结果

payload.choices部分

字段名类型字段说明
statusint文本响应状态,取值为[0,1,2]; 0代表首个文本结果;1代表中间文本结果;2代表最后一个文本结果
seqint返回的数据序号,取值为[0,9999999]
contentstringAI的回答内容
rolestring角色标识,固定为assistant,标识角色为AI
indexint结果序号,取值为[0,10]; 当前为保留字段,开发者可忽略

payload.usage部分(在最后一次结果返回)

字段名类型字段说明
question_tokensint保留字段,可忽略
prompt_tokensint包含历史问题的总tokens大小
completion_tokensint回答的tokens大小
total_tokensintprompt_tokens和completion_tokens的和,也是本次交互计费的tokens大小

 这里官方给出来很多语言版本的调用实例方便大家直接上手使用,不需要完全从零开始开发,可能需要根据自己的实际业务场景进行调整接口。

我这里选择的是Python版本的调用程序。

 SparkApi.py模块是核心调用请求实现模块

test.py模块主要需要自己填写对应的APPID、API_SECRET和API_KEY三个字段,即可直接启动。

我在本地做了简单的测试如下所示:

 最后还是老样子,问一下这个数学问题,感觉模型回答得依旧是不行的,我还特意在问题最后写了一句提醒的话【要考虑实际情况】,结果模型回答还是不尽人意。

 不过这些不是开发者一时半会能去改善的,这里主要的目的是为了基于API接口请求来走通大模型调用的流程,为后面可能使用到的场景做一点铺垫,感兴趣的话都可以自行尝试一下!

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

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

相关文章

PHP服饰文化网站系统Dreamweaver开发mysql数据库web结构php编程计算机网页项目

一、源码特点 PHP 服饰文化网站系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 源码下载 https://download.csdn.net/download/qq_41221322/88236778 PHP服饰文化网站…

【哈希表】HashSet HashMap LeetCode习题

目录 136.只出现一次的数字 137.只出现一次的数字 || 217.存在重复元素 219.存在重复元素 || 771.宝石与石头 旧键盘(牛客) 首先需要导包 import java.utli.*; 表中常用的是前两个&#xff0c;时间复杂度低。O(1) Set<E> set new HashSet<>(); set.conta…

使用VSCode配置简单的vue项目

由于最近要使用的项目框架为前后端分离的&#xff0c;采用的是vue.jswebAPI的形式进行开发的。因为之前我没有接触过vue.js&#xff0c;也只是通过视频文档做了一些简单的练习。今天技术主管说让大家熟悉下VSCode开发vue&#xff0c;所以自己摸索了好久&#xff0c;才算是把简单…

2023年7月京东扫地机器人行业品牌销售排行榜(京东数据产品)

伴随消费者解放双手的消费需求&#xff0c;我国清洁电器行业快速发展。且随着消费回暖&#xff0c;我国扫地机器人市场也开始慢慢走出寒冬&#xff0c;止跌回升。 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年7月份&#xff0c;京东平台扫地机器人的销量为16万&…

正中优配:港股迎来估值“黄金坑” 哪个点位介入胜率高?

近两周&#xff0c;港股向下突破了一切技能短线支撑信号。在新的技能信号构成前&#xff0c;港股有望迎来估值压力的开释&#xff0c;带来一个估值“黄金坑”。当估值回到“轻视”区间时&#xff0c;咱们信任港股对全球资本的吸引力将再次凸显。详细而言&#xff0c;咱们用两种…

eDP接口的PCB布局布线要求

eDP接口是一种基于DisplayPort架构和协议的一种全数字化接口&#xff0c;传递高分辨率信号只需要较简单的连接器以及较少的引脚就可以实现&#xff0c;同时还能够实现多数据同时传输。 图1 EDP接口 eDP接口的PCB设计布局布线注意事项&#xff1a; 1、远离干扰源&#xff0c;防…

让eslint的错误信息显示在项目界面上

1.需求描述 效果如下 让eslint中的错误&#xff0c;显示在项目界面上 2.问题解决 1.安装 vite-plugin-eslint 插件 npm install vite-plugin-eslint --save-dev2.配置插件 // vite.config.js import { defineConfig } from vite import vue from vitejs/plugin-vue import e…

vue3 中wangEditor富文本编辑器上传图片功能

前端代码&#xff1a; wangEditor中要实现上传图片功能需要在editorConfig中添加一个对象属性。 const editorConfig { placeholder: "请输入内容...", MENU_CONF: {} }; 然后根据官方文档上的方法&#xff0c;填写uploadImage的上传地址 editorConfig.MENU_CONF[&q…

安卓主板定制_电磁屏/电容屏安卓平板基于MTK联发科方案定制

定制化行业平板 在各行各业中的地位越来越重要&#xff0c;甚至在行业转型和发展中发挥着不可替代的作用。随着工业化社会的快速发展&#xff0c;工业生产对智控设备要求越来越高&#xff0c;运用的范畴也越来越普遍广泛&#xff0c;工业级平板就是其中一种应用广泛的设备。 新…

什么是CSS中的BFC?

①什么是BFC BFC 全称&#xff1a;Block Formatting Context&#xff0c; 名为 “块级格式化上下文”。 W3C官方解释为&#xff1a;BFC它决定了元素如何对其内容进行定位&#xff0c;以及与其它元素的关系和相互作用&#xff0c;当涉及到可视化布局时&#xff0c;Block Forma…

Python2 和Python3的共存和切换

1、电脑中安装python2和python3&#xff0c;将python2,python3的路径都添加到环境变量中 2、修改python2目录中的Python.exe为python2.exe&#xff0c;使用python2命令启动 3、修改python3目录中的python.exe为python3.exe&#xff0c;使用python3命令启动 4、更新pip命令 修…

item_search_seller-搜索店铺列表

一、接口参数说明&#xff1a; item_search_seller-搜索店铺列表&#xff0c;点击更多API调试&#xff0c;请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_search_seller 名称类型必须描述keyString是调用key&#x…

哪些人适合参加大数据培训班?

互联网加速职场变革&#xff0c;大数据浪潮席卷全球。日前&#xff0c;Python、大数据、人工智能是当今最热门的话题。大数据存储、大数据分析、 人工智能等开发人才需求旺盛。 大数据培训班有大数据分析培训班、大数据开发培训班&#xff0c;JAVA培训班 大数据班适学人群…

单点登陆案例实现

一 单点登陆系统简介 单点登录&#xff08;Single Sign On&#xff09;&#xff0c;简称为 SSO&#xff0c;是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。 例如&#xff1a;QQ、…

exe指定自带jre环境执行--exe4j使用注意点

不要打钩,允许使用jre运行而不仅仅是jdk 将jre复制粘贴到exe目录下,和我吗的exe在同一文件夹

Flowable学习[一]

一、参考CSDN博主[水中加点糖]的博客[采用springbootflowable快速实现工作流]&#xff0c;文章地址&#xff1a;https://puhaiyang.blog.csdn.net/article/details/79845248&#xff0c;下载其发布在github上的代码 二、本地解压代码&#xff0c;并加载到idea中 三、使用docke…

使用three.js与WebGL相比有什么优势?

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 特点 WebGL和Three.js是两个与网页3D图形渲染相关的技术。以下是它们的一些特点&#xff1a; WebGL: 基于OpenGL ES标准&#xff0c;为网页提供了一种基于GPU加速的图形渲染API。具有高性能的图像处…

期权攻略:手续费、保证金、期权账户租赁、零门槛开户哪家强?

期权开户的手续费和保证金收取方式可能因不同的券商和期权分仓平台而异。一般来说&#xff0c;期权手续费是根据交易的类型和数量张数来计算的&#xff0c;可以是固定费用或按比例收取&#xff0c;下文介绍期权攻略&#xff1a;手续费、保证金、期权账户租赁、零门槛开户哪家强…

[ubuntu]ubuntu18.04使用自带共享桌面实现vncserver连接

vncserver有很多方法比如你安装vnc4server,tightvncserver,x11vnc等都可以实现vnc局域网连接&#xff0c;今天使用系统共享桌面设置vnc连接 Ubuntu开启远程桌面 Ubuntu18.04使用gnome桌面环境&#xff0c;系统自带屏幕共享和远程登录功能&#xff0c;默认使用的是vino作为VNC…

PyTorch深度学习实战(12)——数据增强

PyTorch深度学习实战&#xff08;12&#xff09;——数据增强 0. 前言1. 图像增强1.1 仿射变换1.2 亮度修改1.3 添加噪音1.4 联合使用多个增强方法 2. 对批图像执行图像增强3. 利用数据增强训练模型小结系列链接 0. 前言 数据增强是指通过对原始数据进行一系列变换和处理&…