“深入淺出”系列之QT:(10)Qt接入Deepseek

項目配置:

在.pro文件中添加網絡模塊:

 QT += core network

API配置:

  • 將apiUrl替換為實際的DeepSeek API端點

  • 將apiKey替換為你的有效API密鑰

  • 根據API文檔調整請求參數(模型名稱、溫度值等)

功能說明:

  • 使用QNetworkAccessManager處理HTTP請求

  • 自動處理JSON序列化/反序列化

  • 支持異步請求處理

  • 包含基本的錯誤處理

擴展建議:

  • 添加更完善的錯誤處理(HTTP狀態碼檢查)

  • 實現異步回調機制

  • 添加請求超時處理

  • 支持流式響應(如果API支持)

  • 使用環境變量或配置文件管理API密鑰

典型輸出處理:

// 在handleResponse函數中可添加以下處理邏輯:if (!content.isEmpty()) {    qDebug() << "Received response:";    qDebug().noquote() << content;  // 保留原始格式} else {    qDebug() << "No content in response";}

代碼舉例:

#include?<QCoreApplication>
#include?<QNetworkAccessManager>
#include?<QNetworkRequest>
#include?<QNetworkReply>
#include?<QJsonDocument>
#include?<QJsonObject>
#include?<QJsonArray>
#include?<QDebug>class?ApiClient?:?public?QObject?{Q_OBJECT
public:explicit?ApiClient(QObject?*parent?=?nullptr)?:?QObject(parent)?{manager?=?new?QNetworkAccessManager(this);connect(manager,?&QNetworkAccessManager::finished,?this,?&ApiClient::handleResponse);}void?sendRequest(const?QString?&prompt)?{//?API配置const?QString?apiUrl?=?"https://api.deepseek.com/v1/chat/completions";const?QString?apiKey?=?"your_api_key_here";?//?請替換為實際API密鑰//?創建請求QNetworkRequest?request;request.setUrl(QUrl(apiUrl));request.setHeader(QNetworkRequest::ContentTypeHeader,?"application/json");request.setRawHeader("Authorization",?QString("Bearer?%1").arg(apiKey).toUtf8());//?構建JSON請求體QJsonObject?requestBody;requestBody["model"]?=?"deepseek-chat";??//?根據實際模型名稱修改requestBody["temperature"]?=?0.7;requestBody["max_tokens"]?=?1000;QJsonArray?messages;QJsonObject?systemMsg;systemMsg["role"]?=?"system";systemMsg["content"]?=?"You?are?a?helpful?assistant.";messages.append(systemMsg);QJsonObject?userMsg;userMsg["role"]?=?"user";userMsg["content"]?=?prompt;messages.append(userMsg);requestBody["messages"]?=?messages;//?發送POST請求manager->post(request,?QJsonDocument(requestBody).toJson());}private?slots:void?handleResponse(QNetworkReply?*reply)?{if?(reply->error())?{qDebug()?<<?"Error:"?<<?reply->errorString();reply->deleteLater();return;}//?解析響應QJsonDocument?response?=?QJsonDocument::fromJson(reply->readAll());QJsonObject?jsonResponse?=?response.object();if?(jsonResponse.contains("choices"))?{QJsonArray?choices?=?jsonResponse["choices"].toArray();if?(!choices.isEmpty())?{QJsonObject?choice?=?choices.first().toObject();QJsonObject?message?=?choice["message"].toObject();QString?content?=?message["content"].toString();qDebug()?<<?"API?Response:"?<<?content;}}?else?{qDebug()?<<?"Error?response:"?<<?response.toJson();}reply->deleteLater();}private:QNetworkAccessManager?*manager;
};//?使用示例
int?main(int?argc,?char?*argv[])?{QCoreApplication?a(argc,?argv);ApiClient?client;client.sendRequest("Explain?quantum?computing?in?simple?terms");return?a.exec();
}#include?"main.moc"

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

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

相關文章

【Linux探索學習】第二十七彈——信號(上):Linux 信號基礎詳解

Linux學習筆記&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 前面我們已經將進程通信部分講完了&#xff0c;現在我們來講一個進程部分也非常重要的知識點——信號&#xff0c;信號也是進程間通信的一…

