手把手搭建一个公众号聊天系统-公众号对接大模型(三)

现在需要对接智谱AI、微信公众号了。

因为前两步骤我们都准备好了,这里其实就相对简单,前面我们有公众号的业务代码:

from wechatpy import parse_message
from wechatpy.replies import TextReply

@app.post(
    "/robot/api"
)
async def handle_wx(request: Request):
    xml = await request.body()
    msg = parse_message(xml)

    print(msg)

    if msg.type == "text":
        content = f"Reply: {msg.content}"
        reply = TextReply(content=content, message=msg)
        # 转换成 XML
        return reply.render()

    return TextReply(content="Not support type", message=msg)

注意,在代码的第14行,我们实际上是返回了一个固定的回复,即在用户消息前面加上了Reply:,所以这里实际上只需要调用智谱AI的接口就行了,简单来说改成如下:

# before
    content = f"Reply: {msg.content}"

# after
        response = get_completion(msg.content)
        content = response.choices[0].message

至此,一个简单的对话就实现了。

如何开发更复杂的功能呢?比如:

  • 多轮对话
  • 支持富文本

其实公众号是可以拿到一个FromUserName信息,可以根据这个信息,将用户历史发送的消息-系统回复进行存储,如存在内存或redismysql都是可以的。这样每次请求需要将消息都传给大模型服务,这样就可以实现了。

富文本也是支持的,请参考微信公众号开发文档,以及智谱AI的相关文档。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。