1-讯飞星火大模型API调用示例解析

1官网链接

  1. 比赛官网:2024 iFLYTEK A.I.开发者大赛-讯飞开放平台 (xfyun.cn);
  2. 控制台官网:控制台-讯飞开放平台 (xfyun.cn);

2星火模型python调用示例

  1. 示例链接:https://xfyun-doc.xfyun.cn/lc-sp-PythonDemo-1716370485358.zip;
  2. 使用上述示例时,执行到on_close时报参数数量不匹配的错误;因此将def on_close(ws):改为def on_close(ws,*args):;以接收剩余的多个参数;
    1. 修改之后的补充了一些备注的示例文件链接:1-websocket调用星火大模型-简单示例-无上下文.py;
    2. 注意:要换成自己的appidapi_secretapi_key

2.1步骤总结

  1. 初始化参数对象,包括设置自己的api、连接的大模型的接口地址等;对应Ws_Param.__init__函数;

  2. 将连接地址与自己的鉴权信息进行拼接,生成最终的请求用的url【详细解释见官网WebSocket协议通用鉴权URL生成说明 | 讯飞开放平台文档中心 (xfyun.cn)】;对应Ws_Param.create_url方法;

  3. 使用上面的url创建一个WebSocketApp对象,其中传入了自己实现了的四个回调函数(on_message, on_error, on_close, on_open);接着就可以通过run_forever方法启动一个websocket客户端;

    1. 虽然这个方法可以建立永久的连接,但是在官网说了星火认知大模型接口默认采用短链接的模式,即接口每次将结果完整返回给用户后会主动断开链接,用户在下次发送请求的时候需要重新握手链接。

    2. 收到websocket连接建立时会先调用on_open方法:

      1. 该方法先开启一个新的线程,将使用WebSocket对象的send方法将消息发送到服务器
      2. 消息是一个json格式的字符串,由gen_params方法生成并返回;
      3. 关于消息的各个部分的含义,详见星火认知大模型Web API文档 | 讯飞开放平台文档中心 (xfyun.cn)的1.3.1 请求参数部分的解释;
    3. 之后将收到来自服务器的消息,因此将调用on_message方法:

      1. 通过debug可以发现,这里收到的消息是类似流式输出的方式,每次只接收完整回复的一小部分内容,如下图所示;因此on_message方法将被多次调用,直到所有的回复都被接收;

        在这里插入图片描述

      2. 关于模型回复的消息各个部分的含义详见星火认知大模型Web API文档 | 讯飞开放平台文档中心 (xfyun.cn)的1.4 接口响应部分;

      3. 当最后一部分消息返回之后,上图中的status=2

      4. 之后会直接调用WebSocketApp对象的close()方法关闭连接;

      5. 下图为一次连接请求完成之后收到的完整回复:

        在这里插入图片描述

    4. 最后,收到websocket关闭时将调用on_close方法打印一些信息;

3星火模型python调用示例-带上下文

  1. 示例链接:https://xfyun-doc.xfyun.cn/lc-sp-PythonDemo(content)-1716370504832.zip;
  2. 加入注释之后的示例代码链接:2-PythonDemo(content);注意:要换成自己的appidapi_secretapi_key

