基于Java的科大讯飞大模型API调用实现

        写在前面:因为现在自己实习的公司新拓展的一个业务是结合AI的低代码平台,我负责后端的开发,之前一直都是直接使用gpt或者文心一言等ui界面来直接使用大模型,从来没有自己调接口过,所以本文记录一下自己第一次使用大模型的心得,小趴菜一个,大佬们勿喷~~

        源码:llm_-api_-demo: 科大讯飞大模型API调用实例代码 (gitee.com)

        正文:

        在调用模型API接口前,必须要使用到对应的大模型,我用的是科大讯飞的星火,官网地址放在这里了:讯飞开放平台-以语音交互为核心的人工智能开放平台 (xfyun.cn),进入注册账号然后申请对应的API权限即可(第一次使用免费,有量的限制),在控制台中得到我们对应API接口的APPID、APISecret和APIKey,这些是后面我们通过java使用大模型的密钥相当于。如图所示:        然后就可以找到对应模型的Demo下在本地(我用的是星火认知大模型的Demo),源码放这了,只需改一下APPID、APISecret和APIKey应该就能跑起来了。对应的文档我也放在这里了:1. 接口说明 | 讯飞开放平台文档中心 (xfyun.cn)

        接下来,打开Demo,修改APPID、APISecret和APIKey,解释一下这个Demo的功能(来自Kimi的专业分析)(因为我也不是很会,手动狗头hhhh):

这段Java代码是一个客户端程序,用于与一个名为"BigModel"的在线聊天服务进行交互。以下是代码的主要功能和组成部分的概述:

  1. 导入依赖:代码开始部分导入了JSON处理、HTTP请求、WebSocket通信、加密等所需的库。

  2. 类定义BigModelNew 类继承自 WebSocketListener,用于处理WebSocket连接和消息。

  3. 常量定义

    • hostUrl:服务的URL地址,用于v1.1版本的API。
    • appidapiSecretapiKey:用于API鉴权的凭证。
  4. 成员变量

    • historyList:用于存储对话历史的列表。
    • totalAnswer:存储大模型答案的字符串。
    • NewQuestion:当前用户提出的问题。
    • gson:用于JSON序列化和反序列化的Gson实例。
    • userId 和 wsCloseFlag:分别用于标识用户和控制WebSocket连接的关闭。
  5. 构造函数:接收用户ID和WebSocket关闭标志作为参数。

  6. 主函数 (main):程序入口,用于启动WebSocket连接并发送用户输入的问题。

  7. 鉴权方法 (getAuthUrl):生成用于API鉴权的URL。

  8. WebSocket事件处理

    • onOpen:WebSocket连接打开时,启动一个新线程来发送请求。
    • onMessage:处理从服务端接收到的消息,并更新答案汇总。
    • onFailure:处理连接失败的情况。
  9. 发送逻辑 (MyThread 类):在新线程中构建请求JSON,并发送给服务端。

  10. 历史记录管理 (canAddHistory 方法):检查是否可以将新的回答添加到历史记录中。

  11. JSON结构定义:定义了用于解析从服务端返回的JSON数据的内部类。

整体来看,这段代码实现了以下功能:

  • 与聊天服务建立WebSocket连接。
  • 接收用户输入,并将其发送给服务端。
  • 接收服务端的回答,并将其输出到控制台。
  • 管理对话历史,确保不超过一定长度。
  • 实现基本的API鉴权机制。

        需要注意的点是不同的hostUrl要对应不同的domain,记得修改。

        然后运行即可,结果如下:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值