这是关于如何构建由法学硕士(即 llama2-chat、llama2-chat-32k、vicuna)支持的 Telegram 机器人的指南。该机器人托管在免费层 EC2 实例上,llm 推理作为无服务器 REST API 托管在 Beam Cloud 上,前 10 小时的计算免费。整个过程相当缓慢,但这只是一个起点。
您可以按照本指南构建 Python Telegram 机器人:
如何使用 Python 创建 Telegram 机器人
下面我给大家介绍一下主要步骤:
您现在可以通过在 Telegram 上搜索用户名来开始与您的机器人对话。
至于托管 llm 推理,我目前发现的最佳选择是 Beam Cloud。他们的计算价格是最便宜的,并且提供 10 小时的免费计算和优质的 GPU。提供免费存储,非常感谢。
该聊天机器人是使用 langchain 和 Huggingface 构建的。因此,如果您想要 Llama 2 系列模型,您将需要获得这些模型的访问权限。这很容易做到,而且他们批准请求的速度非常快。
TODO 我使用了几个来源将 langchain 和 HF 放在一起,我会尽快添加它们。
如果您想使用门控模型,您将需要设置一个拥抱脸部标记。这是代码中内置的,我将在接下来的几天内修复它。
这是生成令牌的指南:
HuggingFace 用户访问令牌
创建帐户后,无需任何付款方式,请转到仪表板,在右侧菜单的“设置”选项卡下,您可以找到“秘密”。如果您使用像 llama 2 这样需要拥抱面部标记的模型,那么您需要使用拥抱面部标记设置HF_TOKEN变量。
然后你就可以在本地做所有事情了。移动到 lm 子目录。
cd ./src/telegram_llm_bot/shared/llm/beam
请遵循梁安装指南梁安装。
在 app.py 文件中,您可以修改以下变量或保留它们不变。我很快会将它们移动到配置文件中:
HF_CACHE = "./models"
MODEL_ID = "meta-llama/Llama-2-7b-chat-hf"
APP_NAME = "travel-guru"
GPU = "T4"
MEMORY = "16Gi"
您已准备好部署该应用程序:
beam deploy app.py
该应用程序现在应该已启动并运行。转到 Beam 仪表板,在“应用程序”选项卡下,您可以找到您的应用程序。
您可以在免费套餐 EC2 实例上免费托管您的机器人。这是您可以遵循的指南:
教程:Amazon EC2 Linux 实例入门
在创建实例期间,您必须记住创建一个密钥对,您将使用该密钥对通过 ssh 远程连接到您的实例。
我建议将 Ubuntu 设置为操作系统。
设置密钥对后,.pem 将自动下载。
现在您可以使用 ssh 通过命令行连接到 ec2 实例:
ssh -i " {filename}.pem " ubuntu@{address}.{region}.compute.amazonaws.com
在 ec2 实例上克隆此存储库。我们只需要 bot 文件夹,我们确实需要其余的,所以我将来可能会将其与其余的分开,目前这不是一个大问题:
git clone https://github.com/ma2za/telegram-llm-bot.git
移动到bot目录
cd telegram-llm-bot
创建一个 .env 文件来设置所有机器人通用的环境变量
touch .env
通过nano将.env的内容修改为以下内容。
MONGO_HOST=telegram-mongo
MONGO_PORT=27017
这是设置 MongoDB 数据库来存储对话所必需的。
创建另一个特定于机器人的 .env 文件来设置环境变量
touch ./src/telegram_llm_bot/bots/base_chatbot/.env
通过nano将.env的内容修改为以下内容。
TELEGRAM_BOT_TOKEN =
BEAM_TOKEN =
BEAM_URL = https://apps.beam.cloud/{something}
SETTINGS_FILE=telegram_llm_bot.bots.base_chatbot.settings
BOT_NAME=travel-guru
TELEGRAM_BOT_TOKEN是我们之前从 BotFather 收到的令牌。
BEAM_TOKEN :在 Beam 应用仪表板的API 密钥下,您可以生成 Beam 令牌。
BEAM_URL是从应用程序的概述中获取的,您可以单击“调用 API”,然后您可以轻松找到该 url
我们终于可以使用 docker compose 来构建镜像并运行容器了。
安装 Docker 和 Docker compose。这是官方指南:
在 Ubuntu 上安装 Docker 引擎
构建、创建并启动容器:
sudo docker compose up -d --build
我们到这里就完成了!
系统提示包含在config.yml中。
您已准备好聊天了!