3.1步骤总结

  1. 这个示例将2星火模型python调用示例章节的代码作为类进行引用;仅额外在SparkPythondemo.py中增加了几个用于处理上下文的函数和代码;

  2. PythonDemo(content)\SparkApi.py文件与2星火模型python调用示例章节的代码的区别主要有以下几点:

    1. 增加了answersid全局变量;并在on_message方法中将模型返回的结果存放到了answer中;当然,on_message方法中对模型返回的结果依旧做了输出;
    2. gen_params方法生成请求参数时,payload.message.text参数不是直接指定了,而是由变量代替;这样可以从控制台输入问题,并经过处理后传入;
    3. 再就是,有一些变量的名称发生了变化;
  3. 再来看PythonDemo(content)\SparkPythondemo.py文件:

    1. 原先在PythonDemo(content)\SparkApi.py文件中的密钥、主机地址等信息都在这里;

    2. 上下文列表text作为全局变量;后续在调用getText方法时上下文列表将不断得到扩充;从而实现具有连续上下文调用大模型进行回答的功能

    3. 使用getlengthchecklen方法计算当前上下文列表中所有content的长度之和,判断有无超出长度上限;若超过上限,则将上下文列表中最早的消息删除掉;

    4. 通过执行下述语句,将控制台输入的信息封装成符合格式要求的带上下文的text列表,并使用之前的socket方法与模型交流,得到的答案存在SparkApi.answer中;

      while(1):Input = input("\n" +"我:") # 控制台读入问题question = checklen(getText("user",Input))SparkApi.answer ="" # 每次循环都将答案置为空,这样每次输出的答案就是当前问题的答案了print("星火:",end ="")SparkApi.main(appid,api_key,api_secret,Spark_url,domain,question)# print(SparkApi.answer)getText("assistant",SparkApi.answer)
      

      讯飞星火大模型带上下文的API调用与提问示例

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

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

相关文章

了解MySQL【事务】的功能:确保数据完整性的关键技术

在数据库管理中,事务是确保数据完整性和一致性的核心机制。特别是对MySQL这样广泛应用的开源数据库系统,掌握事务的使用至关重要。在这篇文章中,我们将全面探讨MySQL事务的工作原理、ACID属性、隔离级别以及最佳实践,从而帮助开发…

宝塔Linux面板配置环境 + 创建站点

一、安装 (1)进入宝塔官网 https://www.bt.cn/new/index.html (2)点击“ 立即免费安装 ”,选择 Centos安装脚本 (3)进入 ssh 输入以下命令安装宝塔 yum install -y wget && wget -O …

实验三 SQL Server SSMS工具添加数据

1、打开ecommerce数据库,向表中分别录入以下数据信息 (1)商品类别表category catno catname describe 101 手机 各种品牌、型号手机 201 激光打印机 各种激光打印机 202 喷墨打印机 各种喷墨打印机 301 平板电脑 各种平板电脑…

思看科技募资额骤降:对赌压力下巨额分红,还购买 7项商业房产

《港湾商业观察》施子夫 6月11日,证监会网站披露思看科技(杭州)股份有限公司(以下简称,思看科技)的首轮审核问询函回复意见并更新2023年财务数据,继续推进上市进程。 公开信息显示&#xff0c…

深度之眼(二十九)——神经网络基础知识(四)-循环神经网络

文章目录 一、 学习目标二、序列数据三、语言模型四、循环神经网络4.1 RNN的反向传播 五、门控循环单元-GNU5.1 候选隐藏状态 六、长短期记忆网络-LSTM七、回顾 一、 学习目标 二、序列数据 序列数据是常见的数据类型,前后数据通常具有关联性 三、语言模型 综合…

【技术杂谈】如何访问Github | 解决无法连接Github的问题

访问网页的过程 什么是域名?什么是IP地址?- 域名是网站的名称。 - IP地址是服务器在互联网上的逻辑地址。域名往往是固定的,但是IP地址很有可能是会改变的。计算机通过Host文件检查本地缓存是否有域名对应IP地址 Host文件路径 C:\Windows\Sy…

C#反射基本应用

1、反射 反射是.NET Framework的一个特性,它允许在运行时获取类型的信息以及动态创建对象,调用方法,以及访问字段和属性。 2、代码 using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy…

探究Executors创建的线程池(如newFixedThreadPool)其核心线程数等参数的可调整性

java中提供Executors类来创建一些固定模板参数的线程池,如下图(newWorkStealingPool除外,这个是创建ForkJoinPool的,这里忽略): 拿newFixedThreadPool方法创建线程池为例,newFixedThreadPool是…

白杨SEO:打粉是啥?打粉引流怎么做?打粉引流犯法吗?小红书代发效果好吗?

文章大纲: 1、打粉是什么意思? 2、打粉有哪些方法? 3、打粉一般怎么变现? 4、打粉引流是违法犯罪吗? 5、小红书代发是啥? 6、小红书批量代发效果好吗? 打粉是什么意思? 打粉这…

