采用wechaty+LM Studio来搭建微信机器人,只需要不到50行代码即可轻松实现
import { WechatyBuilder } from 'wechaty' import request from 'sync-request' import Qr from 'qrcode-terminal'; const wechaty = WechatyBuilder.build() // get a Wechaty instance wechaty .on('scan', (qrcode, status) => { Qr.generate(qrcode); // 展示微信登录二维码 }) .on('login', user => console.log(`${user} 登录成功`)) .on('message', async (m) => { const content = m.text(); const room = m.room(); if (room) { // 如果群聊不是@自己 则不说话 if (!await m.mentionSelf()) return; } if (m.self()) return; const res = request('POST', 'http://localhost:1234/v1/chat/completions', { headers: { "Content-Type": "application/json", }, body: JSON.stringify({ "messages": [ { "role": "system", "content": '假设你是一部百科全书,无所不知无所不能,什么问题都能回答' }, { "role": "user", "content": content } ], "temperature": 0.8, "max_tokens": 4096, "stream": false }) } ); let result = ''; if (res && res.statusCode == 200) { const body = res.getBody(); const jsonObj = JSON.parse(body); // 解析接口返回的JSON内容 if (jsonObj) { //数据处理 result = jsonObj.choices[0].message.content } else { result = '智能机器人正在闭关修炼中,请稍后再来' } } else { result = '智能机器人正在闭关修炼中,请稍后再来' } m.say(result); }) wechaty.start()
提示
机器人的用途可自行设定,并且可根据不同大模型进行个性化定制,操作空间极大,缺点是需要在本地部署,当然,也可以将接口地址改成第三方提供的接口。
本文作者:老程序员小唐
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!