如何在QT6上配置文心一言的接口,从而生成一个自己的对话框

news2024/11/24 4:27:01

这里写自定义目录标题

  • 前言:
  • 效果展示:
  • 环境配置:
  • 计划完善:
  • 核心代码:

前言:

网上有很多在前端调用文心一言接口的,想在QT上配置文心一言的接口,从而生成一个自己的对话框。

效果展示:

在这里插入图片描述

qtAI

环境配置:

当前环境:QT6.6.3
https://luckycola.com.cn/public/dist/#/上注册一个账号,然后获取你的uid和APPKey,我觉得有点慢,就画两块钱直接快速获得了APPKey。
在这里插入图片描述

计划完善:

输出的内容,最好是可以有格式的,整齐排列。后面还会测试对图片进行分析完善。

核心代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTextEdit>
#include <QMessageBox>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{

    ui->setupUi(this);
    this->setWindowTitle("QT之文心一言接口");
    QUrl url("https://luckycola.com.cn/ai/openwxyy");
    request = QNetworkRequest(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=utf-8");
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QString userInput = ui->textEdit_input->toPlainText();
    QNetworkAccessManager* manager = new QNetworkAccessManager(this);
    QJsonObject json;
    json["ques"] = userInput;
    json["appKey"] = "填写你的appKey";
    json["uid"] = "填写你的uid";
    json["isLongChat"] = 0;

    QJsonDocument doc(json);
    QByteArray data = doc.toJson();
    qDebug() << "Sending JSON data:" << data;

    QNetworkReply *reply = manager->post(request, data);
    connect(reply, &QNetworkReply::finished, this, [reply, this]() {
        if (reply->error() == QNetworkReply::NoError) {
            QByteArray responseData = reply->readAll();
            QJsonDocument responseDoc = QJsonDocument::fromJson(responseData);
            QJsonObject jsonObject = responseDoc.object();

            if (jsonObject.contains("code") && jsonObject["code"].toInt() != 0) {
                QMessageBox::warning(this, "服务器错误", "服务器处理请求时出错,错误代码:" + jsonObject["code"].toString());
                return;
            }

            QString outputText = QString(QJsonDocument(jsonObject).toJson(QJsonDocument::Compact));
            ui->textEdit_output->setText(outputText);
        }
        reply->deleteLater();
    });
}

void MainWindow::on_pushButton_2_clicked()
{
    ui->textEdit_input->clear();
    ui->textEdit_output->clear();
}

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

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

相关文章

Sentinel-1 Level 1数据处理的详细算法定义(九)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程&#xff0c;以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下&…

JavaScript学习文档(10):日期对象、节点操作、 M端事件、JS插件、学生信息表案例

目录 一、日期对象 1、实例化 2、时间对象方法 3、时间戳 &#xff08;1&#xff09;时间戳 &#xff08;2&#xff09;获取时间戳的三种方式&#xff1a; &#xff08;3&#xff09;倒计时效果 二、节点操作 1、DOM 节点 2、 查找节点 3、增加节点 &#xff08;1&…

windows11 上安装了python的wxpython模块,vscode运行时还是报错的解决方法

遇到问题&#xff1a;windows11 上明明安装了python的wxpython模块&#xff0c;vscode运行时还是报错“Traceback (most recent call last): File “c:\pythoncode\new\tonguedetect.py”, line 1, in import wx ModuleNotFoundError: No module named ‘wx’” 如何解决&…

uniapp uni-popup底部弹框留白 底部颜色修改 滚动穿刺

做底部弹框的时候&#xff0c;可能出现以下场景需要处理。 一、出现底部留白不是白色&#xff0c;需要修改颜色的时候&#xff1a; 1、如果弹框不需要圆角效果&#xff0c;则在uni-popup加上背景色就行&#xff0c;弹框是个直角样式&#xff1a; 2、如果需要圆角效果&#xff0…

芒格-“用幸存者心态去对待问题,永远不要有受害者心态”

我不会因为人性而感到意外&#xff0c;也不会花太多时间感受背叛&#xff0c; 我总是低下头去调整自己&#xff0c;去适应这一类事情&#xff0c; 所以我不允许自己花太多时间&#xff0c;去感受背叛&#xff0c; 但凡有一丁点这种想法&#xff0c;从我脑海闪过&#xff0c;我就…

Ubuntu 18.04升级gclibc为2.28版本

一、查看系统支持的 GLIBC 版本号 ​strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_出现以下&#xff0c;说明到2.27版本&#xff0c;没有2.28版本&#xff0c;所以我们需要手动安装 GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_…

Linux环境下的MySQL的卸载、安装与使用[以CentOS7为例说明]

Linux环境下的MySQL的卸载、安装与使用[以CentOS7为例说明] 1、下载MySQL安装包2、卸载MySQL&#xff08;1&#xff09;检查是否安装过MySQL和mariadb&#xff08;2&#xff09;卸载MySQL和mariadb&#xff08;3&#xff09;问题记录&#xff08;了解&#xff09; 3、安装MySQL…

