当前位置: 首页 > news >正文

用Qt和deepseek创建自己的问答系统

如果你不想花钱调用deepseek,试试下面的方法。

1: 访问

OpenRouter:

https://openrouter.ai

2: 搜索 DeepSeek-R1 (free)

要使用这个免费模型,你需要:

(1)注册 OpenRouter 账户并获取 API 密钥

  •        访问 https://openrouter.ai 注册账户
  •        在账户设置中获取 API 密钥

(2)运行程序并输入你的 OpenRouter API 密钥

  • 程序会提示你输入 API 密钥
  • 密钥会被安全地保存在本地设置中

(3)开始使用免费模型进行对话

  • 在输入框中输入你的问题
  • 点击"发送"按钮或按回车键发送消息

第一次登录要先注册,注册后就可以生成自己的apikey

创建好后,接下来就是代码如何实现:

我用QT创建了一个简单的交互页面,主要含有三个按钮:

  • 发送
  • 清空
  • 密钥重置

密钥重置主要用于更改密钥,点击密钥重置会弹出一个小窗口进行填写密钥,填写完毕后,窗口会打印出密钥已更新。

1、pro配置

QMAKE_PROJECT_DEPTH = 0
QT       += core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11SOURCES += \main.cpp \mainwindow.cpp \deepseek_client.cppHEADERS += \mainwindow.h \deepseek_client.h# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALL_ROOT *= 0

 2、mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QVBoxLayout>
#include <QScrollArea>
#include "deepseek_client.h"class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void handleSendMessage();void handleClearChat();void handleAIResponse(const QString &response);void handleAIError(const QString &error);void handleResetApiKey();private:void appendMessage(const QString &message, bool isUser);void setupDeepSeek();void resetApiKey();QWidget *centralWidget;QVBoxLayout *mainLayout;QTextEdit *chatDisplay;QLineEdit *inputField;QPushButton *sendButton;QPushButton *resetApiKeyButton;QPushButton *clearButton;QScrollArea *scrollArea;DeepSeekClient *deepseekClient;
};#endif // MAINWINDOW_H 

 3、deepseek_client.h

#ifndef DEEPSEEK_CLIENT_H
#define DEEPSEEK_CLIENT_H#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>class DeepSeekClient : public QObject
{Q_OBJECTpublic:explicit DeepSeekClient(QObject *parent = nullptr);void setApiKey(const QString &apiKey);void sendMessage(const QString &message);signals:void responseReceived(const QString &response);void errorOccurred(const QString &error);private:QNetworkAccessManager *networkManager;QString apiKey;QString apiEndpoint;
};#endif // DEEPSEEK_CLIENT_H 

 4、mainwindow.cpp

