2024 年 Python 基于 Kimi 智能助手 Moonshot Ai 模型搭建微信机器人(更新中)
注册 Kimi 开放平台
Kimi:https://www.moonshot.cn/
Kimi智能助手是北京月之暗面科技有限公司(Moonshot AI)于2023年10月9日推出的一款人工智能助手,主要为用户提供高效、便捷的信息服务。它具备多项强大功能,包括多语言对话能力、文件阅读与理解、互联网信息访问、搜索能力、信息安全与准确性保障,以及友好的用户交互界面。Kimi是全球首个支持输入20万汉字的智能助手产品,并且已启动200万字无损上下文内测,显著提升了其处理长文本的能力。
Kimi 智能助手:https://kimi.moonshot.cn

Moonshot 模型
官方文档地址:https://platform.moonshot.cn/docs/intro
Moonshot 的文本生成模型(指moonshot-v1)是训练用于理解自然语言和书面语言的,它可以根据输入生成文本输出。对模型的输入也被称为“prompt”。通常我们建议您提供明确的指令以及给出一些范例,来让模型能够完成既定的任务,设计 prompt 本质上就是学会如何“训练”模型。moonshot-v1模型可以用于各种任务,包括内容或代码生成、摘要、对话、创意写作等。
语言模型推理服务
语言模型推理服务是一个基于我们 (Moonshot AI) 开发和训练的预训练模型的 API 服务。在设计上,我们对外主要提供了一个 Chat Completions 接口,它可以用于生成文本,但是它本身是不支持访问网络、数据库等外部资源,也不支持执行任何代码。
Token 基本单位
文本生成模型以 Token 为基本单位来处理文本。Token 代表常见的字符序列。例如,单个汉字"夔"可能会被分解为若干 Token 的组合,而像"中国"这样短且常见的短语则可能会使用单个 Token。大致来说,对于一段通常的中文文本,1 个 Token 大约相当于 1.5-2 个汉字。
需要注意的是,对于我们的文本模型,Input 和 Output 的总和长度不能超过模型的最大上下文长度。
moonshot 支持模型
| 模型名称 | 最大文本长度(字符/标记) | 适用场景 |
|---|---|---|
| moonshot-v1-8k | 8 k | 生成短文本 |
| moonshot-v1-32k | 32 k | 生成长文本 |
| moonshot-v1-128k | 128 k | 生成超长文本 |
模型的 8k、32k、128k 在描述 Moonshot-v1 系列语言模型时,具体指的是模型可以处理的最大上下文窗口长度或文本长度。这些数字代表了模型在理解和生成文本时能够考虑的连续文本字符或标记的数量。
设置 API Key 管理
设置管理地址:https://platform.moonshot.cn/console/api-keys

OpenAI SDK
更新 openai sdk 版本 openai>=1.0
pip install --upgrade 'openai>=1.0'
我们可以这样简单检验下自己库的版本
python -c "import openai; print(\"version =\",openai.__version__)"
版本结果

注意:输出可能是 version = 1.33.0,表示当前 python 实际使用了 openai 的 v1.33.0 的库
配置环境变量 .env
MOONSHOT_API_KEY=sk-4LSbG9qlUDlTkRjGJtbe7BS23SGvDjM42hAUBoF9cWSs····
构建 chat_api.py
import osfrom openai import OpenAIimport dotenv
dotenv.load_dotenv(".env")client = OpenAI(api_key=os.getenv("MOONSHOT_API_KEY"),base_url="https://api.moonshot.cn/v1"
)def chat_answer(content):response = client.chat.completions.create(model="moonshot-v1-8k",messages=[{"role": "system", "content": "my name is edgehacker bot"},{"role": "user", "content": content}])return response.choices[0].message.contentprint(chat_answer("hello"))
微信机器人搭建
微信机器人 wcferry 搭建教程:https://wrist.blog.csdn.net/article/details/138536720
基本原理
当微信收到消息时,抢在微信处理(显示到页面)前,先让工具处理,处理完之后再交还给原来的处理模块。需要发送消息时,模拟微信发送消息,组装好消息体,调用微信发送消息的模块。获取联系人,则是遍历一块特定的内存空间。通过好友验证,则是组装好验证信息,调用微信的验证模块。数据库相关功能,则是通过获取到数据库句柄,基于 sqlite3 的接口来执行。
from queue import Empty
from threading import Thread
from wcferry import Wcf, WxMsg
import chat_apiwcf = Wcf()
bot = wcf.get_user_info()def processMsg(msg: WxMsg, wcf: Wcf):if msg.sender == "weixin":returnif msg.from_group():content = msg.content.replace(f"@{bot['name']}", "").strip()result = chat_api.chat_answer(content)wcf.send_text(msg=result, receiver=msg.roomid)else:content = msg.contentresult = chat_api.chat_answer(content)wcf.send_text(msg=result, receiver=msg.sender)def enableReceivingMsg():def innerWcFerryProcessMsg():while wcf.is_receiving_msg():try:msg = wcf.get_msg()if msg.sender != bot['wxid']:t = Thread(target=processMsg, args=(msg, wcf))t.start()except Empty:continueexcept Exception as e:print(f"ERROR: {e}")wcf.enable_receiving_msg()Thread(target=innerWcFerryProcessMsg, name="ListenMessageThread", daemon=True).start()enableReceivingMsg()
wcf.keep_running()
启动运行:提示登陆微信
python bot.py
自动回复问题预览