nginx負載均衡, 解決iphash不均衡的問題之consistent

原因分析 客戶端IP分布不均&#xff1a;部分IP段請求集中&#xff0c;導致哈希到同一后端。 服務器數量變動&#xff1a;增刪節點時&#xff0c;傳統ip_hash未使用一致性哈希&#xff0c;導致分布重置。 哈希鍵范圍過小&#xff1a;例如僅使用IPv4前24位&#xff0c;不同IP可…

[C++]多態詳解

目錄 一、多態的概念 二、靜態的多態 三、動態的多態 3.1多態的定義 3.2虛函數 四、虛函數的重寫&#xff08;覆蓋&#xff09; 4.1虛函數 4.2三同 4.3兩種特殊情況 &#xff08;1&#xff09;協變 &#xff08;2&#xff09;析構函數的重寫 五、C11中的final和over…

WEB安全--SQL注入--PDO與繞過

一、PDO介紹&#xff1a; 1.1、原理&#xff1a; PDO支持使用預處理語句&#xff08;Prepared Statements&#xff09;&#xff0c;這可以有效防止SQL注入攻擊。預處理語句將SQL語句與數據分開處理&#xff0c;使得用戶輸入的數據始終作為參數傳遞給數據庫&#xff0c;而不會直…

ES12 weakRefs的用法和使用場景

ES12 (ECMAScript 2021) 特性總結&#xff1a;WeakRef 1. WeakRef 概述 描述 WeakRef 是 ES12 引入的一個新特性&#xff0c;用于創建對對象的弱引用。弱引用不會阻止垃圾回收器回收對象&#xff0c;即使該對象仍然被弱引用持有。WeakRef 通常與 FinalizationRegistry 結合使…

50頁精品PPT | 某大數據資產平臺建設項目啟動會材料

該PPT主要介紹了某集團大數據資產平臺建設項目的啟動會材料&#xff0c;圍繞數據作為數字經濟時代核心生產要素的背景&#xff0c;結合國家戰略和集團數字化轉型需求&#xff0c;分析了當前數據資源整合不足、孤島現象嚴重、質量管控薄弱及共享機制不完善等問題&#xff0c;提出…

8.【線性代數】——求解Ax=b

