LinkAI简介
LinkAI是极简未来科技旗下的企业级一站式 AI 智能体搭建与接入平台产品。聚合多模态大模型、知识库、Agent插件、工作流等能力,并基于丰富的应用接入和管理能力,为用户提供将 LLM 大语言模型落地应用的强大SaaS平台。可零代码搭建集私有知识和特定任务执行能力于一体的 Agent 智能体,并一键接入主流 IM 和办公协同平台实现对话式营销、智能客服与办公效率助手等业务场景。
ChatGPT-on-WeChat简介
chatgpt-on-wechat项目是基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT4.0/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。
前置准备
服务器
使用LinkAI的服务接入,国内服务器即可,国内云服务器厂商都有新人优惠,自己按需购买即可。此教程接入是基于腾讯云的服务器,点击腾讯云,注册购买,项目对服务器配置要求不高,1核1G即可,看自己的预算购买。
配置文件模板
服务器Python部署:config.json,Docker部署:docker-compose.yml
概念说明
应用:应用简单来说就是你制作出的AI机器人,通过它可以配置这个机器人的性格人设、对话风格、数据来源(知识库)、各项技能(插件)。同时在LinkAI平台每个应用都有一个唯一的 app_code,任何应用集成和API接入都需要通过app_code来完成。
应用分为知识库应用和轻量应用,如果需要上传私有文档来让训练机器人,要选择知识库应用。
关于应用的更多说明,可点击查看 应用配置说明。
知识库:
知识库是基于RAG架构,可上传 无结构文档、Q&A问答对格式、多列表格 的知识以及图片、视频等素材来训练智能体,增强解析支持将导入pdf、docx文档中的图片或表格一并提取进入知识库,让AI具备基于给定知识范围进行智能问答的能力。
知识库需要和应用绑定使用,支持实时更新内容,并可设置知识库的检索策略,自定义召回深度和精度,可在线进行问答检索测试。详情可查看 知识库说明。
工作流:
工作流(workflow) 是一种更为灵活的智能体搭建方式,可以自由组合应用、知识库、插件、意图识别、定时任务、渠道发送等能力,通过流程编排的方式来增强AI智能体对流程型复杂任务的理解和执行能力,并让整个工作过程白盒化。
接入到微信中的方式,和接入应用一样,只需要把工作流的code填入
linkai_app_code
参数中,更多工作流介绍、配置和使用可以点击 工作流说明查看。
环境搭建
系统安装
服务器购买过程中,服务器系统选择Ubuntu20.4
,如果选错了或者想更换其他系统,按照下图重装即可,请记住设置的密码:
安装完成后,可以看到上图的界面,新手建议直接使用腾讯云提供的一键登录功能登录,也可以使用ssh工具远程登录,如果忘记密码可以在这里重置!后续使用一键登录方式进入命令行窗口,执行指令。
到这里Ubuntu系统安装好了,如果没有Linux基础建议新手装一个宝塔面板,可以可视化修改配置文件。
宝塔安装
使用一键登录功能进入,选择免密登录,进入命令行窗口,然后输入下面的宝塔安装脚本(适用于Ubuntu),按回车,输入y
,即可自动安装宝塔面板:
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
等待安装完毕,会如下图所示,请保存外网访问地址核用户名以及密码:
这里我们需要到腾讯云控制台放行图中提示的39605
端口(端口是随机的,按照上图提示开放相应的端口),按下图操作:
开放端口以后,我们复制外网访问面板地址到浏览器,同意用户协议 、绑定手机号,不需要安装推荐的软件。
部署方式选择
部署方式建议云服务器直接部署和使用docker部署,不建议在本地和railway部署,本地环境复杂且不能24小时运行,railway不再提供免费额度且插件配置较为麻烦。
这里介绍服务器直接部署的方式,docker部署可参考:docker部署chatgpt-on-wechat项目及配置。
部署流程
(1) 下载源码
进入命令行窗口,使用 git
命令克隆项目到我们的服务器(因为是从GitHub下载,国内网络时好时坏,可以多次尝试,实在不行可以手动下载项目文件夹上传,后面插件有介绍该方式。),
并使用cd
命令进入目录,然后使用cp
命令复制模板配置文件并命名为config.json
:
git clone https://github.com/zhayujie/chatgpt-on-wechat
git clone https://gitee.com/zhayujie/chatgpt-on-wechat # 如果执行上边的指令下载不了,可以执行这条指令,能下载成功即可
cd chatgpt-on-wechat/
cp config-template.json config.json
执行pwd
命令,我们可以看到当前所在的目录为/home/lighthouse/chatgpt-on-wechat
,我们到宝塔面板的文件选项卡可以一步步进入该目录(或者把刚刚的目录地址输入到宝塔地址栏回车):
上图就是我们的chatgpt on wechat
项目文件夹,config.json
就是我们上一步生成的配置文件,是项目的主配置文件。
下面我们先配置项目的运行环境,安装依赖:
(2) 安装依赖
我们安装的Ubuntu20.4,系统自带python3.8,所以python环境应该是没问题的,项目要求必须是3.7及以上,我们可以执行python3 -V
来查看python版本,如下图所示:
然后我们执行以下命令安装项目的依赖,-i https://pypi.tuna.tsinghua.edu.cn/simple
代表的是使用国内的源,这样可以加快国内服务器依赖安装速度!注意:此时我们应该处于chatgpt-on-wechat
目录下执行下面的命令,如果不在,可以使用cd
命令切换到该目录下!
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install -r requirements-optional.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
依赖安装成功如上图所示,黄色warning
可以不用管。
(3) 配置
第一步中我们已经使用cp config-template.json config.json
命令来生成了配置文件。这里解释一下,文件名中一般带有template
的都是模板配置文件,需要把这个文件复制一下并重名为config.json
,这个文件才是最终生效的文件,后面讲到的各个插件目录下也都会有模板配置文件,需要复制重命名一下!
我们回到宝塔面板页面,双击第(1)步末尾截图所示的config.json
文件,打开进行修改。
可以清空已有的内容,点击config.json下载适配LinkAI的配置文件模板,复制粘贴进去,如下图所示:
<img src="https://wangpc-cc.oss-cn-shenzhen.aliyuncs.com/blog/deployment-11.png" style="zoom: 67%;" />
基本配置说明:
"use_linkai": true,
true代表使用linkai的服务;"linkai_api_key": "Link_MnW8oUvKHwGtYpfG10uKvTM",
这里填入linkai 的key,点这里申请:https://chat.link-ai.tech/console/interface
"linkai_app_code": "default"
,这里填入自己在linkai平台创建的应用code,可以先写成default
,详细见本文前置准备章节中的介绍。"model": "gpt-3.5-turbo",
使用的模型,LinkAI目前支持gpt、文心、讯飞、千问、kimi、Claude、Gemini
等模型,全部模型见模型列表,建议把model留空,更改应用的默认模型即可实时切换模型"single_chat_prefix": ["bot"]
该项代表触发机器人回复的前缀,这里设为bot
,即以bot开头的内容会触发机器人回复,如果扫码登录后机器人不回复,可能是没有加这里的触发前缀,如果不想设置触发前缀,可以改为[""]
即可(注意中括号内的引号不要去掉)。"group_chat_prefix": ["orange"]
同理,这里代表了在群内发消息如果以orange
开头,会触发机器人回复,可按需自定义设置。"group_name_white_list": ["手把手搭建群"]
,这是群聊白名单,决定了机器人在什么群可以 被触发,把需要触发机器人的群聊名称都写在这里,以逗号隔开。想所有群都可以触发,那这里就设为:["ALL_GROUP"]
"hot_reload": true,
热重载这个参数设为true,这样我们每次重启项目后不用再次扫码!
其实前两项配置完,就可以启动项目,扫码登录使用了。其他项按需设置即可,详细的参数说明可以参考配置说明
项目所有可以配置的参数都在chatgpt-ob-wechat/config.py
文件写明了,把相应的参数复制到config.json
进行配置即可,使用中可以按需增添及修改。
(4) 运行
一切准备就绪,可以启动程序了,在项目目录(chatgpt-on-wechat)下执行下面的命令,使用nohup
命令在后台运行程序,即使断开命令行窗口也能保持运行:
touch nohup.out # 首次运行需要新建日志文件
nohup python3 app.py & tail -f nohup.out # 在后台运行程序并通过日志输出二维码
输出的二维码可能会乱码,可以复制二维码上边的链接在浏览器打开即可。扫码登录后,服务器log会输出Start auto replying
字样日志,代表运行成功,可以对机器人进行提问,私聊的话记得加上前边设置的single_chat_prefix
参数,
如上,机器人私聊已经可以正常使用了,以及服务器同步输出的日志。如果有什么问题,这里的日志会显示错误信息。
群聊,只要该群名称在group_name_white_list
配置项内,就可以直接艾特机器人提问,或者使用group_chat_prefix
设置的前缀(orange)进行提问!
注意:修改配置常见的一个问题就是使用了中文标点符号和多/少逗号,这些都会提示是json文件有问题,如下图所示,宝塔文件页面会提示,服务器log也会提示,有JSONDecodeErro
字样,在log日志界面我们可以按下CTRL+C
来回到执行命令界面:
至此,基本的对话功能已经设置完毕,可以正常使用机器人了。
我们如果想修改config.json
里面的配置项,可以在宝塔内直接修改,然后运行下面的命令关掉正在运行的项目,再重新运行项目即可生效!(同样需要在项目根目录运行)
ps -ef | grep app.py | grep -v grep # 可以查看当前进程的 pid:
kill xxx # xxx是上一条命令运行后显示的进程pid
nohup python3 app.py & tail -f nohup.out # 运行项目
进阶配置
语音
<img src="https://wangpc-cc.oss-cn-shenzhen.aliyuncs.com/blog/image-20240713234059729.png" alt="image-20240713234059729" style="zoom: 33%;" />
LinkAI目前支持openai的语音识别和生成,前面下载的模板配置文件已经设置好(如上),音色可以在LinkAI平台的应用里选择和切换。
私聊发语音即可回复语音,群聊的话需要先语音说出设置的群聊触发前缀(group_chat_prefix": ["@bot", "你好"]
)之一
注意:项目接入微信使用的是itchat协议,不支持发送语音条,机器人回复的是一个mp3文件。接入公众号和企微自建应用可以直接回复语音条
画图
得益于linkai平台增强能力,我们给机器人发送$mj open
(如提示需要管理员权限,请看下面godcmd插件说明),即可打开mj作图的功能!
详细的mj使用教程,可以参考MJ绘画功能
运行多个机器人
如果想一台服务器运行多个机器人,可以在宝塔面板把chatgpt-on-wechat
这个项目文件夹整体复制一下,并改个名字方便识别!
在命令行,我们使用cd ..
命令进入上一级目录,然后使用ls
命令查看当前目录的所有文件(夹),然后cd chatgpt-on-wecha---2/
切换到新复制的项目文件夹,在该目录下运行项目(nohup python3 app.py & tail -f nohup.out
),即可用另外一个号扫码登录来做第二个机器人,修改该目录下的config.json
文件即可配置第二个机器人相关的参数!
插件安装和使用
chatgpt-on-wechat项目支持自己开发插件接入,有代码能力的话可以根据自己的需求来编写插件。如果没有开发能力,可以使用项目内置插件。
此外,LinkAI平台在应用里提供了时间、联网搜索、计算器、网页速读等插件,开启即可使用,也支持无代码开发自定义插件。
godcmd插件
该插件是内置的管理员插件,可以提供很多管理员级别的操作,比如上边提到的mj作图的开关($mj open
)。
在宝塔面板进入plugins/godcmd
文件夹,双击打开config.json
文件,password
内填入你要设置的管理员密码,比如:123456
,admin_users
这个不填,因为itchat协议原因,每次重启用户id会变,所以这里写了没用。
关闭项目并重启项目,然后给机器人发送#auth 123456
进行管理员认证
以下是常用管理员指令介绍:
- 随时暂停/打开机器人的服务,给机器人发送
#stop
暂停服务,发送#resume
恢复服务 - 我们修改了根目录的
config.json
后,我们可以通过给机器人发送#reconf
来重载项目配置,不用重启项目 - 如果我们修改了各个插件的
config.json
后,我们可以给机器人发送#reloadp 插件名
来重载插件的配置 - 想看机器人当前装了什么插件,我们给机器人发送
#plist
即可查看当前插件列表 - 我们可以通过指令安装插件,比如安装
apilot
插件,我们可以发送#installp https://github.com/6vision/Apilot.git
(详见下一个插件介绍),因为是从GitHub下载,国内服务器网络可能有时候不好使,会报错,这样我们可以手动下载该插件压缩包到本地,然后在宝塔面板再上传到插件目录上传成功后,解压并重命名为Apilot
,并复制模板配置文件,重名为config.json
,在里面进行相关配置即可(参考下面godcmd插件介绍) - 插件安装配置好之后,我们给机器人发送
#scanp
来扫描新插件,然后使用#enablep 插件名
来开启插件
apilot插件:
一个简单但实用的插件,调用api,直接格式化返回api响应,早报、快递查询、天气查询、热榜等,该插件不是项目内置插件,需要安装。管理员指令部分介绍了如何手动安装,该插件的说明文档也介绍很详细,以及docker部署时候如何配置,可以点击Apilot查看
https://github.com/6vision/Apilot
banwords插件
该插件是项目内置插件,不需要安装,进入banwords插件目录,按照插件说明配置即可:
https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/banwords
将config.json.template
复制为config.json
,将banwords.txt.template
复制为banwords.txt
,复制以下链接的内容粘贴到banwords.txt
,
https://github.com/6vision/sensitive_words/blob/main/banwords.txt
LinkAI本地插件配置:
该插件是项目的功能增强插件,目前已经支持了mj作图,知识库使用,群聊角色绑定,链接和文件的总结以及自动联网搜索等。
切换到./plugins/linkai
目录,复制config.json.template
文件,复制该文件并重命名为config.json
对话功能:
- 支持为每个群聊绑定一个知识库应用,例如将
"group_app_map"
里参数的“测试群名称1”改为你的群聊名称,把“default”改为你的知识库应用code即可 - 也可以在群聊发送指令绑定:
- 支持为每个群聊绑定一个知识库应用,例如将
MJ作图功能:
- 可以通过指令
$mj open/close
来开/关mj作图功能。 - 一般1分钟左右就会出图,如果提示词触发了mj的政策,可能会一直收不到图片,这个任务会6分钟后自动结束并提示画图失败(服务器没有收到图片链接不会扣积分的哦)。可以适当调大
"max_tasks_per_user"
这个参数。
- 可以通过指令
总结功能:
- 可以通过指令
$linkai sum open/close
来开/关总结功能。 - 打开以后,直接发送文件或者链接即可,会提示“正在为你加速生成摘要,请稍后”;
- 查阅返回的总结后,如果有疑问或者需要进一步了解内容,发送“开启对话”即可详细了解;
- 阅读结束,可以发送“退出对话”回到正常对话模型;
- 目前支持微信公众号文章以及各种文件的总结
- 文件目前 支持
txt
,docx
,pdf
,md
,csv
格式,文件大小由max_file_size
限制,最大不超过15M,文件字数最多可支持百万字的文件。建议不要发送过大的文件!较大文件可以上传知识库创建知识库应用。 - 后续更新会支持微信外的链接以及视频总结等。
- 可以通过指令
LinkAI平台插件:
- 内置插件:
<img src="https://wangpc-cc.oss-cn-shenzhen.aliyuncs.com/blog/image-20240714001733736.png" alt="image-20240714001733736" style="zoom: 33%;" />
前面介绍的插件是CoW项目自带的插件,LinkAI平台还提供了一些内置插件,比如联网搜索、时间、图像识别、网页速读等。
这些插件能力在 应用 里面直接开启,实时生效,是基于意图识别调用,无需特定触发关键词,当然也可以设置关键词触发。
如果是知识库应用,可以把插件触发策略设为:<u>知识库和插件同时执行</u>,这样会把插件执行结果以及匹配到的知识库内容发给大模型做参考。
<img src="https://wangpc-cc.oss-cn-shenzhen.aliyuncs.com/blog/image-20240714003821042.png" alt="image-20240714003821042" style="zoom: 33%;" />
2、自定义插件:
平台除了内置插件,还可以无代码编写自定义插件。支持持通过意图识别、关建词匹配的触发条件,执行调用外部接口或服务。可对接业务系统、第三方接口、外部设备等。详见自定义插件介绍
<img src="https://wangpc-cc.oss-cn-shenzhen.aliyuncs.com/blog/custom_plugins_create.png" alt="快递" style="zoom: 25%;" />
<img src="https://wangpc-cc.oss-cn-shenzhen.aliyuncs.com/blog/custom-plugin-run.jpg" alt="img" style="zoom: 33%;" />
更多插件说点击chatgpt-on-wechat项目插件汇总查看
常见问题
修改配置是否需要重启
1、修改项目主配置文件(即项目根目录的config.json),可以给机器人私聊发送#reconf
进行重载,如果不生效就重启项目;修改插件项目本地插件,可以给机器人发送#reloadp 插件名
进行重载,比如#reloadp godcmd
2、可以使用LinkAI的客户端管理功能,无需进入服务器,在线可视化修改配置,保存实时生效。<img src="https://wangpc-cc.oss-cn-shenzhen.aliyuncs.com/blog/image-20240714160950246.png" alt="image-20240714160950246" style="zoom:50%;" />
没有Linux基础,有方便的接入方式么?
LinkAI平台提供了一键接入服务,无需服务器部署,且各渠道功能相比开源项目更丰富,运行更加稳定,详细参考之前的文章:https://www.wangpc.cc/ai/linkai-to-all-platforms/
企业有稳定接入需求,可以联系LinkAI客服咨询:https://docs.link-ai.tech/contact
是否有风险?为什么会经常掉线?
该项目主要接入协同办公平台,推荐使用公众号、企微自建应用、钉钉、飞书等接入通道,其他通道为历史产物已不维护。(接入微信是有一定风险,谨慎使用)
开源项目接入微信默认是使用itchat协议,由于比较老了且无人维护更新,掉线等不稳定问题无法解决,尽量保持手机端微信联网在线。
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。