MỞ BÀI
-
Xin chào mọi người, ở bài viết trước mình đã hướng dẫn mọi người tạo 1 con discord bot cơ bản chạy bằng Nodejs. Hôm nay mình sẽ hướng dẫn mọi người tạo 1 con bot bằng LM Studio. Mình đã hướng dẫn mọi người cách lấy token discord bot rồi mọi người có thể tìm đọc lại nhé.
-
LM Studio là một phần mềm mã nguồn mở, cho phép chạy trực tiếp các mô hình ngôn ngữ lớn (LLM) trên máy tính cá nhân của bạn. LM Studio cung cấp một giao diện dễ sử dụng và tương thích với các mô hình ngôn ngữ trên Hugging Face Hub. Bằng cách sử dụng LM Studio, bạn có thể tìm kiếm, tải về và tương tác với các mô hình ngôn ngữ từ cộng đồng Hugging Face
TIẾN HÀNH CÀI ĐẶT
- Các bạn có thể cài đặt LM Studio tại https://lmstudio.ai . Ở đây các bạn chọn phiên bản phù hợp với máy của mình, mình thì dùng Windows nên sẽ cài bản dành cho Windows
- Ở đây mình sẽ cài đặt Phi-3 của Microsoft, các bạn chọn cái kính lúp, nhập Phi-3 và tìm của Microsoft và download xuống
- Chọn start để khởi động máy chủ cục bộ, nhớ accept firewall các kiểu nhé :>
TRIỂN KHAI CODE
-
Cài đặt các thư viện cần thiết
- pip install discord.py openai python-dotenv
-
Tạo file .env với 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"
-
Tạo file app.py với nội dung sau
#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 đó là chạy file app.py
python app.py
-
Bên discord thì dùng lệnh /ask <câu hỏi bạn muốn hỏi>
-
Lưu ý câu trả lời chỉ từ 2000 từ trở xuống nêú không sẽ báo lỗi. Hình dưới là một số kết quả.
Chúc các bạn thành công.