+1

Hướng dẫn tạo Discord Bot bằng LM Studio

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

image.png

  • Ở đâ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

image.png

  • Chọn start để khởi động máy chủ cục bộ, nhớ accept firewall các kiểu nhé :>

image.png

TRIỂN KHAI CODE

  • Cài đặt các thư viện cần thiết

  • 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ả.

    image.png

    image.png

    Chúc các bạn thành công.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí