Tips: 本项目适用于开发者!
开发环境:Python 3.11.9
项目源码: https://github.com/oocsoo/MemoWeChatBot 

一. 所需项目

Dify项目:https://github.com/langgenius/dify 推荐部署1.70版本!

Memobase项目:项目文件见本项目文件内!(memobase-main.zip)

在dify工具库中搜索memobase并安装,配置memobase参数,注意Memobase URL需要使用:http://host.docker.internal:8019 这个位置需要注意下!
在这里插入图片描述

二. Dify和Memobase项目部署(Docker compose部署)

1. dify本地部署视频教程~

https://www.bilibili.com/video/BV1homLBjEEj/?spm_id_from=333.337.search-card.all.click&vd_source=15a592c5f0263a9d0bc6f52efa971d09

2. memobase本地部署视频教程~

https://www.bilibili.com/video/BV1JwVZz5EPS/?spm_id_from=333.1391.0.0
https://www.bilibili.com/video/BV1eTLFzkEwg/?spm_id_from=333.1391.0.0
在这里插入图片描述

························································以上为前置工作······················································

三. 本项目参数配置

配置文件参数说明

1.基础参数配置!

ROBOT_ID=机器人微信Id(官网登录后可以在管理系统中查看到,www.wechatbot.online)
TOKEN=令牌(官网登录后可以在管理系统中查看到,www.wechatbot.online)
SERVER_IP=服务器IP无需修改
SERVER_PORT=5555(服务端口,无需修改)

2.dify项目配置!

>>chatflow智能体本地访问URL和密钥<<
DIFY_BASE_URL=http://127.0.0.1/v1
DIFY_API_KEY=app-cdLLKDMn0vDn8yOpWGlIrfwq
>>知识库本地访问URL和密钥<<
KNOWLEDGE_BASE_URL=http://127.0.0.1/v1
KNOWLEDGE_API_KEY=dataset-RDyPjU6YVhHrHU0PogV4r3og

3.群聊触发关键词!
KEYWORD=@马先宏

四. 项目文件说明

main.py项目入口
schedule.py消息调度(可改异步)
usermanger.py 是实现memobase项目增查功能!
sdk_python3.X 是天翼云SDK,用户操作对象存储! 可实现 增删改查 https://wechat-bot.apifox.cn/7540681m0
api>difyapi.py> 调用dify中chatflow智能体的的接口!
api>knowledge_dify.py> 在dify中操作知识库的接口!
action> 消息发送接口! https://wechat-bot.apifox.cn/7531569m0
带记忆的聊天助手.yml> chatflow的工作流文件。在dify中直接导入使用。

在这里插入图片描述

五. Memobase项目本地Python代码操作说明

  1. 判断是否成功链接: 成功返回 True

from memobase import MemoBaseClient, ChatBlob

# 确保端口是 8019,API Key 是 secret
mb = MemoBaseClient(project_url="http://47.106.20.33:8019", api_key="secret")

# 连接状态
assert mb.ping()
print(mb.ping())

  1. 创建新用户

# 创建用户
uid = mb.add_user({"username": "demo"})
mb.update_user(uid, {"username": "demo"})
print(uid)

  1. 管理用户 (获取用户信息并打印)
 
uid = "13c03ec9-c25f-4f43-a66e-58865ea41acf"
u = mb.get_user(uid)
print(u.context())

  1. 插入数据

# 插入聊天数据
messages = [
    {
        "role": "user",
        "content": "我是一个程序员"
    },
    {
        "role": "user",
        "content": "我喜欢python",
    },
    {
        "role": "user",
        "content": "我超级喜欢打PUBG"
    }
]
bid = u.insert(ChatBlob(messages=messages))
print(bid)
print(u.get(bid))
u.flush()

  1. 查询数据

# 获取记忆数据
u.flush()
print(u.profile(need_json=True))

6 .将记忆集成到您的提示词中

print(u.context(max_token_size=500, prefer_topics=["basic_info"]))

六. 最终效果演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