基于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,記得修改。

? ? ? ? 然后運行即可,結果如下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43241.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43241.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43241.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

源代碼防泄漏的正確方法

為了保護公司的源代碼不被泄露,IT企業可以采取一系列嚴格的安全措施。這些措施涵蓋技術手段、管理策略和操作流程,形成多層次的防護體系做到源代碼防泄漏工作。 技術手段 1、源代碼加密: 采用高級加密標準(AES)或其他…

【QT】QComboBox允許輸入查詢,且不區分大小寫

目錄 0.簡介 1.環境 2.詳細代碼 3.參考 0.簡介 項目需求,原本有一個下拉框,但是條目太多,不好搜索,所以用戶要求可以輸入查找 修改前 : 修改后: 1.環境 windows11 vs-code qt5.12 2.詳細代碼 QComboB…

中小企業和數智化的距離,只差一塊華為IdeaHub

每次談及中小企業數智化的話題,被提到最多的總是“三不”難題,即不想轉、不敢轉、不會轉。 為了破解這一困局,政府多次在工作報告中提到“深入開展中小企業數字化賦能專項行動”,并在各地為中小企業創新提供政策支持。此外&#…

Android --- Kotlin學習之路:基礎語法學習筆記

------>可讀可寫變量 var name: String "Hello World";------>只讀變量 val name: String "Hello World"------>類型推斷 val name: String "Hello World" 可以寫成 val name "Hello World"------>基本數據類型 1…

MD5加密和注冊頁面的編寫

MD5加密 1.導入包 npm install --save ts-md5 2.使用方式 import { Md5 } from ts-md5; //md5加密后的密碼 const md5PwdMd5.hashStr("123456").toUpperCase(); 遇見的問題及用到的技術 注冊頁面 register.vue代碼 <template><div class"wappe…

從零開始學習嵌入式----Linux 命令行,常用命令速記指南

目錄 一、文件操作 二、文本操作 三、系統管理 四、網絡操作 五、其他常用命令 六、學習建議 在 Linux 世界里&#xff0c;命令行就像一把瑞士軍刀&#xff0c;掌握了它&#xff0c;你就能游刃有余地操控整個系統。但面對茫茫多的命令&#xff0c;新手往往會感到無所適從…

關于Python中的字典你所不知道的七個技巧

01 引言 Python是我最喜歡的編程語言之一&#xff0c;它向來以其簡單性、多功能性和可讀性而聞名。 字典作為Python中最常使用的數據類型&#xff0c;大家幾乎每個人都或多或少在項目中使用過字典&#xff0c;但是字典里有一些潛在的技巧可能并不是每個同學都會用到。 在本文…

相同含義但不同類型字段作為join條件時注意事項

假設表A和表B中都有表示學號的stu_id字段&#xff0c;但該字段在表A和表B中類型分別為bigint和string。當直接通過該字段進行join時&#xff0c;一般情況下可以得到我們預期的結果。 select a.stu_id from a as r join b as l on r.stu_id l.stu_id 但是如果學號長度較長的…

【UE5.1 角色練習】16-槍械射擊——瞄準

目錄 效果 步驟 一、瞄準時拉近攝像機位置 二、瞄準偏移 三、向指定方向射擊 四、連發 效果 步驟 一、瞄準時拉近攝像機位置 打開角色藍圖&#xff0c;在事件圖表中添加如下節點&#xff0c;當進入射擊狀態時設置目標臂長度為300&#xff0c;從而拉近視角。 但是這樣切…

勇攀新高峰|暴雨信息召開2024年中述職工作會議

7月8日至9日&#xff0c;暴雨信息召開2024年中述職工作會議&#xff0c;總結回顧了上半年的成績和不足&#xff0c;本次會議采用線上線下的方式舉行&#xff0c;公司各部門管理人員、前臺市場營銷人員參加述職&#xff0c;公司領導班子出席會議。 本次述職采取了現場匯報點評的…