#include "mainwindow.h"
#include <QVBoxLayout>
#include <QWidget>
#include <QDateTime>
#include <QScrollBar>
#include <QMessageBox>
#include <QSettings>
#include <QInputDialog>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{// 创建中心部件centralWidget = new QWidget(this);setCentralWidget(centralWidget);// 创建主布局mainLayout = new QVBoxLayout(centralWidget);// 创建聊天显示区域chatDisplay = new QTextEdit(this);chatDisplay->setReadOnly(true);chatDisplay->setStyleSheet("QTextEdit { background-color: #f5f5f5; }");mainLayout->addWidget(chatDisplay);// 创建输入区域QHBoxLayout *inputLayout = new QHBoxLayout();inputField = new QLineEdit(this);inputField->setPlaceholderText("输入你的问题...");inputLayout->addWidget(inputField);sendButton = new QPushButton("发送", this);inputLayout->addWidget(sendButton);clearButton = new QPushButton("清空对话", this);inputLayout->addWidget(clearButton);resetApiKeyButton = new QPushButton("重置API密钥", this);inputLayout->addWidget(resetApiKeyButton);mainLayout->addLayout(inputLayout);// 连接信号和槽connect(sendButton, &QPushButton::clicked, this, &MainWindow::handleSendMessage);connect(clearButton, &QPushButton::clicked, this, &MainWindow::handleClearChat);connect(resetApiKeyButton, &QPushButton::clicked, this, &MainWindow::handleResetApiKey);connect(inputField, &QLineEdit::returnPressed, this, &MainWindow::handleSendMessage);// 设置窗口标题和大小setWindowTitle("DeepSeek AI 问答系统");resize(600, 400);// 初始化DeepSeek客户端setupDeepSeek();// 添加欢迎消息appendMessage("你好!我是DeepSeek AI助手,有什么我可以帮你的吗?", false);
}MainWindow::~MainWindow()
{delete deepseekClient;
}void MainWindow::setupDeepSeek()
{deepseekClient = new DeepSeekClient(this);// 从设置中读取API密钥QSettings settings("YourCompany", "DeepSeekChat");QString apiKey = settings.value("apiKey").toString();if (apiKey.isEmpty()) {// 如果没有保存的API密钥,弹出对话框请求输入bool ok;apiKey = QInputDialog::getText(this, "DeepSeek API密钥","请输入你的DeepSeek API密钥:", QLineEdit::Password,"", &ok);if (ok && !apiKey.isEmpty()) {settings.setValue("apiKey", apiKey);}}deepseekClient->setApiKey(apiKey);// 连接信号connect(deepseekClient, &DeepSeekClient::responseReceived,this, &MainWindow::handleAIResponse);connect(deepseekClient, &DeepSeekClient::errorOccurred,this, &MainWindow::handleAIError);
}
void MainWindow::resetApiKey()
{QSettings settings("YourCompany", "DeepSeekChat");settings.remove("apiKey"); // 删除旧的API密钥bool ok;QString apiKey = QInputDialog::getText(this, "DeepSeek API密钥","请输入你的DeepSeek API密钥:", QLineEdit::Password,"", &ok);if (ok && !apiKey.isEmpty()) {settings.setValue("apiKey", apiKey);deepseekClient->setApiKey(apiKey);appendMessage("API密钥已更新", false);} else {appendMessage("API密钥未更新,请稍后重试", false);}
}void MainWindow::handleResetApiKey()
{resetApiKey();
}
void MainWindow::handleSendMessage()
{QString userInput = inputField->text().trimmed();if (userInput.isEmpty()) {return;}// 显示用户消息appendMessage(userInput, true);inputField->clear();// 发送消息到DeepSeekdeepseekClient->sendMessage(userInput);
}void MainWindow::handleClearChat()
{chatDisplay->clear();appendMessage("你好!我是DeepSeek AI助手,有什么我可以帮你的吗?", false);
}void MainWindow::handleAIResponse(const QString &response)
{appendMessage(response, false);
}void MainWindow::handleAIError(const QString &error)
{QMessageBox::warning(this, "错误", "AI响应出错: " + error);
}void MainWindow::appendMessage(const QString &message, bool isUser)
{QString timestamp = QDateTime::currentDateTime().toString("hh:mm:ss");QString formattedMessage = QString("[%1] %2: %3\n").arg(timestamp).arg(isUser ? "你" : "AI").arg(message);chatDisplay->append(formattedMessage);// 滚动到底部QScrollBar *scrollbar = chatDisplay->verticalScrollBar();scrollbar->setValue(scrollbar->maximum());
} 

 5、deepseek_client.cpp

