python
Tips: 本项目适用于开发者!
开发环境:Python 3.11.9
一. 所需项目
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本地部署视频教程~
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

························································以上为前置工作······················································
三. 本项目参数配置
项目文件:带记忆功能的微信智能客服.rar
链接: https://pan.baidu.com/s/1z-mWJEBppxDQ5GKbkBOwPw?pwd=9tdq 提取码: 9tdq
配置文件参数说明
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代码操作说明
- 判断是否成功链接: 成功返回 True
python
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())
- 创建新用户
python
# 创建用户
uid = mb.add_user({"username": "demo"})
mb.update_user(uid, {"username": "demo"})
print(uid)
- 管理用户 (获取用户信息并打印)
python
uid = "13c03ec9-c25f-4f43-a66e-58865ea41acf"
u = mb.get_user(uid)
print(u.context())
- 插入数据
python
# 插入聊天数据
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()
- 查询数据
python
# 获取记忆数据
u.flush()
print(u.profile(need_json=True))
6 .将记忆集成到您的提示词中
python
print(u.context(max_token_size=500, prefer_topics=["basic_info"]))
六. 最终效果演示