關于宏v4l2_subdev_call的拆解

struct v4l2_subdev *sd結構體 struct v4l2_subdev { #if defined(CONFIG_MEDIA_CONTROLLER)struct media_entity entity; #endifstruct list_head list;struct module *owner;bool owner_v4l2_dev;u32 flags;struct v4l2_device *v4l2_dev;const struct v4l2_subdev_ops *op…

數字滾動動畫~

前言 數字從0.00滾動到某個數值的動畫 實現&#xff08;React版本&#xff09; Dom <div className"number" ref{numberRef}>0.00</div> JS const _initNumber () > {const targetNumber 15454547.69;const duration 1500;const numberElement…

vivado DRIVE、EDIF_EXTRA_SEARCH_PATHS

驅動器 DRIVE指定配置有I/O的輸出緩沖器的輸出緩沖器驅動強度&#xff08;mA&#xff09; 支持可編程輸出驅動強度的標準。 體系結構支持 所有架構。 適用對象 ?端口&#xff08;get_Ports&#xff09; 連接到輸出緩沖器的輸出或雙向端口 價值觀 整數值&#xff1a; ? 2 ? 4…

【UML用戶指南】-33-對體系結構建模-系統和模型

目錄 1、系統和子系統 2、模型和視圖 3、跟蹤 4、常用建模技術 4.1、對系統的體系結構建模 4.2、對系統的系統建模 模型是對現實世界的簡化——即對系統的抽象&#xff0c;建立模型的目的是為了更好地理解系統。 1、系統和子系統 一個系統可能被分解成一組子系統&#…

09.C2W4.Word Embeddings with Neural Networks

往期文章請點這里 目錄 OverviewBasic Word RepresentationsIntegersOne-hot vectors Word EmbeddingsMeaning as vectorsWord embedding vectors Word embedding processWord Embedding MethodsBasic word embedding methodsAdvanced word embedding methods Continuous Bag-…

esp32硬件電路設計

ESP-IDF 入門指南 | 樂鑫科技 (espressif.com) ESP32-DevKitC V4 入門指南 - ESP32 - — ESP-IDF 編程指南 v5.1 文檔 (espressif.com)

每日一題~abc356(對于一串連續數字 找規律)

添加鏈接描述 題意&#xff1a;對于給定的n,m 。計算0~n 每一個數和m & 之后&#xff0c;得到的數 的二進制中 1的個數的和。 一位一位的算。最多是60位。 我們只需要計算 在 1-n這些數上&#xff0c;有多少個數 第i位 為1. 因為是連續的自然數&#xff0c;每一位上1 的…

Linux下的misc設備驅動

文章目錄 前言一、misc是什么&#xff1f;二、調用API1.注冊2.注銷 三、驅動框架總結 前言 misc設備即雜項設備&#xff0c;Linux系統中類似按鍵、觸摸屏都有專門框架處理&#xff0c;類似adc、蜂鳴器等設備無法明確其屬于什么類型&#xff0c;一般就歸屬于雜項設備&#xff0…

Sqli-labs合集之環境搭建

Sqli-labs的搭建 搭建第一個SQL注入學習靶場環境&#xff1a; 軟件&#xff1a;sqli-labs 安裝過程&#xff1a; 1.源碼地址&#xff1a;GitHub - Audi-1/sqli-labs: SQLI labs to test error based, Blind boolean based, Time based.&#xff1b; 2.將壓縮包解壓到phpst…

PyCharm\VsCode——Python第三方庫下載換源

為什么要換源&#xff1f; Python第三方庫下載默認鏡像源在國外&#xff0c;因為特殊的原因在國內的你我利用這個鏡像源往往速度會非常地慢&#xff0c;因此為了提速將這個默認鏡像源換成國內的鏡像源是非常有必要的。 鏡像源的種類有哪些&#xff1f; 國外鏡像源——官方 http…