#include "deepseek_client.h"
#include <QNetworkRequest>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
#include <QTimer>
DeepSeekClient::DeepSeekClient(QObject *parent): QObject(parent), networkManager(new QNetworkAccessManager(this)), apiEndpoint("https://openrouter.ai/api/v1/chat/completions")
{// 设置SSL配置QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone);QSslConfiguration::setDefaultConfiguration(sslConfig);
}void DeepSeekClient::setApiKey(const QString &apiKey)
{this->apiKey = apiKey;
}void DeepSeekClient::sendMessage(const QString &message)
{if (apiKey.isEmpty()) {emit errorOccurred("API key not set");return;}QNetworkRequest request(apiEndpoint);request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");request.setRawHeader("Authorization", QString("Bearer %1").arg(apiKey).toUtf8());QJsonObject jsonObj;jsonObj["model"] = "deepseek/deepseek-r1-zero:free"; // 使用OpenRouter上的免费模型QJsonArray messagesArray;QJsonObject systemMessage;systemMessage["role"] = "system";systemMessage["content"] = "你是一个友好的AI助手,会用简洁专业的语言回答问题。";messagesArray.append(systemMessage);QJsonObject userMessage;userMessage["role"] = "user";userMessage["content"] = message;messagesArray.append(userMessage);jsonObj["messages"] = messagesArray;jsonObj["temperature"] = 0.7;jsonObj["max_tokens"] = 1000;QJsonDocument doc(jsonObj);QByteArray data = doc.toJson();qDebug() << "Sending request to OpenRouter:" << apiEndpoint;qDebug() << "Request data:" << data;QNetworkReply *reply = networkManager->post(request, data);connect(reply, &QNetworkReply::finished, [=]() {if (reply->error() == QNetworkReply::NoError) {QByteArray responseData = reply->readAll();qDebug() << "Response received:" << responseData;QJsonDocument responseDoc = QJsonDocument::fromJson(responseData);QJsonObject responseObj = responseDoc.object();if (responseObj.contains("choices") && responseObj["choices"].isArray()) {QJsonArray choices = responseObj["choices"].toArray();if (!choices.isEmpty()) {QJsonObject choice = choices[0].toObject();if (choice.contains("message")) {QJsonObject messageObj = choice["message"].toObject();QString content = messageObj["content"].toString();emit responseReceived(content);}}} else {QString errorMsg = "Invalid response format: " + QString(responseData);qDebug() << errorMsg;emit errorOccurred(errorMsg);}} else {QString errorMsg = QString("Network error: %1\nStatus code: %2\nResponse: %3").arg(reply->errorString()).arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()).arg(QString(reply->readAll()));qDebug() << errorMsg;emit errorOccurred(errorMsg);}reply->deleteLater();});// 添加超时处理QTimer::singleShot(30000, [=]() {if (reply && reply->isRunning()) {reply->abort();emit errorOccurred("Request timed out after 30 seconds");}});
}

 运行结果:

相关文章:

用Qt和deepseek创建自己的问答系统

如果你不想花钱调用deepseek&#xff0c;试试下面的方法。 1: 访问 OpenRouter&#xff1a; https://openrouter.ai 2: 搜索 DeepSeek-R1 (free) 要使用这个免费模型&#xff0c;你需要&#xff1a; &#xff08;1&#xff09;注册 OpenRouter 账户并获取 API 密钥 访问 …...

飞搭系列 | 组件增加标记,提升用户体验

前言 Preface 飞搭低代码平台&#xff08;FeiDa&#xff0c;以下简称“飞搭”&#xff09;&#xff0c;为企业提供在线化、灵活的业务应用构建工具&#xff0c;支持高低代码融合&#xff0c;助力企业低门槛、高效率和低成本地快速应对市场变化&#xff0c;加速复杂业务场景落地…...

布隆过滤器的应用

布隆过滤器虽然看起来是一个“算法结构”&#xff0c;但在实际 Web 应用场景中用途非常广泛&#xff0c;尤其在 提升性能、节省资源、防御攻击 等方面非常有用。 缓存穿透保护&#xff08;常见于 Redis&#xff09; &#x1f4cc; 问题&#xff1a; 用户频繁请求一些数据库中…...

云原生--基础篇-4--CNCF-1-云原生计算基金会(云原生生态发展和目标)

1、CNCF定义与背景 云原生计算基金会&#xff08;Cloud Native Computing Foundation&#xff0c;CNCF&#xff09;是由Linux基金会于2015年12月发起成立的非营利组织&#xff0c;旨在推动云原生技术的标准化、开源生态建设和行业协作。其核心目标是通过开源项目和社区协作&am…...

(16)VTK C++开发示例 --- 转换文件格式

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 此示例演示如何读取文件&#xff0c;然后将其写入不同类型的文件。 在此示例中&#xff0c;我们读取一个 vtp 文件并…...

离线-DataX

基本介绍 DataX 是阿里云 DataWorks数据集成的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台&#xff0c;它是一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源…...

深度学习-全连接神经网络-3

七、过拟合与欠拟合 在训练深层神经网络时&#xff0c;由于模型参数较多&#xff0c;在数据量不足时很容易过拟合。而正则化技术主要就是用于防止过拟合&#xff0c;提升模型的泛化能力(对新数据表现良好)和鲁棒性&#xff08;对异常数据表现良好&#xff09;。 1. 概念认知 …...