C语言-初探指针

初探指针 指针概念指针和指针类型指针类型意义 野指针如何避免 指针运算指针-整数指针-指针指针的关系运算 指针和数组二级指针指针数组 指针概念 指针是内存中一个最小单元(1个字节)的编号,也就是地址平时口语中说的指针,通常指的是指针变量&#xff0…

(免费领源码)java#springboot#mysql校园医院预约挂号系统32236-计算机毕业设计项目选题推荐

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对校园医院管理等问题,对校园医院…

初识单片机

单片机 英文 Micro Controller Unit(MCU) 1.内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能 2.单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备&#…

【嵌入式单片机】之RS-232、RS-485、RS-422比较

1. RS422是什么 RS422,正式名称为TIA/EIA-422,是一种串行通信标准,专为实现长距离、高可靠性的数据传输而设计。它采用差分信号传输技术,通过两对双绞线实现全双工通信,即发送和接收可以同时进行。RS422在工业自动化和远程监控系统中曾经扮演着重要角色,以其出色的抗干扰…

MySQL—常用的数据类型

数据类型 整型 1.创建一个含有无符号/有符号整型的字段的表 CREATE TABLE L1(id tinyint unsigned #无符号 ) CREATE TABLE L2(id tinyint #默认为有符号 ) 数值型(bit) 2.数值型(bit)的使用 小数 3.数值型(小数)的基本使用 字符串 4.字符串的基本使用 #演示字符串类型…

【学习笔记】网络设备(华为交换机)基础知识1——命令行入门知识

一、前期准备 提示:下面所有学习内容都是基于以下条件完成的 条件1.已经可以正常访问交换机的命令行接口 连接到命令行接口的方法 : ① :通过Console口本地访问 ② : 通过Telnet访问 ③ : 通过SSH访问 ④ &#xff1…

小阿轩yx-LVS负载均衡群集

小阿轩yx-LVS负载均衡群集 构建群集服务器—通过整合多台服务器使用 LVS 达到服务器的高可用和负载均衡并以同一个 IP 地址对外提供相同的服务 LVS 群集应用基础 群集称呼来自英文单词“Cluster”在服务器领域则表示大量服务器的集合体,区分单个服务器 Cluster …

创新驱动,智享未来:电动车仪表盘之蓝牙芯方案

电动车行业不断发展的浪潮中,我们自豪地推出引领时代的电动车仪表盘蓝牙芯方案,为您的骑行之旅带来前所未有的智能与便捷。 精准掌控,一目了然 我们的蓝牙芯方案搭载了高性能BLE 5.0蓝牙芯片-HS6621CG-C 内核ARM Cortex-M4F, max 64MHZ,SRAM…

Operations Research课程之带约束的非线性规划(凸分析|Lagrange松弛|Lagrange对偶|KKT条件)

目录 1.凸分析 1.1 为什么需要凸分析 1.2 凸分析相关概念 1.3 凸规划定义 1.4 单变量NLP凸分析 1.5 多变量NLP凸分析 2.拉格朗日松弛 2.1 拉格朗日函数 2.2 拉格朗日对偶 2.2.1 弱对偶性 2.2.2 凸性 2.2.3 强对偶性 2.2.4 与LP对偶关系 3.KKT条件 3.1 KKT介绍…

Redis 管道(Pipeline)是什么?有什么用?

目录 1. redis 客户端-服务端模型的不足之处 2. redis 管道是什么?有什么好处? 3. 管道的使用场景 4. 管道使用的注意事项 1. redis 客户端-服务端模型的不足之处 众所周知,redis 是一个客户端-服务端的模型设计,客户端向服务…

上海网站建设如何做

上海是中国最繁华的城市之一,作为全国的经济、文化和科技中心,网站建设在上海变得越来越重要。如何做好上海网站建设,让网站更加吸引人,成为企业和个人宣传自身的重要平台呢? 首先,要有清晰的定位和目标。在…