這是關於如何建造由 LLM 支援的 Telegram 機器人(即 llama2-chat、llama2-chat-32k、vicuna)的指南。該機器人託管在免費層 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中。
您已準備好聊天了!