八 求解Axb 1. 解Axb求特解 x p x_p xp?求特解 x n x_n xn?所有解 2. Axb什么時候有解3. A m ? n A_{m * n} Am?n?不同秩的Axb解分析3.1 列滿秩 rn<m3.2 行滿秩 rm<n3.3 rmn3.4 r<m 且 r < n3.5 綜述 1. 解Axb 求解 { x 1 2 x 2 2 x 3 2 x 4 b 1 2 x 1…

動靜態鏈接與加載

目錄 靜態鏈接 ELF加載與進程地址空間&#xff08;靜態鏈接&#xff09; 動態鏈接與動態庫加載 GOT表 靜態鏈接 對于多個.o文件在沒有鏈接之前互相是不知到對方存在的&#xff0c;也就是說這個.o文件中調用函數的的跳轉地址都會被設定為0&#xff08;當然這個函數是在其他.…

Web 后端 請求與響應

一 請求響應 1. 請求&#xff08;Request&#xff09; 客戶端向服務器發送的HTTP請求&#xff0c;通常包含以下內容&#xff1a; 請求行&#xff1a;HTTP方法&#xff08;GET/POST等&#xff09;、請求的URL、協議版本。 請求頭&#xff08;Headers&#xff09;&#xff1a;…

【Excel筆記_6】條件格式和自定義格式設置表中數值超過100保留1位,超過1000保留0位,低于100為默認

方法一&#xff1a;自定義格式 選中需要設置格式的單元格區域。右鍵選擇設置單元格格式&#xff0c;或者在工具欄中選擇開始 -> 數字 -> 自定義格式。在類型框中輸入以下自定義格式&#xff1a; [>1000]0;[>100]0.0;G/通用格式解釋&#xff1a; [>1000]0&…

排序與算法:希爾排序

執行效果 希爾排序的執行效果是這樣的&#xff1a; 呃……看不懂嗎&#xff1f;沒關系&#xff0c;接著往下看介紹 算法介紹 希爾排序算法&#xff08;Shell Sort&#xff09;是按其設計者希爾&#xff08;Donald Shell&#xff09;的名字命名&#xff0c;該算法由 1959 年公布…

Python HTTP 請求工具類 HttpUtils:簡化 HTTP 請求的高效工具

在現代的 Web 開發和 API 集成中,HTTP 請求是最常見的操作之一。無論是獲取數據、提交表單,還是與 RESTful API 交互,我們都需要頻繁地發送 HTTP 請求。為了簡化這些操作,提升代碼的可讀性和可維護性,我們可以使用一個高效的工具類——HttpUtils。本文將詳細介紹 HttpUtil…

親測Windows部署Ollama+WebUI可視化

一. Ollama下載 登錄Ollama官網(Ollama)點擊Download進行下載 如果下載很慢可用以下地址下載&#xff1a; https://github.com/ollama/ollama/releases/download/v0.5.7/OllamaSetup.exe 在DeepSeek官網上&#xff0c;你可以直接點擊【model】 到達這個界面之后&#xff0c;…

用xml配置spring, bean標簽有哪些屬性?

用xml配置spring, bean標簽有哪些屬性? 在Spring框架中&#xff0c;使用XML配置文件時&#xff0c;<bean>標簽用于定義一個Bean。以下是一些常用的<bean>標簽屬性&#xff1a; 1. class 描述&#xff1a;指定Bean的類名。示例&#xff1a;<bean id"myBe…

50頁PDF|數字化轉型成熟度模型與評估(附下載)

一、前言 這份報告依據GBT 43439-2023標準&#xff0c;詳細介紹了數字化轉型的成熟度模型和評估方法。報告將成熟度分為五個等級&#xff0c;從一級的基礎轉型意識&#xff0c;到五級的基于數據的生態價值構建與創新&#xff0c;涵蓋了組織、技術、數據、資源、數字化運營等多…

golang panic信息捕獲

背景 我們的日志接入阿里云sls平臺&#xff0c;但是&#xff0c;日志是以json的格式存儲在阿里云sls平臺上&#xff0c;程序中產生的error,info等日志都可以實現以json的格式打印。但是&#xff0c;golang程序中產生的panic信息本身不是以json的格式輸出&#xff0c;這就導致p…

攔截器VS過濾器:Spring Boot中請求處理的藝術!

目錄 一、攔截器&#xff08;Interceptor&#xff09;和過濾器&#xff08;Filter&#xff09;&#xff1a;都是“守門員”&#xff01;二、如何實現攔截器和過濾器&#xff1f;三、攔截器和過濾器的區別四、執行順序五、真實的應用場景六、總結 &#x1f31f;如果喜歡作者的講…

FastGPT及大模型API(Docker)私有化部署指南

??歡迎關注【AI技術開發者】 ? 經過優化&#xff0c;在不影響FastGPT功能的情況下&#xff0c;大幅降低了部署的設備配置要求&#xff0c;僅需1c1h即可正常部署使用。 官方要求配置&#xff1a; ? ? 優化后的實際占用情況&#xff1a; 運行內存僅需370M&#xff08…

解決 WSL Ubuntu 中 /etc/resolv.conf 自動重置問題

解決 WSL Ubuntu 中 /etc/resolv.conf 自動重置問題 前言問題描述問題原因嘗試過的命令及分析解決方案&#xff1a;修改 wsl.conf 禁用自動生成總結 前言 在使用 Windows Subsystem for Linux (WSL) 的 Ubuntu 子系統時&#xff0c;你可能會遇到 /etc/resolv.conf 文件被自動重…

【第15章:量子深度學習與未來趨勢—15.3 量子深度學習在圖像處理、自然語言處理等領域的應用潛力分析】

一、開篇:為什么我們需要關注這場"量子+AI"的世紀聯姻? 各位技術愛好者們,今天我們要聊的這個話題,可能是未來十年最值得押注的技術革命——量子深度學習。這不是簡單的"1+1=2"的物理疊加,而是一場可能徹底改寫AI發展軌跡的范式轉移。 想象這樣一個…