零基础教你如何快速搭建一个【QQ版聊天AI女友】

零基础教你如何快速搭建一个【QQ版聊天AI女友】

文章目录

零基础教你如何快速搭建一个【QQ版聊天AI女友】

一、AI女友运行效果展示

AI女友

二、QQ版AI女友项目简介

【项目地址】:https://github.com/TheD0ubleC/QQSafeChat
大家觉得好用的话不要忘记给这位大佬一个免费的⭐star哦
【注意】:在使用这个项目之前,请确保自己的电脑为Windows系统

QQSafeChat 是一个基于 Windows UI Automation (UIA) 技术开发的、专为 QQ NT(9.0+)版本 设计的桌面端聊天机器人自动化接入框架。

项目核心定位是:通过安全、非侵入式的界面自动化方式,在QQ聊天窗口中实现高度拟人化的AI对话交互。

其主要特性与价值如下:

  • 🧩 安全无侵入:严格通过操作系统标准的UI自动化接口与QQ客户端交互。不注入、不抓取通信协议、不扫描内存,最大程度避免了对QQ客户端安全机制的干扰,保障了用户账号安全。
  • 🤖 深度拟真交互:不仅仅发送文本,更致力于模拟真实人类的聊天习惯。支持模拟真人打字速度消息分段发送,并已实现触发“对方正在输入”状态提示,大幅提升了对话的自然感和沉浸感。
  • 🎨 创新型表情包发送:项目的一大亮点是集成了独立的 StickerSelector 子项目。该模块利用本地微型AI模型进行语义理解,能根据对话上下文,智能地从用户添加的表情包库中挑选并发送最贴合语境的表情包,极大丰富了AI的表达能力。
  • ⚙️ 稳定与轻量:通过精准绑定消息列表、输入框、发送按钮等核心UI控件实现稳定操作。项目本身非常轻量,对系统资源要求极低,适合在各类环境中长期稳定运行。

简单来说,QQSafeChat 为开发者与爱好者提供了一个安全的“桥梁”,能够将任何AI模型(如大型语言模型)的能力,无缝、自然、生动地接入到QQ的日常聊天界面中,创造出高度拟人化的AI聊天伴侣或自动化助手体验。

注:本项目为第三方工具,基于UI自动化技术实现,需在官方QQ客户端框架内合规使用。

三、手把手教你如何搭建AI女友

3.1 项目下载

点击上面的项目地址,进入项目首页面,如果没有安装git的话可以直接点击右上角的Code,然后点击Download ZIP,就可以直接将项目下载成ZIP格式的压缩包辣

在这里插入图片描述

3.2 安装配置

在安装配置之前,请确保自己已经下载并安装好了Python环境,项目作者用的Python版本是Python3.10.6 ,所以在安装Python版本时确保最好不要低于这个版本。
将下载好的项目压缩包进行解压,然后在Pycharm中打开,然后打开终端,输入命令:

pip install -r requirements.txt 

安装依赖

在这里插入图片描述


我这个是已经安装好了的

安装好项目所需依赖之后,就可以直接用一下命令运行项目了

python app.py 
在这里插入图片描述


运行成功的话就会弹出这样一个弹窗,接下来就可以直接配置你的【AI女友】 啦。

3.3 配置Api key

运行项目成功之后,点击弹窗右上角的设置

在这里插入图片描述


配置LLM,首先就是要选择Provider,这个是根据你生成地Api平台模型选择的,因为我实在硅基流动 生成的API密钥,所以选择siliconflow

在这里插入图片描述


【注意】:不要选择第一个mock,这个是项目作者给的一个示例,如果选择这个的话,无论你填没填,到时候你给你的"AI女友"无论发什么信息都只会回复同样的内容,如下所示:

在这里插入图片描述


原因:这是因为 Mock 客户端(MockLLMClient)的逻辑就是这样编写的。
在软件开发中,“Mock”的意思是“模拟”。它的存在不是为了真的去调用 AI,而是为了测试。当你选择 Mock 时,程序不会联网,也不会消耗任何 API 额度。

