นี่คือคำแนะนำเกี่ยวกับวิธีการสร้าง Telegram Bot ที่ได้รับการสนับสนุนจาก LLM (เช่น llama2-chat, llama2-chat-32k, vicuna) บอทโฮสต์อยู่บนอินสแตนซ์ EC2 ระดับฟรี ส่วนการอนุมาน llm โฮสต์บน Beam Cloud ในรูปแบบ REST API แบบไร้เซิร์ฟเวอร์ ซึ่งให้บริการฟรีในการประมวลผล 10 ชั่วโมงแรก ทุกอย่างค่อนข้างช้า แต่นี่เป็นเพียงจุดเริ่มต้น
คุณสามารถทำตามคำแนะนำนี้เพื่อสร้าง Python Telegram Bot:
วิธีสร้าง Telegram Bot โดยใช้ Python
ที่นี่ฉันจะให้ขั้นตอนหลักแก่คุณ:
ตอนนี้คุณสามารถเริ่มการสนทนากับบอทของคุณได้โดยค้นหาชื่อผู้ใช้บน Telegram
สำหรับการโฮสต์การอนุมาน llm ตัวเลือกที่ดีที่สุดที่ฉันพบในตอนนี้คือ Beam Cloud ราคาประมวลผลของพวกเขาอยู่ในกลุ่มที่ถูกที่สุดและเสนอการประมวลผลฟรี 10 ชั่วโมงด้วย GPU ที่ดี ข้อเสนอพื้นที่เก็บข้อมูลฟรีซึ่งได้รับการชื่นชมอย่างสูง
แชทบอทถูกสร้างขึ้นโดยใช้ langchain และ Huggingface ดังนั้น หากคุณต้องการใช้โมเดลตระกูล Llama 2 คุณจะต้องมีสิทธิ์เข้าถึงโมเดลดังกล่าว มันง่ายมากที่จะทำและอนุมัติคำขอได้อย่างรวดเร็วมาก
สิ่งที่ต้องทำ ฉันใช้แหล่งข้อมูลสองสามแหล่งเพื่อรวบรวม langchain และ HF เข้าด้วยกัน ฉันจะเพิ่มพวกมันโดยเร็วที่สุด
หากคุณต้องการใช้โมเดลที่มีรั้วรอบขอบชิด คุณจะต้องตั้งค่าโทเค็นใบหน้ากอด สิ่งนี้สร้างขึ้นในโค้ด ฉันจะแก้ไขมันในวันถัดไป
นี่คือคำแนะนำในการสร้างโทเค็น:
โทเค็นการเข้าถึงของผู้ใช้ HuggingFace
เมื่อคุณสร้างบัญชีแล้ว ไม่ต้องใช้วิธีการชำระเงิน ให้ไปที่แดชบอร์ดและใต้แท็บการตั้งค่าบนเมนูด้านขวา คุณจะพบความลับ หากคุณใช้โมเดลเช่น llama 2 ที่ต้องใช้โทเค็นใบหน้ากอด คุณจะต้องตั้งค่าตัวแปร HF_TOKEN ด้วยโทเค็นใบหน้ากอด
จากนั้นคุณสามารถทำทุกอย่างในเครื่องได้ ย้ายไปที่ไดเรกทอรีย่อย lm
cd ./src/telegram_llm_bot/shared/llm/beam
ปฏิบัติตามคู่มือการติดตั้ง Beam การติดตั้ง 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 Dashboard และใต้แท็บ Apps คุณจะพบแอปของคุณ
คุณสามารถโฮสต์บอทของคุณได้ฟรีบนอินสแตนซ์ EC2 ระดับฟรี นี่คือคำแนะนำที่คุณสามารถปฏิบัติตามได้:
บทช่วยสอน: เริ่มต้นใช้งานอินสแตนซ์ Amazon EC2 Linux
ในระหว่างการสร้างอินสแตนซ์ คุณต้องจำไว้ว่าให้สร้างคู่คีย์ที่คุณจะใช้ในการเชื่อมต่อผ่าน ssh ไปยังอินสแตนซ์ของคุณจากระยะไกล
ฉันแนะนำให้ตั้งค่า Ubuntu เป็น OS
เมื่อคุณตั้งค่าคู่คีย์แล้ว .pem จะถูกดาวน์โหลดโดยอัตโนมัติ
ตอนนี้คุณสามารถเชื่อมต่อกับอินสแตนซ์ ec2 ผ่านทางบรรทัดคำสั่งโดยใช้ ssh:
ssh -i " {filename}.pem " ubuntu@{address}.{region}.compute.amazonaws.com
โคลนพื้นที่เก็บข้อมูลนี้บนอินสแตนซ์ ec2 เราต้องการเพียงโฟลเดอร์บอท เราต้องการส่วนที่เหลือ ดังนั้นผมอาจจะแยกมันออกจากส่วนที่เหลือในอนาคต สำหรับตอนนี้นี่ไม่ใช่ปัญหาใหญ่:
git clone https://github.com/ma2za/telegram-llm-bot.git
ย้ายไปยังไดเร็กทอรีบอท
cd telegram-llm-bot
สร้างไฟล์ .env เพื่อตั้งค่าตัวแปรสภาพแวดล้อมที่บอททั้งหมดของคุณใช้ร่วมกัน
touch .env
Via nano แก้ไขเนื้อหาของ .env ด้วยเนื้อหาดังต่อไปนี้
MONGO_HOST=telegram-mongo
MONGO_PORT=27017
สิ่งนี้จำเป็นสำหรับการตั้งค่าฐานข้อมูล MongoDB เพื่อจัดเก็บการสนทนา
สร้างไฟล์ .env อีกไฟล์หนึ่งสำหรับบอทโดยเฉพาะเพื่อตั้งค่าตัวแปรสภาพแวดล้อม
touch ./src/telegram_llm_bot/bots/base_chatbot/.env
Via 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 : ภายใต้ คีย์ API ในแดชบอร์ดแอป Beam คุณสามารถสร้างโทเค็น Beam ได้
BEAM_URL ได้มาจากภาพรวมของแอปที่คุณสามารถคลิกที่ Call API และคุณสามารถค้นหา URL ได้อย่างง่ายดาย
ในที่สุดเราก็สามารถใช้ docker compose เพื่อสร้างอิมเมจและรันคอนเทนเนอร์ได้
ติดตั้ง Docker และ Docker เขียน นี่คือคำแนะนำอย่างเป็นทางการ:
ติดตั้ง Docker Engine บน Ubuntu
สร้าง สร้าง และเริ่มต้นคอนเทนเนอร์:
sudo docker compose up -d --build
เราทำเสร็จแล้วที่นี่!
ข้อความแจ้งของระบบมีอยู่ใน config.yml
คุณพร้อมที่จะแชทแล้ว!