基于javaweb的SSM+Maven教材管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

DCL介绍

一.dcl-介绍 一.案例 1.查询用户 USE mysql&#xff1b; select * from user&#xff1b; 2.权限控制...

mysql日常巡检

1.查看mysql服务是否异常 systemctl status mysql_3306 查看MySQL进程是否存在 ps -ef | grep mysql 2.连接异常检查 (1)查看是否异常连接 show processlist; #或 show full processlist; (2)查看当前失败连接数 show global status like aborted_connects; (3)查看试…...

Cursor这类编程Agent软件的模型架构与工作流程

开发&#xff5c;界面&#xff5c;引擎&#xff5c;交付&#xff5c;副驾——重写全栈法则&#xff1a;AI 原生的倍速造应用流 来自全栈程序员 nine 的探索与实践&#xff0c;持续迭代中。 欢迎评论私信交流。 最近在关注和输出一系列 AIGC 架构。 模型架构与工作流程 大语…...

记录:扩展欧几里得算法

本文遵循 CC BY-NC-ND 4.0 协议&#xff0c;作者&#xff1a; U•ェ•*U \texttt{U•ェ•*U} U•ェ•*U&#xff0c;转载请获得作者授权。 前置知识 裴蜀定理/贝祖定理&#xff1a;若 a , b a,b a,b 是整数&#xff0c;且 gcd ⁡ ( a , b ) d \gcd(a,b)d gcd(a,b)d&#xf…...

学习笔记——《Java面向对象程序设计》-抽象和接口

参考教材&#xff1a; Java面向对象程序设计&#xff08;第3版&#xff09;微课视频版 清华大学出版社 抽象方法 抽象方法是使用abstract关键字修饰的成员方法&#xff0c;抽象方法在定义时不需要实现方法体。 抽象方法的定义格式如下&#xff1a; abstract void 方法名称…...

MySQL中根据binlog日志进行恢复

MySQL中根据binlog日志进行恢复 排查 MySQL 的 binlog 日志问题及根据 binlog 日志进行恢复的方法一、引言二、排查 MySQL 的 binlog 日志问题&#xff08;一&#xff09;确认 binlog 是否开启&#xff08;二&#xff09;查找 binlog 文件位置和文件名模式&#xff08;三&#…...

数据库sql语句 中 GROUP BY 关键字详解及字段要求

GROUP BY 关键字详解及字段要求 GROUP BY 的核心作用 将查询结果按指定字段分组&#xff0c;常与聚合函数&#xff08;如 COUNT, SUM, AVG 等&#xff09;结合使用&#xff0c;对分组后的数据进行统计计算。 GROUP BY 后字段的要求 非聚合字段必须出现在 GROUP BY 子句中&…...

数据集 | 柑橘果目标检测数据集

文章目录 一、数据集概述1.1 数据标注实例1.2 数据集技术规格 二、样本类别详解2.1 树上柑橘样本2.2 树下柑橘样本 三、标注工具四、数据下载地址 一、数据集概述 在农业智能化领域&#xff0c;柑橘果园的自动化监测与管理一直面临着几个关键挑战&#xff1a; 果实定位准确性…...

Arduino示例代码讲解:Project 11 - Crystal Ball 水晶球

Arduino示例代码讲解:Project 11 - Crystal Ball 水晶球 Project 11 - Crystal Ball 水晶球程序功能概述功能:硬件要求:输出:代码结构全局变量`setup()` 函数`loop()` 函数读取倾斜开关状态:检测状态变化:保存状态:运行过程注意事项Project 11 - Crystal Ball 水晶球 /…...

Redis—为何持久化使用子进程

AOF重写以及bgsave的时候为什么采用fork子进程而不是子线程&#xff1f; 进程间内存隔离 独立的内存空间&#xff1a;子进程拥有与主进程独立的内存空间&#xff0c;确保即使在重写过程中发生崩溃或错误&#xff0c;也不会影响主进程的运行和内存状态。 数据安全性&#xff…...

Vue3 + Vite + TS,使用 ExcelJS导出excel文档,生成水印,添加背景水印,dom转图片,插入图片,全部代码

