用Qt 对接‌百度AI平台

        很多同学想利用几大模型AI弄点东西,但又不知道如何去介入??最近帮同学弄点东西,刚好要接入到AI平台,就顺便研究了一下,并记录下来。

        首先我们选择的 AI模型是百度的,然后注册,申请密钥相关的东西(和上一篇语音识别一样的方式),模型场就是用免费的(注册后就有的,一般对话),有些场景模型需要收费。废话少说上代码。

1,申请密钥等

2, 利用KEY ,SECRET 获取TOKEN

void MyAiDialog::getBaiduAiAccess_token()
{/****** HTTP网络访问类初始化 *****/m_http_baidu_AI = new QNetworkAccessManager(this);connect(m_http_baidu_AI, SIGNAL(finished(QNetworkReply*)), this, SLOT(slot_http_baidu_AI_finished(QNetworkReply*)));QString url_ai("https://aip.baidubce.com/oauth/2.0/token?client_id=%1&client_secret=%2&grant_type=client_credentials");url_ai = url_ai.arg(AI_API_Key, AI_Secret_Key);/****** 设置头部 **********/QNetworkRequest Request(url_ai);Request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");m_http_baidu_AI->get(Request);
}

3, 利用 TOKEN 发送消息到AI平台上去获取结果 


void MyAiDialog::sendChat(QString msg)
{QString url_ai("https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=%1");url_ai = url_ai.arg(AI_access_token);/****** 组装JSON *************/QJsonObject json;// 创建一个QJsonArray用于存放messagesQJsonArray messagesArray;// 为messages数组添加一个对象QJsonObject messageObject;messageObject.insert("role", QJsonValue("user"));messageObject.insert("content", QJsonValue(msg));// 将该对象添加到数组中messagesArray.append(messageObject);// 将messages数组放入jsonObjectjson.insert("messages", messagesArray);//json.insert("stream", true);/****** 设置头部 **********/QNetworkRequest Request(url_ai);Request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");QString send_json = QJsonDocument(json).toJson();QByteArray jsonBytes = send_json.toUtf8(); // 先转为UTF-8字节m_http_baidu_AI->post(Request, jsonBytes);
}

4,解析结果


void MyAiDialog::slot_http_baidu_AI_finished(QNetworkReply* Reply)//百度云语音识别的的网络回应 接收函数, 判断是否接收成功, 而且返回语音识别的结果
{// 响应的状态码为 200 , 表示请求成功int stat = Reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();QByteArray Reply_data = Reply->readAll();qDebug() << QJsonDocument::fromJson(Reply_data).toJson() << endl;if (stat == 200) /*** 成功数据 ***/{//获取响应信息QByteArray byteArray = QString(Reply_data).toUtf8();QJsonDocument JsonDocument = QJsonDocument::fromJson(byteArray); //转为JSON格式字符串if (JsonDocument.isObject() == true){QJsonObject JsonObject = JsonDocument.object();if (JsonObject.find("access_token") != JsonObject.end()){AI_access_token = JsonObject["access_token"].toString();qDebug() << "AI_access_token:" << AI_access_token;}if (JsonObject.find("result") != JsonObject.end()){QString result = JsonObject["result"].toString();//QString result = JsonArray[0].toString();/***** 判断结果 *****///ui.lineEdit_3->setText(result);qDebug() << "result:" << result;insertMsg(result, true);}}}
}

5,效果展示

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

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

相关文章

HX711电子秤模块详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理介绍 三、程序设计 main.c文件 hx711.h文件 hx711.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 HX711是一种高精度、低成本的压力传感器信号放大器&#xff0c;主要用于测量重力或压力变化。…

Allow anonymous access to my Azure OpenAI chat bot

题意&#xff1a;允许匿名访问我的 Azure OpenAI 聊天机器人 问题背景&#xff1a; I have an Azure OpenAI chat bot using my own data (I configured an OpenAI resource and chose Deploy as Web App) . Members of my domain can access it by logging in. Now I want it…

数据库基础知识---------------------------(3)

MYSQL的索引 用于快速找出在某个列中有一特定值的行&#xff0c;不使用索引&#xff0c;MySQL必须从第一条记录开始读完整个表&#xff0c;直到找出相关的行。按实现方式分为Hash索引和BTree索引 单列索引 普通索引 允许在定义索引的列中插入重复值和空值唯一索引 索引列的值必…

从黎巴嫩电子通信设备爆炸看如何防范网络电子袭击

引言&#xff1a; 在当今数字化时代&#xff0c;电子通信设备已成为我们日常生活中不可或缺的一部分。然而&#xff0c;近期黎巴嫩发生的电子设备爆炸事件提醒我们&#xff0c;这些设备也可能成为危险的武器。本文将深入探讨电子袭击的原理、防范措施&#xff0c;以及网络智能…

LangChain-Chatchat本地部署(非docker)-亲测有效全网最新

文章目录 1.相关参数2.下载安装xinference推理框架3.启动xinference下载GLM模型和模型编码器4.模型和编码器下载完成后进行检查5.创建新的虚拟环境chatchat6.将LangChain-chatchat项目拉到本地7.下载langchain-chatchat的包清华源镜像8.创建一个chatchat配置文件存储路径9.查看…

【第33章】Spring Cloud之SkyWalking服务链路追踪

文章目录 前言一、介绍1. 架构图2. SkyWalking APM 二、服务端和控制台1. 下载2. 解压3. 初始化数据库4. 增加驱动5. 修改后端配置6. 启动7. 访问控制台8. 数据库表 三、客户端1. 下载2. 设置java代理3. idea配置3.1 环境变量3.2 JVM参数3.3 启动日志 4. 启用网关插件 四、链路…