具体的代码逻辑分析
llm_client.py 文件中,你可以找到 MockLLMClient 类的定义,它的 generate_reply 方法是这样写的:

classMockLLMClient(BaseLLMClient):# ... 省略部分代码 ...defgenerate_reply(self, history_text, new_incoming, persona_text="", split_delimiter="<<<NEXT>>>"):# 它直接返回了这一串固定的文字,并拼凑了你发送的内容returnf"收到:{new_incoming},我先去看看~"

为什么要设计这个 Mock?

  1. 调试 UI 和流程:开发者在测试自动回复、界面显示、消息抓取等功能时,不需要每次都花钱调用 OpenAI 或硅基流动。
  2. 断网测试:在没有网络的情况下,通过 Mock 可以确认程序底层的发送逻辑(比如点击发送按钮、粘贴文字)是否正常工作。
  3. 演示用途:给别人演示点击效果,而不涉及真实的隐私或成本。
classMockLLMClient(BaseLLMClient):def__init__(self):super().__init__()defbuild_request( self, history_text:str, new_incoming:str, persona_text:str="", split_delimiter:str="<<<NEXT>>>",)-> Dict[str, Any]: system_final ="MOCK SYSTEM" user_prompt =f"MOCK USER\nincoming={new_incoming}" payload ={"mock":True}return{"provider":"mock","system": system_final,"user": user_prompt,"payload": payload,"url":"","headers":{},"meta":{"provider":"mock","split_delimiter": split_delimiter},"inputs":{"history": history_text,"incoming": new_incoming,"persona": persona_text,},}defgenerate_reply( self, history_text:str, new_incoming:str, persona_text:str="", split_delimiter:str="<<<NEXT>>>",)->str: req = self.build_request(history_text, new_incoming, persona_text, split_delimiter) raw =f"收到:{new_incoming[:40]}{split_delimiter}我先去看看~" self._emit_debug({"phase":"pre_request","system": req["system"],"user": req["user"],"payload": req["payload"],"meta": req.get("meta",{}),}) self._emit_debug({"phase":"post_response","raw_output": raw,"split_delimiter": split_delimiter,"parts":[p.strip()for p in raw.split(split_delimiter)if p.strip()],"meta":{"provider":"mock"},})return raw 

这里以硅基流动 为例,如何生成API
首先点击硅基流动的官网:https://cloud.siliconflow.cn/me/models

在这里插入图片描述


进入首页之后,点击左侧的API 密钥,点击新建API 密钥,密钥描述随便写就行,新建好密钥之后就直接复制你新建的API密钥,将你的复制好的API 密钥粘贴到这个地方

在这里插入图片描述


然后回到硅基流动,点击左侧的模型广场,选择一个你喜欢的模型,以我的为例:

在这里插入图片描述


这个就是你的模型名,点击API 文档,进去之后光标选中的部分就是我们需要的Base URL

在这里插入图片描述


将准备好的Base URL和上面选择的模型名粘贴到对应输入框中,然后点击右上角的保存并应用,这样我们的AI女友就算配置好啦

在这里插入图片描述

四、绑定QQ组件

将API等配置好并保存好后,就可以绑定组件啦。
用电脑登录你的QQ小号,选择你大号的聊天窗口
【注意】:要确保你电脑上面的QQ的版本要是QQ9.0 以上的才能支持

在这里插入图片描述


点击弹窗上面的三个按钮,并拖拽按键到对应的聊天区域,按键下方显示已绑定,就说明绑定成功啦,绑定好之后,将自动回复勾选上,就可以点击启动啦。

启动之后,你就可以尽情的和你的【AI女友】谈一场轰轰烈烈的恋爱啦!

在这里插入图片描述

五、AI 男/女 友人格设置

在弹窗设置里面,点击人格,这里项目作者自己定义了许多人格,你喜欢哪一款人格就直接选中那个人格,然后点击应用选中人格,选择好之后,记得保存并应用

在这里插入图片描述


