核心技术栈: GeWeAPI + 大模型 API(DeepSeek / OpenAI) + 上下文缓存(Redis)

  • 引言:

    如何让你的微信变成 24 小时在线的 AI 助手?本文用最干的逻辑带你打通大模型与 GeWeAPI 的任督二脉,并解决多轮对话上下文残留问题。

  • 技术架构:

    微信用户 -> GeWe -> Webhook -> 开发者后台 -> 缓存查询上下文 -> 请求大模型 -> GeWe发送文本 -> 微信用户

  • 核心逻辑代码:

import redis
from openai import OpenAI

r = redis.Redis(host='localhost', port=6379, db=0)
ai_client = OpenAI(api_key="YOUR_DEEPSEEK_KEY", base_url="https://api.deepseek.com")

def handle_ai_chat(app_id, from_user, user_content):
    # 1. 从Redis获取历史上下文
    context_key = f"chat:{from_user}"
    history = r.get(context_key)
    messages = eval(history) if history else []

    # 2. 追加当前对话
    messages.append({"role": "user", "content": user_content})

    # 3. 调用大模型
    response = ai_client.chat.completions.create(
        model="deepseek-chat",
        messages=messages[-10:] # 只保留最近10轮防止爆token
    )
    ai_reply = response.choices[0].message.content

    # 4. 更新缓存并用GeWeAPI回传微信
    messages.append({"role": "assistant", "content": ai_reply})
    r.setex(context_key, 600, str(messages)) # 缓存10分钟

    # 调用 GeWe postText 接口回传给 user_content (代码参考第二篇)
    send_private_text(app_id, from_user, ai_reply)

进阶优化技巧: 群聊内只有 @机器人 时才触发 AI 响应的逻辑判断方法(提取 Webhook 中的 ats 标签或匹配 Content 前缀)。

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