传送带异物破损裂缝检测数据集 2300张 带标注voc yolo

传送带异物破损裂缝检测数据集 2300张 带标注voc yolo 2 传送带异物破损裂缝检测数据集 数据集描述 该数据集旨在用于传送带上的异物、破损、裂缝等缺陷的检测任务。数据集包含大量的图像及其对应的标注信息&#xff0c;可用于训练计算机视觉模型&#xff0c;以识别和定位传…

求Huffman树及其matlab程序详解

#################本文为学习《图论算法及其MATLAB实现》的学习笔记################# 算法用途 求Haffman树 算法思想 根据定理4.17,给出求Huffman树的算法步骤如下: ①对给出的所要求的叶子顶点的权进行从小到大排序,写出的权重向量 ; ②根据定理4.17,写出兄弟的权重分别为…

通过iFIX在ARMxy边缘计算网关上实现维护管理

在当今快速发展的工业环境中&#xff0c;维护管理的有效性直接影响到生产效率和设备可靠性。随着物联网和边缘计算的兴起&#xff0c;传统的维护方式正在被更智能和高效的解决方案所替代。ARMxy系列的BL340控制器&#xff0c;凭借其灵活的IO配置和强大的处理能力&#xff0c;成…

OpenCV特征检测(1)检测图像中的线段的类LineSegmentDe()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 检测图像中线段的类.。 遵循在 285中描述的算法。 函数原型1 绘制两组线&#xff0c;一组用蓝色&#xff0c;一组用红色&#xff0c;并计算非重…

Java语言程序设计基础篇_编程练习题**18.30 (找出单词)

题目&#xff1a;**18.30 (找出单词) 编写一个程序&#xff0c;递归地找出某个目录下的所有文件中某个单词出现的次数。从命令行如下传递参数&#xff1a; java Exercise18_30 dirName word 习题思路 &#xff08;读取路径方法&#xff09;和18.28题差不多&#xff0c;把找…

【趣学Python算法100例】百钱百鸡

问题描述 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”&#xff1a;一只公鸡值五钱&#xff0c;一只母鸡值三钱&#xff0c;三只小鸡值一钱&#xff0c;现在要用百钱买百鸡&#xff0c;请问公鸡、母鸡、小鸡各多少只&#xff1f; 问题分析 用百钱如…

.Net网络通信组件 - TouchSocket

文章目录 .Net网络通信组件 - TouchSocket1、新建.Net8控制台项目2、Nuget安装TouchSocket组件3、编写服务端代码4、编写客户端代码5、编写Program代码6、运行效果7、日志组件&#xff08;NLog&#xff09;参考我的另一篇博客 .Net网络通信组件 - TouchSocket 1、新建.Net8控制…

图像处理软件,常用于照片编辑和修饰

一、简介 1、一款功能强大的图像处理软件&#xff0c;常用于照片编辑和修饰。它提供多种工具和特效&#xff0c;允许用户调整照片的亮度、对比度、色彩、锐化等 二、下载 1、文末有下载链接,不明白可以私聊我哈&#xff08;麻烦咚咚咚&#xff0c;动动小手给个关注收藏小三连&a…

Apache的ab压力测试工具与性能监控

【图书介绍】《软件性能测试、分析与调优实践之路&#xff08;第2版&#xff09;》_软件性能测试分析与调优实践之路-CSDN博客《软件性能测试、分析与调优实践之路&#xff08;第2版&#xff09;》(张永清)【摘要 书评 试读】- 京东图书 (jd.com) Apache的ab压力测试工具 A…

分布式Redis(14)哈希槽

文章目录 一致性哈希算法理论普通哈希的问题一致性hash算法 Redis 使用哈希槽Redis Cluster集群 为什么Redis是使用哈希槽而不是一致性哈希呢&#xff1f;为什么Redis Cluster哈希槽数量是16384&#xff1f; 关键词&#xff1a;一致性 Hash&#xff0c;哈希槽&#xff0c; 带着…

react的组件的概念和使用

文章目录 1. **组件的定义****函数组件****类组件** 2. **组件的生命周期**3. **状态管理****类组件中的状态管理****函数组件中的状态管理** 4. **组件之间的通信****通过 Props 传递数据****上下文&#xff08;Context&#xff09;** 5. **组件的样式**6. **处理表单**7. **错…

51单片机-AD(模拟信号转数字信号)-实验()

介绍AD AD转换&#xff08;Analog to Digital Conversion&#xff0c;模数转换&#xff09;是将连续的模拟信号转换为离散的数字信号的过程。这个过程在各种电子设备中都非常重要&#xff0c;特别是在涉及传感器、音频信号、视频信号等需要进行数字化处理的领域。 个人理解&a…

正也科技-辖区与指标管理系统 强化决策支持

正也科技的“辖区与指标管理系统”设计理念先进&#xff0c;旨在通过科学合理的组织架构和精细化的指标管理&#xff0c;帮助企业实现更高效的市场布局、人员配置及业绩监控。以下是对该系统核心功能的进一步阐述及其对企业运营带来的优势&#xff1a; 正也科技辖区管理 1. 组…

最新PyCharm安装详细教程及pycharm配置

目录 一、PyCharm简介及其下载网站 二、单击网站的Downloads&#xff0c;进入二级页面&#xff0c;选择对应的操作系统下载PyCharm 三、PyCharm的安装程序的安装及其配置(configuration) 1、运行PyCharm Setup 2、安装位置设置 3、安装选项设置 4、开始菜单中PyCharm快捷方式的…