TL;DR: Cách khắc phục nhanh
Lỗi này xuất hiện khi Groq API không nhận diện được chuỗi ký tự bạn đã truyền vào tham số model. Thông thường, đó chỉ là lỗi đánh máy hoặc sử dụng tên viết tắt như llama3 thay vì ID đầy đủ, chẳng hạn như llama-3.1-8b-instant.
Để khắc phục ngay lập tức, hãy cập nhật mã của bạn với một Model ID hợp lệ từ danh sách:
# Thay đổi dòng này:
completion = client.chat.completions.create(model="llama3", ...)
# Thành dòng này (ID Llama 3.1 hiện tại):
completion = client.chat.completions.create(model="llama-3.1-8b-instant", ...)
Tại sao lỗi này xảy ra?
Bạn thấy lỗi 404 trong console? Điều đó có nghĩa là API không thể tìm thấy tài nguyên cụ thể mà bạn đang yêu cầu. Không giống như một số nhà cung cấp khác tự động chuyển hướng tên ngắn sang phiên bản mới nhất, Groq yêu cầu chuỗi model chính xác. Đây là một vấn đề phổ biến, thường do ba nguyên nhân chính:
- Thiếu hậu tố: Quên phiên bản hoặc cửa sổ ngữ cảnh (ví dụ: sử dụng
mixtral-8x7bthay vìmixtral-8x7b-32768). - Model đã ngừng hỗ trợ: Cố gắng sử dụng một model cũ như
llama3-8b-8192sau khi nó đã được thay thế bởi dòngllama-3.1hoặc3.2. - Ký tự ẩn: Khoảng trắng thừa hoặc ký tự dòng mới trong tệp
.envcó thể làm hỏng yêu cầu.
Các bước khắc phục chi tiết
1. Liệt kê các Model đang hoạt động qua SDK
Đừng đoán tên model nữa. Bạn có thể lấy danh sách trực tiếp các model đang hoạt động từ Groq. Đây là cách đáng tin cậy nhất để xem những gì hiện đang được hỗ trợ trong khu vực của bạn.
from groq import Groq
import os
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
# Lấy danh sách tất cả các model hiện có
models = client.models.list()
print("Các Model ID hợp lệ hiện tại:")
for model in models.data:
print(f"- {model.id}")
Chạy script này và sao chép chính xác chuỗi ký tự. Nếu llama-3.2-3b-preview có trong danh sách, hãy sử dụng chính xác văn bản đó.
2. Sử dụng các Model ID đã cập nhật
Tên model thay đổi khi Groq cập nhật cơ sở hạ tầng của mình. Hãy đảm bảo cấu hình của bạn khớp với các mẫu phổ biến được sử dụng vào cuối năm 2024:
- Llama 3.1 8B:
llama-3.1-8b-instant - Llama 3.1 70B:
llama-3.1-70b-versatile - Llama 3.2 1B (Preview):
llama-3.2-1b-preview - Mixtral 8x7b:
mixtral-8x7b-32768
3. Làm sạch các biến môi trường
Nếu bạn tải tên model từ tệp .env, một khoảng trắng thừa ở cuối sẽ gây ra lỗi 404. Hãy sử dụng .strip() để làm sạch dữ liệu đầu vào trước khi đưa vào client.
import os
from groq import Groq
# Lấy từ môi trường với giá trị dự phòng
RAW_MODEL_NAME = os.getenv("GROQ_MODEL_NAME", "llama-3.1-8b-instant")
# Loại bỏ khoảng trắng ngoài ý muốn
CLEAN_MODEL_NAME = RAW_MODEL_NAME.strip()
client = Groq()
# Bây giờ sử dụng CLEAN_MODEL_NAME trong lệnh gọi API của bạn
Xác minh khắc phục lỗi
Chạy script tối giản này để xác nhận mọi thứ đang hoạt động. Nếu nó in ra phản hồi, cấu hình model của bạn đã ổn định.
from groq import Groq
client = Groq()
try:
chat_completion = client.chat.completions.create(
messages=[{"role": "user", "content": "Kiểm tra"}],
model="llama-3.1-8b-instant",
)
print("Thành công! Đã tìm thấy model.")
except Exception as e:
print(f"Vẫn thất bại: {e}")
Mẹo chuyên nghiệp cho môi trường Production
Đừng để việc một model ngừng hỗ trợ làm hỏng ứng dụng của bạn. Hãy định nghĩa các Model ID trong một tệp config.py trung tâm thay vì viết cứng (hardcoding) chúng trong nhiều tệp. Đối với các ứng dụng quan trọng, hãy bọc các lệnh gọi trong khối try-except. Việc bắt lỗi groq.NotFoundError cụ thể cho phép bạn ghi lại cảnh báo rõ ràng cho đội ngũ kỹ thuật để họ có thể cập nhật Model ID ngay lập tức.
Tài liệu tham khảo thêm
- Tài liệu Model chính thức của Groq - Danh sách dứt khoát các LLM được hỗ trợ.
- Groq Python SDK GitHub - Kiểm tra tại đây để biết các cập nhật thư viện và các thay đổi quan trọng.

