这里写自定义目录标题
- 前言:
- 效果展示:
- 环境配置:
- 计划完善:
- 核心代码:
前言:
网上有很多在前端调用文心一言接口的,想在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();
}