提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
【喂饭教程】本地知识库Dify如何接入企业微信(方法1-作为应用接入)
说明
写博客小白(第一篇),仅记录自己踩得坑,欢迎大家指出问题或交流:
提示:以下是本篇文章正文内容,按照本博客可以独立完成dify接入企业微信(可耐心看完),下面案例可供参考
1、所需解决问题
希望将本地构建的知识库,接入至企业微信中。
1.1 能否用自己创建的企业微信(未绑定真实企业)进行接入
答案是:可以的
1.2 能否用企业微信(绑定真实企业)进行接入
答案是:可以的,主要区别是需要用到企业备案的域名
1.3 是否一定需要购买云服务器才能接入企业微信
答案是:不是必须项
2、查阅过哪些帖子
- 基于AppFlow部署,可以接入企业微信,但是dify非本地化部署,需要用到云服务器资源,参考帖子如AppFlow:无代码部署Dify并集成到企业微信
- 基于chatgpt-on-wechat,可以接入企业微信,但是没有dify接入的方法,有看到将dify api转化为 openai api的方式进行接入,参考帖子如chat-gpt接入企业微信
- 于dify-on-wechat,找到的参考信息主要是用于接入个人微信,比如【LLMOps】手摸手教你把 Dify 接入微信生态,可能有封号风险(仅个人观点)
- 基于langbot接入企业微信,参考帖子如Moonshot+知识库,一键接入企业微信,打造智能助理或langbot官方文档,最终参考这个帖子将基于langbot将本地部署的dify接入至企业微信(但是也踩了一些坑,卡了好久)
3、接入效果【可先看效果,是不是你想要的!!!】
在企业微信中,可以像与某个用户一样和自建的“三根草的AI助手”进行聊天、询问,它结合本地知识库进行回答。
4、具体步骤
假设你有一台内网服务器(如10.200.15.201服务器),ubuntu系统,想将该ubuntu系统中部署的dify知识库接入企业微信
4.1 注册企业微信,并在企微中创建应用
4.1.1 注册自己企业的企业微信(具备管理员权限)
在企业微信后台,选择“立即注册”,填入基本信息完成注册(基本无坑,也不会影响自己原来加入的公司正式企微)
4.1.2 创建应用
依次选择logo、填入“应用名称”、“选择部门”,即完成“创建应用”
4.1.3 获取企微和应用信息
4.1.3.1 获取企业ID
企业ID存入至临时txt文件中备用
4.1.3.2 打开通讯录同步 ,并获取通讯录secret
通讯录secret,可在企业微信消息中查看,存入至临时txt文件中备用
4.1.3.3 获取应用Secret
4.1.3.4 获取应用token和EncodingAESKey
其中,第1、2、3步获得token和EncodingAESKey,存入至临时txt文件中备用;
第4步非常关键,很多人都会在这里卡注,参考我这边的方案一定能成功(已经验证过)。如果是非正式企业(刚刚自己注册的),需要将内网IP映射一个公网IP(需要借助一些内网透传的方法,内网透传------局域网IP映射到公网),如果是正式企业,直接找公司运维部门或者信息化部门直接申请公网IP以及对应的二级域名。
举个例子:
1)非正式企业用户
部署langbot的服务器(内网IP:10.200.15.201),需要内网透传获得公网IP(公网IP:218.10.21.78),这里应该填入:
http://218.10.21.78:2291/callback/command
2)正式企业用户
部署langbot的服务器(内网IP:10.200.15.201),需要内网透传获得公网IP(公网IP:218.10.21.78),申请到的公司二级域名(http://ai.company_name.cn)这里应该填入:http://ai.company_name.cn/callback/command
4.1.3.5 设置企业可信IP
填入对应的公网IP,不是域名,比如:218.10.21.78
4.1.3.6 暂存txt文档信息基本情况
包含企业id,通讯录secret,应用secret,token,encodingAESKey
4.2 本地化部署langBot
在本地服务器,执行如下命令
sudo curl -fsSL -o /usr/local/bin/langbot-wecom https://pan.thelazy.top/f/VjHg/langbot-wecom.sh && sudo chmod +x /usr/local/bin/langbot-wecom && sudo bash /usr/local/bin/langbot-wecom
然后,依次选择"y"、“1”、“2”、“y”,则完成langBot部署及配置
4.3 本地化部署dify,并构建聊天应用
在本地服务器(与langbot部署同一个服务器即可),按照官方文档部署(基本无坑),可参考帖子本都部署Dify
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
运行结果如下:
4.4 将langbot与企业微信打通
利用暂时txt文档中保存的信息,依次输入企业ID、通讯录secret、应用secret、Token、EncodingAESkey,注意如果提示api不通,大概率是以上五个信息没有填对,特别是Token、EncodingAESkey容易误更新,重新填写即可。
至此,在聊天窗口中与我们构建的应用聊天,比如输入“你好”,一定时间后返回“请求失败”,则说明企业微信与langbot是打通的,langbot能收到企业微信的请求,只是langbot与本地dify未打通,所以只能回答“请求失败”这种类似消息,下面我们来配置langbot与本地化部署的dify。
4.5 将langbot与本地部署dify打通【重点!!!】
4.5.1 langbot填入dify相关信息
关于dify api key和dify base url均可在dify应用中查询获取。
1)获取dify api key
2)获取dify base url
至此,langbot接入dify配置完成,但是是无法使用的,需要在langbot webui中修改相关配置
4.5.2 langbot webui中修改相关配置【踩坑最久的地方!!!】
1)进入langbot webui,在langbot填入dify相关信息后会弹出webui相关url信息,一般为http://218.10.21.78:5301(一般端口号为5301或者5300),首次进入先设置,然后登录
2)设置provider.json文件中相关信息
3)provider.json需要修改的内容
a)请求运行器
修改为“dify-service-api”
b)大模型请求器
因为本地模型是利用ollama运行的,所以这里修改Ollama API,特别需要注意 API URL要设置为172.17.0.1(这是docker0 的ip),这是为其他,比如127.0.0.1等都不行(原因不详,求指教)
关于docker0 ip获取方法,ip addr show docker0
c)所使用的模型名称
填入ollama/deepseek-r1:32b
d)dify service api设置
4.5.3 langbot容器中修改本地大模型路径【踩坑最久的地方!!!】
a)从langbot容器中复制一份llm-models.json文件至宿主机,按样图编辑,增加本地ollama模型
b)docker cp 将修改后的llm-models.json复制至容器中
c)重启容器
总结
至此,基于langbot将本地知识库dify作为应用接入至企业微信,欢迎交流!