gpt
chatgpt on wechat
00 分钟
2023-12-17
2024-4-29
type
status
date
slug
summary
tags
category
icon
password
Parent item
Sub-item
Language

前言

项目地址: zhayujie/chatgpt-on-wechat,感谢作者提供了一个可以让gpt和微信结合的工具。

接入pandora轻松入门体验

没办法科学上网,没有官方apikey,怎么优雅使用openai chatgpt?pandora作者提供了全局代理,包括注册。他还提供了反代,这样我们能够构建自己的api,嵌入到自己的应用上。
本文讨论结合pandora-next反代的api搭建微信机器人。
想了解pandora的出门右转
下面是项目作者的网站,博客,和电报群
FakeOpen: https://fakeopen.org/
Newsletter: zhile.io
Telegram: [@ja_netfilter_group](https://t.me/ja_netfilter_group)
zhayujie/chatgpt-on-wechat项目中可以把base url 和key替换pandora的就行。
docker部署
微信(都说有封号风险,我没遇上,但宁可信其有不可信其无,转站企业微信)
如果已经部署了chatgpt-on-wechat,下面就不必看了,直接去微信体验机器人。
企业微信
pandora key说明**:
pandora提供的key有share token和pool token,不同的share token之间可以隔离对话,pool token可以封装100个fk-,这样可以轮询使用不同的fk-,不至于阻塞。
share token有效期是最长10天,pool token支持更新,也就是我们可以通过access token生成share token,在pool token失效之前使用share token更新,这样就不用操作项目,换key,再进行热更新。
思路:
1.通过用户名和密码,生成access token(Access Token有效期为10天);
2.通过access token 生成share token;
3.定时任务,每周五生成新的share token更新pool token
update_pool_token.py代码实现
也可以使用定时任务脚本(可选)
  • crontab -e
  • 0 2 * * 5 python /app/update_pool_token.py

开发进阶:接入新的model指南

记录这个是方便以后自己接入其他模型,避免耗费时间再去捋一遍思路。

原理初识

我们先从源码浅看,消息的处理:(以处理文本为例)
notion image
notion image
notion image
notion image
notion image
总结:
(以gemini说明)
1.处理文本信息,需要创建“chat”的机器人,chat机器人调用的模型需要从config[‘model’],默认gpt-3.5-turbo。
todo: 这个只需要配置model对应的value,不涉及代码变更,可以使用的时候再配置;
2.通过传入的模型value值,进行判断,设定self.btype[typename]。
todo: bridge.py需要增加判断条件:
3.判断条件中使用了常量值,const.GEMINI,这个需要定义。
todo: const.py中定义:
4.create_bot(bot_type)拿到了入参,判断创建对话模型
todo: bot_factory.py中增加条件判断
5.构建bot的调用api
todo: 参考对应模型的api,进行构建调用
现在,我们可以从原作者增加一个模型的commit,再来回顾下。
notion image
总共涉及新增或修改6个文件,除了上述总结的5个多了一个godcmd,这个是要在微信里面切换模型的时候需要。