Vue3 Vite TS,使用 ExcelJS导出excel文档&#xff0c;生成水印&#xff0c;添加背景水印&#xff0c;dom转图片&#xff0c;插入图片&#xff0c;全部代码 ExcelJS生成文档并导出导出表头其他函数 生成水印设置文档的背景水印dom 转图片插入图片全部代码 ExcelJS 读取&#…...

VulnHub-DarkHole_1靶机渗透教程

VulnHub-DarkHole_1靶机渗透教程 1.靶机部署 [Onepanda] Mik1ysomething 靶机下载&#xff1a;https://download.vulnhub.com/darkhole/DarkHole.zip 直接使用VMware打开就行 导入成功&#xff0c;打开虚拟机&#xff0c;到此虚拟机部署完成&#xff01; 注意&#xff1a…...

Python设计模式:对象池

1. 什么是对象池设计模式&#xff1f; 对象池设计模式是一种创建型设计模式&#xff0c;主要用于管理和复用对象&#xff0c;以提高性能和资源利用率。它通过维护一个对象的集合&#xff08;池&#xff09;&#xff0c;来避免频繁地创建和销毁对象&#xff0c;从而减少内存分配…...

【上海大学数据库原理实验报告】MySQL数据库的C/S模式部署

实验目的 掌握Linux环境下MySQL数据库的安装、初始化和基本配置。通过配置MySQL的网络通信&#xff0c;熟悉数据库的远程访问机制及其安全性要求。 实验内容 在腾讯云上租借两台服务器&#xff0c;打开3306端口以允许MySQL远程访问。 图 1 租到的服务器可在控制台观察其状态…...

deepseek快速生成简历

目录 一、需求二、模板例子 三、生成简历四、其他说明 一、需求 现在我准备跳槽到一家公司&#xff0c;这家公司已经发布了招聘需求&#xff0c;现在你想跳槽到这家公司&#xff0c;我们可以利用deepseek快速生成符合这家公司的简历内容。 二、模板 我们要进行指令明确的结构…...

什么是机器视觉3D无序堆叠抓取

机器视觉3D无序堆叠抓取是一种结合三维视觉感知、人工智能算法和机器人控制的技术,旨在从杂乱无序堆叠的物体中识别、定位并抓取目标物体。该技术广泛应用于工业自动化(如物流分拣、装配制造)、仓储管理、食品加工等领域,解决了传统二维视觉或固定规则堆叠场景下的抓取难题…...

Shell脚本中的字符串截取和规则变化

文章目录 前言if通配符判断if判断多个条件规则变化字符串的两个示例改变中间段数字改变末尾段数字 总结 前言 科技的发展会带来习惯的改变&#xff0c;特别是对于我们这批敲代码的&#xff0c;之前还积累一些奇巧淫技&#xff0c;想着在必要的时候卖弄一下&#xff0c;自从生成…...

云账号安全事件应急响应指南:应对来自中国IP的异常访问

在当今数字化时代,云服务已成为企业IT基础设施的核心。然而,随之而来的安全挑战也日益突出。本文将详细介绍当发现云账号被来自中国的IP地址异常利用时,应如何快速有效地响应,以确保账户安全并最小化潜在风险。 1. 确认异常活动 首先,我们需要确认是否真的发生了安全事件…...

python番外

#作者&#xff1a;允砸儿 #日期&#xff1a;乙巳青蛇年 三月廿五 在开始数据库的分享之前笔者简单写以下关于python的番外。笔者这块可能写的不是很好csdn上面有很多大佬&#xff0c;笔者仅以自己的思维和想法与大家分享以下。 安装必看 笔者在这里贴一个网址https://www.…...

Jetson Orin NX 16G 配置GO1强化学习运行环境

这一次收到了Jrtson Orin NX, 可以进行部署了。上一次在nano上的失败经验 Jetson nano配置Docker和torch运行环境_jetson docker-CSDN博客 本次的目的是配置cuda-torch-python38环境离机运行策略。 Jetson Orin NX SUPER 1. 烧录镜像 参考链接在ubuntu系统中安装sdk manag…...

Embedding与向量数据库__0422

thinking&#xff1a;做一个项目 1&#xff0c;业务背景&#xff0c;价值 2&#xff0c;方法&#xff0c;工具 3&#xff0c;实践&#xff08;现有的代码&#xff0c;改写的代码&#xff09; cursor编程有个cursor settings ->privacy mode隐私模式&#xff0c;但是只要连上…...

