Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 2 — Thiết lập môi trường và gọi LLM đầu tiên

Đã đọc 0/8 mục · còn khoảng 3 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Bài này bạn sẽ dựng môi trường sạch, giấu API key an toàn, và gọi thành công LLM lần đầu — nền móng cho mọi thứ về sau.

Chọn công cụ

Chúng ta dùng Python (phổ biến nhất cho agent) và một LLM có API (ví dụ OpenAI, Anthropic Claude, hoặc DeepSeek). Nguyên tắc trong khóa: code provider-agnostic — tách phần gọi LLM ra một hàm riêng để đổi nhà cung cấp dễ dàng.

Các bước thiết lập

  • Tạo thư mục dự án và môi trường ảo:
mkdir my-agent && cd my-agent
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install openai python-dotenv
  • Tạo file .env để giấu key và thêm vào .gitignore ngay:
# .env
OPENAI_API_KEY=sk-xxxxxxxx
# .gitignore
.env
.venv/
__pycache__/
  • Viết hàm gọi LLM đầu tiên trong llm.py:
import os
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def call_llm(messages, model="gpt-4o-mini", temperature=0):
    resp = client.chat.completions.create(
        model=model,
        messages=messages,
        temperature=temperature,
    )
    return resp.choices[0].message.content
  • Test nhanh:
from llm import call_llm
out = call_llm([
    {"role": "system", "content": "Bạn là trợ lý ngắn gọn."},
    {"role": "user", "content": "Chào bạn, 2+2 bằng mấy?"},
])
print(out)
  • Chạy python test.py. Thấy "4" là môi trường đã thông.

Giải thích các khái niệm quan trọng

  • messages: danh sách hội thoại, mỗi phần tử có role (system/user/assistant) và content. Đây là toàn bộ ngữ cảnh mà LLM thấy — LLM không nhớ gì ngoài những gì bạn gửi.
  • system prompt: đặt vai trò và luật chơi cho agent. Sau này ta nhét mô tả tool và quy tắc vào đây.
  • temperature=0: cho output ổn định, dễ debug. Với agent, gần như luôn để 0 hoặc thấp.
  • Model rẻ để dev: dùng model nhỏ/rẻ khi phát triển, chỉ nâng cấp khi cần chất lượng.

Khung tư duy: tách lớp ngay từ đầu

[ Ứng dụng ] -> [ Agent loop ] -> [ call_llm() ] -> [ Nhà cung cấp LLM ]

Mỗi lớp làm một việc. Nhờ tách call_llm() riêng, đổi từ OpenAI sang provider khác chỉ sửa một file, không đụng logic agent.

Checklist trước khi qua bài sau

  • [ ] .env chứa key và đã nằm trong .gitignore.
  • [ ] Gọi call_llm() trả về kết quả không lỗi.
  • [ ] Biết cách đổi model và temperature.
  • [ ] Hiểu messages là toàn bộ trí nhớ tạm của LLM.

Sai lầm thường gặp

  • Hardcode API key trong code rồi push lên GitHub. Key bị lộ, bị lạm dụng, tốn tiền. Luôn dùng biến môi trường.
  • Quên .gitignore, khiến .env bị commit. Kiểm tra bằng git status trước khi commit.
  • Để temperature cao khi debug khiến kết quả nhảy loạn, khó biết lỗi do code hay do model.
  • Gọi thẳng SDK ở khắp nơi thay vì qua một hàm chung — về sau muốn đổi provider hay thêm retry/log sẽ phải sửa hàng chục chỗ.
  • Không xử lý lỗi mạng/timeout. API có thể lỗi 429 (quá tải) hoặc timeout; hãy thêm try/except và retry ở bài sau.

Mẹo tiết kiệm chi phí ngay từ ngày đầu

Trong giai đoạn phát triển, mỗi lần chạy thử agent có thể gọi LLM nhiều lần trong một vòng lặp, nên chi phí cộng dồn nhanh hơn bạn tưởng. Ba thói quen giúp bạn tiết kiệm: (1) luôn dùng model rẻ nhất đủ dùng khi dev, chỉ nâng cấp ở bước cuối; (2) đặt max_tokens hợp lý cho output để tránh model "nói dài"; (3) in ra số token và chi phí ước tính sau mỗi lần chạy để bạn cảm nhận được "giá" của mỗi thay đổi. Thói quen quan sát chi phí từ ngày đầu sẽ giúp bạn tránh cú sốc hóa đơn khi agent chạy thật ở Bài 8.

Môi trường đã sẵn sàng. Bài 3 chúng ta thiết kế system prompt và định hình "tính cách" cùng ranh giới cho agent.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi