基于dify+memobase实现带永久记忆功能AI智能微信客服系统(安全无风控无封号)

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本地部署视频教程~

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

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

三. 本项目参数配置

项目文件:带记忆功能的微信智能客服.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代码操作说明

  1. 判断是否成功链接: 成功返回 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())
  1. 创建新用户
python 复制代码
# 创建用户
uid = mb.add_user({"username": "demo"})
mb.update_user(uid, {"username": "demo"})
print(uid)
  1. 管理用户 (获取用户信息并打印)
python 复制代码
 
uid = "13c03ec9-c25f-4f43-a66e-58865ea41acf"
u = mb.get_user(uid)
print(u.context())
  1. 插入数据
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()
  1. 查询数据
python 复制代码
# 获取记忆数据
u.flush()
print(u.profile(need_json=True))

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

python 复制代码
print(u.context(max_token_size=500, prefer_topics=["basic_info"]))

六. 最终效果演示



相关推荐
2501_948120155 小时前
云原生应用的安全开发与防护策略
安全·云原生
国科安芯6 小时前
RISC-V架构抗辐照MCU在航天器载荷中的SEU/SEL阈值测试与防护策略
单片机·嵌入式硬件·安全·架构·安全威胁分析·risc-v
冬奇Lab6 小时前
【Kotlin系列13】DSL设计:构建类型安全的领域语言
开发语言·安全·kotlin
戴西软件7 小时前
戴西软件发布3DViz设计与仿真数据轻量化平台
大数据·人工智能·安全·机器学习·汽车
世界尽头与你7 小时前
CVE-2024-3366_ XXL-JOB 注入漏洞
安全·网络安全·渗透测试·xxl-job
周某人姓周8 小时前
sql报错注入常见7个函数
sql·安全·web安全·网络安全
资深web全栈开发8 小时前
分布式锁的陷阱:Redlock 真的安全吗?
分布式·安全·wpf
2401_865854888 小时前
如何搭建一个安全的WordPress网站?
安全
开开心心_Every8 小时前
时间自动校准工具:一键同步网络服务器时间
游戏·随机森林·微信·pdf·逻辑回归·excel·语音识别
EverydayJoy^v^9 小时前
RH134学习进程——六.管理SELinux安全
linux·学习·安全·selinux