MỞ BÀI
Xin chào các bạn! Trong bài viết trước, mình đã hướng dẫn cách tạo một con Discord bot đơn giản sử dụng Nodejs. Hôm nay, mình sẽ chia sẻ với các bạn cách tạo một con bot trên nền tảng LM Studio. Nếu bạn chưa biết cách lấy token cho Discord bot, hãy tham khảo lại bài viết trước nhé.
LM Studio là phần mềm mã nguồn mở cho phép bạn chạy các mô hình ngôn ngữ lớn (LLM) ngay trên máy tính cá nhân. Nó cung cấp giao diện thân thiện và hỗ trợ tương tác với các mô hình ngôn ngữ từ Hugging Face Hub. Với LM Studio, bạn có thể dễ dàng tìm kiếm, tải về và sử dụng các mô hình ngôn ngữ đến từ cộng đồng.
TIẾN HÀNH CÀI ĐẶT
Để bắt đầu, bạn cần cài đặt LM Studio từ trang web chính thức: lmstudio.ai. Hãy chọn phiên bản phù hợp với hệ điều hành mà bạn sử dụng. Mình đang sử dụng Windows, vì vậy sẽ chọn phiên bản dành cho Windows.
- Trong LM Studio, tìm kiếm và cài đặt Phi-3 của Microsoft. Bạn chỉ cần nhập từ khóa Phi-3 vào ô tìm kiếm, sau đó chọn và tải về.
- Khởi động máy chủ cục bộ bằng cách chọn nút Start và nhớ cho phép quyền Firewall để chương trình hoạt động hiệu quả.
TRIỂN KHAI CODE
Tiếp theo, chúng ta sẽ cần cài đặt một số thư viện cần thiết. Mở terminal và chạy lệnh sau:
bash
pip install discord.py openai python-dotenv
Sau đó, bạn tạo một file có tên .env
và nhập vào nội dung sau:
LM_STUDIO_API_KEY="lm-studio"
DISCORD_BOT_TOKEN="<TOKEN_CUA_BAN>"
MODEL_IDENTIFIER="model-identifier"
LM_STUDIO_BASE_URL="http://localhost:1234/v1"
Tiếp theo, bạn tạo một file khác có tên app.py
và điền đoạn mã dưới đây:
python
#import các thư viện cần thiết
from openai import OpenAI
from discord.ext import commands
from dotenv import load_dotenv
import discord
import os
load_dotenv()
#lấy thông tin từ file .env
discord_bot_token = os.getenv('DISCORD_BOT_TOKEN')
lm_studio_api_key = os.getenv('LM_STUDIO_API_KEY')
lm_studio_base_url = os.getenv('LM_STUDIO_BASE_URL')
model_identifier = os.getenv('MODEL_IDENTIFIER')
intents = discord.Intents.default()
intents.messages = True
bot = commands.Bot(command_prefix='!', intents=intents)
client = OpenAI(base_url=lm_studio_base_url, api_key=lm_studio_api_key)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user}')
await bot.tree.sync()
@bot.tree.command(name="ask", description="Hãy hỏi tôi")
async def ask(interaction: discord.Interaction, question: str):
await interaction.response.defer()
try:
response = client.chat.completions.create(
messages=[
{"role": "system", "content": "Always answer in rhymes."},
{"role": "user", "content": question}
],
model=model_identifier,
temperature=0.7,
)
reply = response.choices[0].message.content
await interaction.followup.send(reply)
except Exception as e:
await interaction.followup.send(f"Error: {str(e)}")
bot.run(discord_bot_token)
Sau khi hoàn thành, bạn chạy file app.py
bằng cách nhập lệnh:
bash
python app.py
Khi bot đã hoạt động, bạn có thể sử dụng lệnh /ask <câu hỏi bạn muốn hỏi>
trên Discord để tương tác với bot.
Lưu ý: Câu trả lời của bot giới hạn dưới 2000 từ, nếu vượt quá, bot sẽ báo lỗi. Chúc các bạn thành công trong việc tạo Discord bot với LM Studio!
source: viblo