当然,如果这里没有你喜欢的人格,你也可以自己生成你喜欢的人格,直接复制已有人格的信息描述复制给AI,然后让AI模仿上面的人格信息生成一个你自己喜欢的人格信息
以下是我生成的人格信息的示例:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

Read more

【花雕学编程】Arduino BLDC 之机器人IMU角度读取 + PID控制 + 互补滤波

【花雕学编程】Arduino BLDC 之机器人IMU角度读取 + PID控制 + 互补滤波

基于 Arduino 平台实现 BLDC 机器人 IMU 角度读取 + 互补滤波 + PID 控制,构成了一个典型的姿态闭环控制系统。该架构是自平衡机器人(如两轮平衡车、倒立摆)或稳定云台的核心技术栈。它通过 互补滤波 融合 IMU 原始数据以获得精准姿态角,再利用 PID 控制器 计算出维持平衡所需的电机驱动力矩,驱动 BLDC 电机 执行动作。 1、主要特点 传感器融合:互补滤波(Complementary Filter) 这是系统的“感知中枢”,解决了单一传感器无法同时满足动态与静态精度需求的矛盾。 频域分割策略:互补滤波本质上是一个频域滤波器。它利用低通滤波(LPF)处理加速度计数据,提取低频的重力方向分量(长期稳定,用于修正漂移);同时利用高通滤波(HPF)处理陀螺仪数据,提取高频的角速度变化分量(动态响应快,

Flutter 组件 upnp_client 的鸿蒙适配实战 - 实现跨设备服务发现、智能家居自动关联与多媒体投屏协议控制

Flutter 组件 upnp_client 的鸿蒙适配实战 - 实现跨设备服务发现、智能家居自动关联与多媒体投屏协议控制

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 upnp_client 的鸿蒙适配实战 - 实现跨设备服务发现、智能家居自动关联与多媒体投屏协议控制 前言 在“万物互联”的愿景下,鸿蒙系统(OpenHarmony)最核心的武器就是跨设备协同能力。然而,如何让你的 Flutter 应用在复杂的家庭或办公内网中,自动发现并操控那些非鸿蒙生态但同样广泛分布的设备(如:DLNA 智能电视、家用路由器、网络打印机、甚至是 NAS 存储)? UPnP(Universal Plug and Play)协议此时扮演了全局搜索的关键角色。作为一套基于 SSDP 和 HTTP 处理发现与控制的老牌协议,它依然是局域网互联互通的“基础设施”。 upnp_client 为 Flutter

Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线

Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线 前言 在鸿蒙(OpenHarmony)生态迈向去中心化金融(DeFi)、隐私通讯及安全资产管理等高阶安全场景的背景下,如何实现更高性能、更具扩展性且抗攻击能力的数字签名架构,已成为决定应用闭环安全性的“压舱石”。在鸿蒙设备这类强调分布式鉴权与芯片级安全(TEE/SE)的移动终端上,如果依然沿用传统的 ECDSA 签名算法,由于由于其固有的可延展性风险与高昂的聚合验证成本,极易由于由于在大规模节点验证时的 CPU 负载过高导致交互滞后。 我们需要一种能够实现签名线性聚合、计算逻辑极简且具备原生抗延展性的密码学方案。 bip340 为 Flutter 开发者引入了比特币 Taproot 升级的核心——Schnorr 签名算法。它不仅在安全性上超越了传统标准,更通过其线性的数学特性,

山东大学《Web数据管理》期末复习宝典【万字解析!】

山东大学《Web数据管理》期末复习宝典【万字解析!】

🌈 个人主页:十二月的猫-ZEEKLOG博客 🔥 系列专栏:🏀山东大学期末速通专用_十二月的猫的博客-ZEEKLOG博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光  目录 1. 第二章 网络爬虫 1.1 爬虫基础知识 1.2 爬虫分类 1.3 开源工具 Nutch 2. 第三章 网页分析 2.1 正则表达式 2.2 DOM模型 2.3 Beautiful Soup工具 2.4 Scrapy框架 2.5 不同爬虫工具比较 2.6 元搜索引擎 3. 第四章 爬虫与网站的博弈 3.1 Robot协议 3.