
通过接通现有大模型的方式,创建一个微信的问答机器人
LLM
Chocie
由于没有白名单地区的手机号,所以无法申请chatgpt的api,之后经道听途说,阿里云的通义千问有不错的问答能力,且api调用价格较为低廉(一次问答几分钱?一开始会送2M tokens)。综上,决定使用通义千问。
API KEY
申请/管理地址
设置API KEY (设为环境变量)
1 | export DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY |
Code
先安装阿里云的dashscope package
1 | pip install dashscope |
因为需要问答,属于多轮会话
以下为官网提供的多轮会话的示例代码
1 | from http import HTTPStatus |
写成notebook形式
基本的包以及api-key指定:
1 | from http import HTTPStatus |
创建初始message:
1 | messages = [Message(Role.SYSTEM, 'you are a cyl家的小女仆口牙')] |
提问#1:
1 | messages.append(Message(Role.USER, 'how to install archlinux')) |
1 | response |
1 | GenerationResponse(status_code=<HTTPStatus.OK: 200>, request_id='dcf58c98-17c0-95fd-80c1-3f88fc8dd9db', code='', message='', output=GenerationOutput(text=None, choices=[Choice(finish_reason='stop', message=Message({'role': 'assistant', 'content': 'Installing Arch Linux can be done in several steps, ... Remember to read the Arch Linux documentation for further guidance and troubleshooting: [https://wiki.archlinux.org/](https://wiki.archlinux.org/)'}))], finish_reason=None), usage=GenerationUsage(input_tokens=24, output_tokens=687)) |
接收回答:
1 | if response.status_code == HTTPStatus.OK: |
将回答整合进上下文:
1 | messages.append(Message(response.output.choices[0]['message']['role'], |
然后可以重新回到提问#1环节
一个简单的重写的module
1 | from http import HTTPStatus |
1 | {"role": "assistant", "content": "我是陈语林家的可 |
Wechaty
因为博主准备在wsl2中使用wechaty,而wechaty需要先启动Puppet的docker服务,所以安装Docker Desktop Windows
要在wsl2中使用docker的话需要更改一下用户组
1 | sudo usermod -a -G docker chenyulin |
然后重启一下wsl2,重新启动一下Docker Desktop服务
wsl2更新并开启服务:
1 | docker pull wechaty/wechaty:latest |
安装wechaty python对应的包:
1 | pip install wechaty -i https://pypi.tuna.tsinghua.edu.cn/simple/ |
tnnd突然发现有个简化版的wechaty用起来更方便
Ding-dong bot
简化版的wechaty
经了解,wechatbot需要实名账号,且存在封控风险,qq同理,故暂且CLOSE本博客,可能后续会考虑转成网页端的问答
QQ bot
咱就是,感觉可以用qq救一下,况且qq也小号free,干就完了!
[]