正向代理和反向代理

正向代理和反向代理是两种在不同场景下使用的代理技术&#xff0c;它们有以下区别&#xff1a; 目标和作用 正向代理 目标 &#xff1a;主要是为客户端服务&#xff0c;帮助客户端去访问外部网络资源。例如&#xff0c;企业内部网络中的员工可能需要访问互联网&#xff0c;但直…...

Android JNI开发中头文件引入的常见问题与解决方案​,提示:file not found

Android JNI开发中头文件引入的常见问题与解决方案 问题场景&#xff08;新手易犯错误&#xff09; 假设你在开发一个JNI项目&#xff0c;想要实现一个线程安全的队列&#xff08;SafeQueue&#xff09;&#xff0c;于是直接在cpp目录下创建了safe_queue.h文件&#xff0c;并开…...

三网通电玩城平台系统结构与源码工程详解(二):Node.js 服务端核心逻辑实现

本篇文章将聚焦服务端游戏逻辑实现&#xff0c;以 Node.js Socket.io 作为主要通信与逻辑处理框架&#xff0c;展开用户登录验证、房间分配、子游戏调度与事件广播机制的剖析&#xff0c;并附上多个核心代码段。 一、服务端文件结构概览 /server/├── index.js …...

案例:Windows 作为客户端免密验证(公钥验证)

一、实验前提 1.服务器端为 Linux 系统&#xff0c;且能够正常运行相关命令和服务&#xff0c;如 systemctl、ssh 服务等。同时&#xff0c;客户端为 Windows 系统&#xff0c;且具备使用 SSH 客户端工具连接到 Linux 服务器的条件 2.Linux 服务器上已安装并配置好 SSH 服务&…...

leetcode 二分查找

704. Binary Search 代码&#xff1a; class Solution { public:int search(vector<int>& nums, int target) {int n nums.size();int left 0;int right n-1;int res -1;while(left < right){int mid (leftright)/2;if(nums[mid] target){res mid;break;}…...

C++:STL模板

STL模板分为函数模板和类模板。 我想交换两个数字&#xff0c;但是类型不同&#xff0c;例如我想交换整形a,b&#xff0c;和double类型的d1,d2。如果使用C语言来实现&#xff0c;那么需要像下面一样写两个swap函数&#xff0c;但是除了类型不同&#xff0c;其它都一样&#xf…...

NumPy入门:从数组基础到数学运算

目录 一、NumPy 数组基础 &#xff08;一&#xff09;创建数组 &#xff08;二&#xff09;数组索引 &#xff08;三&#xff09;数组切片 二、数组操作 &#xff08;一&#xff09;形状操作 &#xff08;二&#xff09;数组合并与分割 三、基本数学运算 &#xff08;…...

文档管理 Document Management

以下是关于项目管理中 文档管理 的深度解析,结合高项(如软考高级信息系统项目管理师)教材内容,系统阐述文档管理的理论框架、核心流程及实战应用: 一、文档管理的基本概念 1. 定义 文档管理是对项目全生命周期中产生的各类文档进行规范化管理的过程,包括创建、存储、版…...

TCP三次握手与四次挥手面试回答版本

面试官&#xff1a;说一下TCP三次握手的过程 参考面试回答&#xff1a; 在第一次握手的时候、客户端会随机生成初始化序号、放到TCP报文头部的序号字段中、同时把SYN标志设置为1 这样就表示SYN报文&#xff08;这里是请求报文&#xff09;。客户端将报文放入 TCP 报文首部的序…...

Windows7升级Windows10,无法在此驱动器上安装Windows

一、现象描述 台式机工作站&#xff0c;从Windows7升级Windows10&#xff0c;采用MediaCreationTool_22H2制作U盘启动盘&#xff0c;安装系统遇到问题如下&#xff1a; 二、原因分析 是由于硬盘格式不是GPT硬盘&#xff0c;而Windows系统只能安装到GPT硬盘上&#xff0c;所以…...

【阿里云大模型高级工程师ACP习题集】2.2 扩展答疑机器人的知识范围

