该机器人可以像普通的 Mattermost 用户一样与您交谈。这就像将 chat.openai.com 协作构建到 Mattermost 中一样!但这还不是全部,您还可以使用它通过 Dall-E 生成图像或通过 yFiles 插件生成图表可视化!
以下是如何运行机器人 - 如果您有 Docker 主机,这很容易。
你需要
@chatgpt
)Mattermost 的 Andrew Zigler 创建了一个 YouTube 视频,可快速指导您完成设置。
如果您想了解有关此插件如何上线的更多信息,请阅读 yWorks.com 上的博客文章!
这些是可用的选项,您可以在运行脚本或运行 docker 映像或配置 docker-compose 文件时将它们设置为环境变量。
姓名 | 必需的 | 示例值 | 描述 |
---|---|---|---|
MATERMOST_URL | 是的 | https://mattermost.server | 服务器的 URL。这用于将机器人连接到 Mattermost API |
MATERMOST_TOKEN | 是的 | abababacdcdcd | 来自登录的mattermost 机器人的身份验证令牌 |
OPENAI_API_KEY | 是的 | sk-234234234234234234 | 用于通过 OpenAI 进行身份验证的 OpenAI API 密钥 |
OPENAI_API_BASE | 不 | http://example.com:8080/v1 | OpenAI 兼容 API 的地址。覆盖默认基本路径( https://api.openai.com ) |
OPENAI_MODEL_NAME | 不 | gpt-3.5-turbo | 要使用的 OpenAI 语言模型,默认为gpt-3.5-turbo |
OPENAI_MAX_TOKENS | 不 | 2000 | 传递给 OpenAI API 的最大令牌数,默认为 2000 |
OPENAI_TEMPERATURE | 不 | 0.2 | 要使用的采样温度介于 0 和 2 之间,默认为 1。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定性。 |
YFILES_SERVER_URL | 不 | http://localhost:3835 | 用于嵌入自动生成的图表的 yFiles 图形服务的 URL。 |
NODE_EXTRA_CA_CERTS | 不 | /file/to/cert.crt | 指向证书文件的链接,传递给 node.js 以验证自签名证书 |
MATERMOST_BOTNAME | 不 | "@chatgpt" | Mattermost 中机器人用户的名称,默认为“@chatgpt” |
插件 | 不 | graph-plugin, image-plugin | 机器人启用的插件。默认情况下,所有插件(grpah-plugin 和 image-plugin)均已启用。 |
调试级别 | 不 | TRACE | 用于记录活动的调试级别,默认为INFO |
BOT_CONTEXT_MSG | 不 | 15 | 附加到 ChatGPT 对话中的先前消息数,默认为 100 |
BOT_指令 | 不 | Act like Elon Musk | 额外的指导来为您提供帮助。助理应该如何表现? |
注意
YFILES_SERVER_URL
用于自动将机器人创建的文本信息转换为图表。目前该功能正在开发中。您可以在此处查看它的实际效果:LinkedIn 帖子 如果您有兴趣使用该插件,请联系 yWorks!
使用ghcr.io/yguy/chatgpt-mattermost-bot
中的预构建图像
docker run -d --restart unless-stopped
-e MATTERMOST_URL=https://mattermost.server
-e MATTERMOST_TOKEN=abababacdcdcd
-e OPENAI_API_KEY=234234234234234234
--name chatbot
ghcr.io/yguy/chatgpt-mattermost-bot:latest
第一步是克隆此存储库。
git clone https://github.com/yGuy/chatgpt-mattermost-bot.git && cd chatgpt-mattermost-bot
为了进行测试,您现在可以直接运行npm install
和npm run start
,但请务必首先设置环境变量或将它们传递给节点进程!
对于生产使用,为了在 docker 容器上创建一个始终提供该服务而无需在自己的计算机上运行该服务的服务,您可以执行以下操作:
从 Dockerfile 构建 docker 镜像:
docker build . -t yguy/chatgpt-mattermost-bot
从镜像创建并运行容器
docker run -d --restart unless-stopped
-e MATTERMOST_URL=https://mattermost.server
-e MATTERMOST_TOKEN=abababacdcdcd
-e OPENAI_API_KEY=234234234234234234
--name chatbot
yguy/chatgpt-mattermost-bot
如果您的 Mattermost 实例使用由私有 CA 签名的 TLS 证书,您将需要向容器提供 CA 的公共根以进行验证。
如果根证书位于/absolutepath/to/certfile.crt
,那么您可以将该文件挂载到容器中的固定位置,并相应地指定节点环境变量:
docker run -d --restart unless-stopped
-v /absolutepath/to/certfile.crt:/certs/certfile.crt
-e NODE_EXTRA_CA_CERTS=/certs/certfile.crt
-e MATTERMOST_URL=https://mattermost.server
-e MATTERMOST_TOKEN=abababacdcdcd
-e OPENAI_API_KEY=234234234234234234
--name chatbot
yguy/chatgpt-mattermost-bot
验证它正在运行
docker ps
稍后停止服务
docker stop chatbot
如果您想运行 docker compose(甚至可能将其与您最重要的 docker 堆栈合并),您可以以此为起点:首先调整docker-compose.yml
中的环境变量。
MATTERMOST_URL : https://mattermost.server
MATTERMOST_TOKEN : abababacdcdcd
OPENAI_API_KEY : sk-234234234234234234
# Set this if using a custom username for the bot, default = @chatgpt
MATTERMOST_BOTNAME : " @chatgpt "
# Console logging output level, default = INFO
DEBUG_LEVEL : TRACE
# Node environment, default = production
NODE_ENV : production
如果您的 Mattermost 实例使用由私有 CA 签名的 TLS 证书,您将需要向容器提供 CA 的公共根以进行验证。
如果根证书位于/absolutepath/to/certfile.crt
,那么您可以将以下内容合并到docker-compose.yml
文件中:
services :
chatbot :
volumes :
- /absolutepath/to/certfile.crt:/certs/certfile.crt:ro
environment :
NODE_EXTRA_CA_CERTS : /certs/certfile.crt
当所有配置完成后,启动容器服务。
docker compose up -d
验证它正在运行:
docker compose ps
停止容器:
docker compose down
chatgpt-mattermost-bot图表部署了一个容器化的chatgpt-mattermost-bot实例,该实例将连接到同一kubernetes集群中正在运行的mattermost容器。 Chart 默认使用“mattermost-team-edition”和“mattermost”命名空间。使用环境变量 MATTERMOST_TOKEN 和 OPENAI_API_KEY。
helm upgrade chatgpt-mattermost-bot ./helm/chatgpt-mattermost-bot
--create-namespace
--install
-n mattermost
-f ./helm/chatgpt-mattermost-bot/values.yaml
--set config.MATTERMOST_TOKEN= " $MATTERMOST_TOKEN "
--set config.OPENAI_API_KEY= " $OPENAI_API_KEY "
这是我刚刚与我们的机器人进行的聊天示例:
@yguy:
@chatgpt - 请在 GitHub 存储库中为 README 编写一个简短的介绍性段落,该存储库为您(友好的 Mattermost 机器人)托管源代码。告诉读者,您喜欢为 yWorks 的好人工作,并且每个人都应该在他们的 Mattermost 聊天系统中安装 Mattermost 聊天机器人,以便从像您这样友善且乐于助人的助手中受益。我会将其包含在 GitHub 存储库的自述文件中,因此请使其成为引人入胜的文本!谢谢!
chatgpt(BOT):
你好呀!我是 @chatgpt,一个友好且可靠的 Mattermost 机器人,旨在让您的沟通体验更顺畅、更高效。我很荣幸成为 yWorks 团队的一员,我帮助员工更快、更轻松地完成工作。凭借先进的机器学习算法,我能够理解复杂的自然语言查询,并在几秒钟内提供简洁准确的响应。无论您是寻找代码库信息的开发人员,还是寻求简化团队工作流程的经理,我都会为您提供帮助。对于任何希望提高生产力并享受更愉快的沟通体验的组织来说,安装像我这样的 Mattermost 聊天机器人是必须的。那你还等什么?我们来聊聊吧!
我在一个下雨的周六下午构建了这个工具作为快速破解工具,但我们在 yworks 办公室的 Mattermost 实例中在生产中使用该机器人,事实证明该机器人对于许多简单的任务非常有帮助。如果您愿意,请尝试一下并提供反馈!它确实不是很贵:我们让它为大约 30 个用户运行了两周,而 ChatGPT 服务的成本还不到半美元!
如果您发现问题或有改进的想法,我也会接受有用的拉取请求。
最后但并非最不重要的一点是,请查看 yWorks 为软件开发人员提供的精美图表 SDK yFiles 以及我们的免费在线图表和图表编辑器!
这是 MIT 许可的版权所有 (c) 2023 Sebastian Mueller (yWorks) 和 Michael Haeglsperger (yWorks)