DoppelBot是一个Slack应用,它能抓取目标用户在Slack中的消息,并对大型语言模型(OpenLLaMa)进行微调,学习如何像目标用户一样回应。
<p align="center"> <img width="489" alt="DoppelBot运行实例" src="https://github.com/modal-labs/doppel-bot/assets/5786378/4075e372-3a84-4dd3-9ed2-8beaeb18e0d2"> </p>所有组件,包括微调、推理和抓取,都是无服务器的,运行在Modal上。
阅读文档。
/doppel <user>。这里的<user>可以是你想要模仿的用户的Slack昵称或真实姓名。注意:目前我们限制每个工作区只能有一个目标用户,安装后不能更改。<user>-bot(或任何你想要的名称)。
DoppelBot。应用详情。配置。机器人用户的部分。点击编辑来更改名称。@doppel(或如果你更改了名称,则使用新名称)将召唤机器人。这个仓库包含了你自己运行DoppelBot所需的一切。
modal-client(pip install modal-client)。modal token new)。app_mentions:readchannels:historychannels:joinchannels:readchat:writechat:write.customizecommandsusers.profile:readusers:readSLACK_SIGNING_SECRET 中。SLACK_BOT_TOKEN 中。slack-finetune-secret。要在 Weights & Biases 上跟踪您的微调运行,您需要创建一个 Weights & Biases 账户,然后创建一个 Modal 密钥并输入凭据(在密钥向导中点击 Weights & Biases 并按照步骤操作)。然后,在 src/common.py 中将 WANDB_PROJECT 设置为您想要使用的项目名称。
在此仓库的根目录下,运行 modal deploy src.bot。这将把应 用程序部署到 Modal,并在终端中打印一个 URL(类似 https://aksh-at--doppel.modal.run/)。
现在,我们需要将 Slack 应用程序指向这个 URL:
@app_mention。/doppel,请求 URL 设置为与上面相同的 URL。如果您只想在自己的工作区中运行应用程序,上述步骤就足够了。如果您想将应用程序分发给其他人,您需要设置一个多工作区应用程序。要启用此功能,请在 src/common.py 中将 MULTI_WORKSPACE_SLACK_APP 设置为 True。
然后,您需要设置 Neon,这是一个无服务器 Postgres 数据库,用于存储用户数据:
modal run src.db 以创建表格。SLACK_CLIENT_ID 和 SLACK_CLIENT_SECRET(这些值应该在 Slack 应用的设置 > 基本信息中)。https://<你的modal-run-url>/slack/oauth_redirect,其中 <你的modal-run-url> 是你在上面部署应用后收到的 URL。确保一切看起来正确后,点击激活公共分发。现在,使用 modal deploy src.bot 部署应用将为你处理所有 OAuth 的复杂细节,并创建一个可以被任何人安装的多工作区 Slack 应用。默认情况下,安装链接位于 https://<你的modal-run-url>/slack/install。
如果你愿意,也可以手动运行每个步骤。这对于调试或迭代特定功能很有用。
modal run src.scrape::scrape --user="<用户>"modal run --detach src.finetune --user="<用户>"(注意 --detach 允许你随时使用 ctrl+c 而不会终止训练运行)modal run src.inference --user="<用户>"