练习题 【单选题】在RAG应用的建立索引过程中,文本向量化的主要目的是( )。 A. 将文本转换为计算机能理解的数字形式,便于比较相似度 B. 对文本进行分类 C. 去除文本中的噪声数据 D. 提取文本中的关键词 【多选题】以下属于RAG应用中建立索引步骤的有( )。 A. 文档解析 B…...

Mininet--node.py源码解析

算法逻辑详解 1. 核心类结构 代码通过面向对象的方式定义了网络模拟中的各类节点&#xff0c;继承关系如下&#xff1a; Node ├── Host │ └── CPULimitedHost ├── Switch │ ├── UserSwitch │ ├── OVSSwitch │ ├── OVSBridge │ └── IVSS…...

龙虎榜——20250422

指数目前还是震荡为主&#xff0c;等待后续的选择方向 2025年4月22日龙虎榜行业方向分析 一、核心主线方向 化工&#xff08;新材料产能优化&#xff09; • 代表标的&#xff1a;红宝丽&#xff08;环氧丙烷/锂电材料&#xff09;、亚太实业&#xff08;农药中间体&#xff…...

掌握 Altium Designer:轻松定制“交换器件”工具栏

在PCB设计过程中&#xff0c;快速交换器件&#xff08;如电阻、电容、IC等&#xff09;是提高效率的关键。Altium Designer提供了灵活的工具栏定制功能&#xff0c;让用户可以创建专属的"交换器件"工具栏&#xff0c;将常用操作集中管理&#xff0c;减少菜单切换时间…...

npm的基本使用安装所有包,安装删除指定版本的包,配置命名别名

npm的基本使用安装所有包&#xff0c;安装删除指定版本的包&#xff0c;配置命名别名 安装所有依赖指定版本安装/删除包给 npm 脚本配置“命令别名&#xff08;自定义命令&#xff09;” ✅ 一、安装所有包&#xff08;恢复依赖&#xff09; 如果项目中已经存在 package.json…...

transformer预测寿命

完整的Transformer剩余寿命预测代码体系。该代码已在锂电池和工业设备数据集验证&#xff0c;支持端到端训练和预测。 python import torch import numpy as np from torch import nn, optim from sklearn.preprocessing import MinMaxScaler from torch.utils.data import Da…...

如何将视频轻松转换为GIF动态图

在社交媒体和日常聊天中&#xff0c;GIF动态图因其体积小、循环播放的特点而广受欢迎。很多人希望将视频中的精彩片段制作成GIF图分享给朋友或用于内容创作。本文将详细介绍如何简单快速地将视频转换为GIF动态图&#xff0c;无需复杂软件&#xff0c;几步即可完成。 转换步骤 …...

一文详解Pytorch环境搭建:Mac电脑pip安装Pytorch开发环境

对于希望在本地环境中进行深度学习开发的开发者来说&#xff0c;配置PyTorch工具是至关重要的一步。。对于Mac用户而言&#xff0c;搭建PyTorch开发环境并不复杂&#xff0c;本文将详细介绍如何在Mac电脑上使用pip安装PyTorch开发环境&#xff0c;帮助开发者快速上手深度学习开…...

ios开发中xxx.debug.dylib not found

问题描述&#xff1a;error: Build input file cannot be found: /Users/zhoutao/Library/Developer/Xcode/DerivedData/XfLive-effvxneriinvzwexohdsevonmhsk/Build/Products/Debug-iphoneos/xFLive.app/xFLive.debug,dylib’, pid you forget to declare this file as an out…...

Linux嵌入式系统SQlite3数据库学习笔记

前言 SQlite3是一个轻量级、嵌入式的关系型数据库管理系统&#xff0c;其中具有的核心特点&#xff1a; 1&#xff1a;嵌入式数据库&#xff1a;无需独立服务器进程&#xff0c;数据库直接嵌入到应用程序中。 2&#xff1a;单文件存储&#xff1a;整个数据库存储为单个文件&…...

【教程】安装 iterm2 打造漂亮且高性能的 mac 终端

【教程】安装 iterm2 打造漂亮且高性能的 mac 终端_mac 安装iterm2-CSDN博客 安装myzh 参考文章&#xff1a;https://blog.csdn.net/qq_44741467/article/details/135727124 下载地址&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 1、下载到本地 2、进入下载的…...