MacOS通过Docker部署MySQL数据库,以及Docker Desktop进行管理

目录 一.不需要持久化存储 1.启动容器 2.查看容器和镜像 3.容器管理 二.持久化存储启动mysql容器 1.创建docker卷 2.运行容器,指定卷 3.在mysql里面随便建个库,建张表,弄点数据 4.停止并删除MySQL容器 5.重新运行容器,并且挂载相同的卷,也就是上面第二步的命令 6.连…

【412】【统计近似相等数对 II】

差130个样例&#xff0c;等佬解 class Solution:def ifqual(self,str1,str2):return int(str1)int(str2)def change(self,str1,str2):str1 list(str1)nlen(str1)t0for i in range(n):for j in range(i1,n):str1[i],str1[j]str1[j],str1[i]t1if self.ifqual("".join…

k8s-使用Network Policies实现网络隔离

一、需求 Kubernetes 的命名空间主要用于组织和隔离资源&#xff0c;但默认情况下&#xff0c;不同命名空间中的 Pod 之间是可以相互通信的。为了实现更严格的网络隔离&#xff0c;同一套k8s需要根据不同的命名空间进行网络环境隔离&#xff0c;例如开发&#xff08;dev01&…

Plik文件上传系统本地docker部署与远程访问传输文件详细操作流程

文章目录 前言1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 前言 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问&#xff0c;实现随时随地在任意设…

blender4.2中安装插件的方式

1&#xff0c;安装好blender之后&#xff0c;打开软件&#xff0c;找到 编辑&#xff0c;---> 偏好设置&#xff0c; 插件---> 从磁盘安装...., 找到插件.zip格式的文件&#xff0c; 选择 .zip格式的文件后&#xff0c;点击“从磁盘安装”按钮&#xff0c;即可

【linux003】目录操作命令篇 - cd 命令

文章目录 1、基本用法2、常见选项3、举例4、注意事项 cd 命令在 Linux 中用于更改当前工作目录。它是“change directory”的缩写。 cd 命令本身比较简单&#xff0c;不具有复杂的选项和参数&#xff0c;但它提供了一些有用的功能。 1、基本用法 cd [目录]2、常见选项 ~&…

示波器常识概述及简介

1、示波器分类 DSO&#xff1a;数字存储示波器&#xff1b; MSO&#xff1a;混合信号示波器&#xff0c;将传统的 DSO 测量模拟与逻辑分析测量相结合。 2、示波器探头提供高阻抗输入的原因 示波器探头在测试点提供相对较高的输入阻抗端子功能&#xff08;高电阻&#xff0c;低…

Html 添加音效音乐音频播放和震动效果

文章目录 需求分析1.我们需要将用到的音频文件导入到我们的网页中2.赋给图片点击的方法3.编写play()方法4. wav 格式转 MP35. 添加震动效果需求 给页面添加背景音乐和震动效果 分析 点击指定点播放音乐,再次点击则停止音乐. 1.我们需要将用到的音频文件导入到我们的网页…

数据库:头歌实验一关系数据库标准语言SQL

一、创建数据库 本关任务&#xff1a; 建立数据库 任务要求&#xff1a; 建立demo数据库 并显示所有数据库 #代码开始 CREATE DATABASE demo; show databases;#代码结束 二、创建表 本关任务&#xff1a; 建立数据表 任务要求 设有一个demo数据库&#xff0c;包括S,P,…

Android 动态性能框架 (ADPF)

Performance Hint API | Android game development | Android Developers (google.cn) ADPF 是一组 API&#xff0c;可让游戏和性能密集型应用更为直接地与 Android 设备的电源和散热系统进行互动。借助这些 API&#xff0c;您可以监控 Android 系统上的动态行为&#xff…

给Ubuntu添加硬盘之后,该如何使用

当你给Ubuntu系统添加了新的硬盘后&#xff0c;你需要按照以下步骤来识别、分区、格式化和挂载新硬盘&#xff1a; 1. 检查新硬盘是否被系统识别 首先确认新硬盘已经被系统识别&#xff1a; lsblk 2. 分区新硬盘 如果硬盘没有分区或者需要重新分区&#xff0c;可以使用fdis…

Open3D mesh 获取网格属性

目录 一、概述 二、网格属性 三、实现代码 四、实现效果 4.1原始mesh 4.2数据显示 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、概述 在 Open3D 中&#xff0c;网格模…

kubectl陈述式资源管理方式、声明式资源管理

一、命令行: kubectl命令行工具 优点: 90%以上的场景都可以满足 对资源的增&#xff0c;删&#xff0c;查比较方便&#xff0c;对改不是很友好 缺点:命令比较冗长&#xff0c;复杂难记 声明方式&#xff1a;k8s当中的yaml文件实现资源管理----声明式 GUI:图形化工具的管理…