微信版本过低解决方案
问题预览

解决方案
通过先按提示,升级到最新版本。登录微信。正常使用一下(发发消息、发发图片……)。然后在 WeChat Files 目录下,应该可以看到账号对应 wxid 的目录。这时候,再卸载掉微信但保留数据(可以把 wxid 目录复制一份出来),然后重新安装 3.9.2.23,应该就可以用了。
更新本地微信版本号:https://www.ez4leon.top/archives/skip-wechat-version-check
相关文章:
2024 年 Python 基于 Kimi 智能助手 Moonshot Ai 模型搭建微信机器人(更新中)
注册 Kimi 开放平台 Kimi:https://www.moonshot.cn/ Kimi智能助手是北京月之暗面科技有限公司(Moonshot AI)于2023年10月9日推出的一款人工智能助手,主要为用户提供高效、便捷的信息服务。它具备多项强大功能,包括多…...
关于接口多态,何时使用接口名创建对象?何时使用子类创建对象?
接口创建对象只能创建他的实现类,所以会出现两种创建方式: 1、接口 对象名 new 类名 2、子类对象 对象名 new 类名 举个例子,swimming是一个接口,flog是他的一个实现类,重写了swimming的eat()方法 子类对象 对象名…...
短视频热恋进行时:成都柏煜文化传媒有限公司
短视频热恋进行时:情感与创意的碰撞与融合 在数字时代的浪潮中,短视频以其独特的魅力,成为了当代人表达情感、分享生活的新宠。它如同一个浓缩的时空胶囊,将那些瞬间的美好、感人的故事、创意的火花,封装在短短几十秒…...
springBoot多数据源使用、配置
又参加了一个新的项目,虽然是去年做的项目,拿来复用改造,但是也学到了很多。这个项目会用到其他项目的数据,如果调用他们的接口取数据,我还是觉得太麻烦了。打算直接配置多数据源。 然后去另一个数据库系统中取出数据…...
打破安全设备孤岛,多源威胁检测与响应(XDR)如何构建一体化安全防线
在数字化和信息化迅猛发展的当下,安全设备孤岛现象成为网络安全治理中的一大挑战。在多元化的市场环境中,不同厂商的安全设备因数据格式与系统兼容性的差异,导致信息流通受阻、共享困难,形成孤立的安全防线。 安全设备孤岛现象不仅…...
Android SurfaceFlinger——概述(一)
一、基础介绍 SurfaceFlinger 是 Android 系统中的一个关键组件,负责管理屏幕显示的合成和渲染。 服务角色:SurfaceFlinger 作为一个系统服务独立运行,它不依赖于任何应用程序进程,而是由系统启动并持续运行。窗口管理:…...
工业 web4.0,UI 风格令人赞叹
工业 web4.0,UI 风格令人赞叹...
HarmonyOS 角落里的知识 —— 状态管理
一、前言 在探索 HarmonyOS 的过程中,我们发现了许多有趣且实用的功能和特性。有些总是在不经意间或者触类旁通的找到。或者是某些开发痛点。其中,状态管理是ArkUI开发非常核心的一个东西,我们进行了大量的使用和测试遇到了许多奇奇怪怪的问…...
TDengine数据迁移
前言 taosdump 是一个支持从运行中的 TDengine 集群备份数据并将备份的数据恢复到相同或另一个运行中的 TDengine 集群中的工具应用程序。 taosdump 可以用数据库、超级表或普通表作为逻辑数据单元进行备份,也可以对数据库、超级 表和普通表中指定时间段内的数据记录…...
使用ZIP包安装MySQL及配置教程
在本教程中,我们将指导您完成使用ZIP包安装MySQL的过程,并对配置文件进行必要的修改,以及解决可能遇到的问题。本示例以MySQL 5.7.44为例,但步骤同样适用于其他版本如MySQL 8.3.0等。请根据实际需要选择适合的版本下载:…...
Java基础入门day64
day64 web项目 数据库设计 在小米商城主页,主要的内容是多种商品类型的展示,分别有手机,智能穿戴,笔记本平板,家电,生活电器,厨房电器,智能家具等大的七个分类,根据这个…...
高德地图轨迹回放/轨迹播放
前言 本篇文章主要介绍高德地图的轨迹回放或播放的实现过程,是基于vue2实现的功能,同时做一些改动也是能够适配vue3的。其中播放条是用的是element UI中的el-slider组件,包括使用到的图标也是element UI自带的。可以实现轨迹的播放、暂停、停…...
像素、像素密度、位图和矢量图
像素、像素密度、位图和矢量图 像素 -- 图像元素pt分辨率ppidpi 点阵图 - bitmap常见的类型 矢量图点阵图 vs 矢量图参考小结 像素、矢量图等概念在前端开发中经常遇到,这里做一个简单的梳理。 像素 – 图像元素 做前端开发的经常遇到它。像素是图像的最小单位&am…...
第二证券股市资讯:昨夜!全球新“股王”诞生
昨晚,英伟达成全球市值榜首公司。 当地时间6月18日,美股三大指数小幅收高,标普500指数与纳指再创前史新高。标普500指数涨0.25%,道指涨0.15%,纳指涨0.03%。 AI热潮推动英伟达大涨,市值逾越微软、苹果&…...
自动水位雨量站:用于水库防汛预警
TH-SW2自动水位雨量站是一种现代化的监测设备,主要用于水库等水域的防汛预警系统。它通过集成水位和雨量监测功能,为水库的管理和调度提供实时、准确的数据支持。 工作原理: 自动水位雨量站通过内置的水位计和雨量计实时监测水库的水位变化和…...
苍穹外卖---新增员工(P16-P20)
一、需求分析和设计 (1)产品原型 一般在做需求分析时,往往都是对照着产品原型进行分析,因为产品原型比较直观,便于我们理解业务。后台系统中可以管理员工信息,通过新增员工来添加后台系统用户。 新增员工…...
Windows10 利用QT搭建SOEM开发环境
文章目录 一. SOEM库简介二. 安装WinPcap三. SOEM(1.4)库安装(1) 编译32位库(2) 编译64位库 四. 运行SOEM示例代码五. WIN10下利用QT构建SOEM开发环境 一. SOEM库简介 SOEM(Scalable Open EtherCAT Master 或 Simple Open EtherCAT Master)是一个开源的…...
SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件二(补充)
SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件二(补充) 如果你想在cmd命令窗口内看到程序运行,即点开弹出运行窗口,关闭时exe自动关闭。 需要再launch4j上进行如下操作: 这样转换好的exe就可以有控制台了…...
【kyuubi k8s】kyuubi发布k8s执行spark sql
背景 依据上一篇kyuubi与spark集成,并发布spark sql到k8s集群,上一篇的将kyuubi和spark环境放在本地某台服务器上的,为了高可用,本篇将其打包镜像,并发布到k8s。 其实就是将本地的kyuubi,spark࿰…...
机械装配革新者:3D工艺大师智慧赋能,装配无忧
机械装配,简而言之,就是将各个零件和部件按照严格的技术要求组装起来,使之成为完整且符合标准的机械产品。这一过程不仅要求技术操作的精确性,更强调每个零件之间的完美配合,以确保产品的最终质量和性能达到最优。 常规…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
