GLM-5.3 FlashX and MiniMax H3 Max are now live on CometAPI →
technology/Nghiên cứu CometAPI

Cách định tuyến các yêu cầu LLM đến mô hình phù hợp cho từng tác vụ

Xây dựng một bộ định tuyến LLM gửi các yêu cầu đơn giản, khẩn cấp và phức tạp tới các tầng theo chi phí, tốc độ hoặc độ chính xác thông qua một endpoint CometAPI duy nhất.

CometAPI
Bobby SpencerĐội ngũ nghiên cứu mô hình AI và API
Đã cập nhật Sep 4, 2026 13 phút đọc
Cách định tuyến các yêu cầu LLM đến mô hình phù hợp cho từng tác vụ
Sử dụng mẫu này

Thực hiện API call đầu tiên.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_COMETAPI_KEY",
    base_url="https://api.cometapi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[{"role": "user", "content": "Build this workflow."}],
)

print(response.choices[0].message.content)

Câu trả lời ngắn gọn: định tuyến yêu cầu trong ứng dụng của bạn, sau đó dùng một khóa CometAPI và OpenAI-compatible base URL https://api.cometapi.com/v1 để gọi mô hình đã chọn. Gửi công việc lặp lại, dễ kiểm tra đến tầng chi phí thấp; tương tác khách hàng nhạy về độ trễ đến tầng nhanh; và công việc mơ hồ hoặc có tác động cao đến tầng độ chính xác cao. Giữ các nhãn như chính sách nội bộ của bạn — không phải xếp hạng mô hình phổ quát — và đo lường mọi tầng trên cùng một bộ kiểm thử.

Hướng dẫn này xây dựng bộ định tuyến ba tầng đó với ví dụ Python gọn, dự phòng có giới hạn, và mô hình chi phí tính cả số lần thử lại và đầu ra bị từ chối. Ví dụ dùng các ID mô hình hiện tại từ danh mục CometAPI, nhưng logic định tuyến tách biệt nên mô hình có thể thay thế mà không cần viết lại ứng dụng.

LLM routing là gì?

LLM routing là quá trình gửi từng yêu cầu đến mô hình hoặc tầng dịch vụ phù hợp nhất với tác vụ, mục tiêu độ trễ, yêu cầu chất lượng và ngân sách.

Nên định tuyến yêu cầu LLM theo tác vụ như thế nào?

Tính đến ngày 20 tháng 8 năm 2026, các ID mô hình và trường giá trong danh mục sau khả dụng qua CometAPI Models API công khai. Các mức giá ước tính cho người dùng dưới đây áp dụng giá trị ratio hiện tại của danh mục cho giá cơ bản đầu vào và đầu ra, theo hướng dẫn giá của CometAPI. Hãy xác nhận mức giá cuối cùng hiển thị cho tài khoản của bạn trước khi sử dụng trong sản xuất.

TuyếnDùng choMô hình ví dụƯớc tính USD / 1M tokenDự phòng đầu tiên
Giá rẻGắn nhãn, trích xuất, khử trùng lặpdeepseek-v4-flash$0.176 input / $0.528 outputNhanh
NhanhPhản hồi khách hàng, tóm tắt, trợ lý thời gian thựcgemini-3.7-flash$0.60 input / $3.00 outputGiá rẻ, rồi chính xác
Độ chính xác caoRà soát chính sách, suy luận phức tạp, bản nháp tác động caoclaude-opus-5$4.00 input / $20.00 outputNhanh

“Nhanh” nghĩa là tuyến có mục tiêu độ trễ; “độ chính xác cao” nghĩa là có mục tiêu chất lượng nghiêm ngặt hơn. Không nhãn nào chứng minh rằng một mô hình luôn nhanh nhất hoặc chính xác nhất. Hãy benchmark p50 và p95 về độ trễ, tỷ lệ đạt nhiệm vụ, và chi phí trên mỗi đầu ra được chấp nhận trên chính lưu lượng của bạn trước khi cố định ánh xạ.

Cách thiết lập CometAPI cho một bộ định tuyến LLM?

Bạn cần một khóa API CometAPI, Python 3.10 trở lên, và gói OpenAI Python. Lưu khóa ở phía máy chủ thay vì trong mã nguồn.

pip install openaiexport COMETAPI_KEY="your-key-here"

Ví dụ dùng POST /v1/chat/completions. CometAPI tài liệu hóa đây là giao diện dùng chung cho nhiều nhà cung cấp, nhưng hành vi tham số vẫn có thể khác theo mô hình. Kiểm tra mục mô hình hiện tại và tài liệu tham chiếu Chat Completions trước khi thêm các trường đặc thù nhà cung cấp.

Cần gì để xây dựng một bộ định tuyến LLM?

  • Map các tác vụ ổn định vào các tầng dịch vụ. Đừng yêu cầu một LLM khác phân loại mọi yêu cầu trừ khi tín hiệu ứng dụng đơn giản là không đủ. Một nhãn hỗ trợ là công việc dự đoán được thuộc tầng rẻ; phản hồi trực tiếp là nhạy độ trễ; một rà soát chính sách xứng đáng với cổng chất lượng nghiêm ngặt nhất.
  • Xác thực đầu ra. Trạng thái HTTP thành công không có nghĩa kết quả dùng được. Truyền một bộ xác thực theo tác vụ cho bộ định tuyến. Bộ xác thực phân loại có thể kiểm tra nhãn cho phép; bộ xác thực phản hồi khách hàng có thể áp đặt độ dài và các tuyên bố bị cấm; một quy trình có cấu trúc có thể xác thực schema JSON.
  • Dự phòng một cách hẹp. Thử tuyến được phê duyệt tiếp theo sau timeout, 408, 429, 5xx tạm thời, hoặc thất bại cổng chất lượng trong phạm vi cho phép. Đừng dùng mô hình khác để che dấu đầu vào sai định dạng, khóa không hợp lệ, hoặc tham số không được hỗ trợ.

Xây dựng bộ định tuyến LLM bằng Python như thế nào?

import osimport time​from openai import APIError, OpenAI​client = OpenAI(    api_key=os.environ["COMETAPI_KEY"],    base_url="https://api.cometapi.com/v1",    max_retries=0,    timeout=20,)​MODELS = {    "cheap": "deepseek-v4-flash",    "fast": "gemini-3.7-flash",    "accurate": "claude-opus-5",}​# Put the preferred tier first; later tiers are fallbacks.ROUTES = {    "tag": ["cheap", "fast", "accurate"],    "reply": ["fast", "cheap", "accurate"],    "policy_review": ["accurate", "fast", "cheap"],}​​def retryable(error):    status = getattr(error, "status_code", None)    return status is None or status in {408, 429} or (status and status >= 500)​​def route(task, prompt, validate=lambda text: True):    attempts = []    for tier in ROUTES.get(task, ROUTES["reply"]):        model = MODELS[tier]        started = time.perf_counter()        try:            response = client.chat.completions.create(                model=model,                messages=[{"role": "user", "content": prompt}],                max_tokens=400,            )            text = response.choices[0].message.content or ""            attempts.append({                "tier": tier,                "model": model,                "latency_ms": round((time.perf_counter() - started) * 1000),                "accepted": validate(text),            })            if attempts[-1]["accepted"]:                return {                    "text": text,                    "route": tier,                    "model": model,                    "usage": response.usage.model_dump() if response.usage else None,                    "attempts": attempts,                }        except APIError as error:            attempts.append({"tier": tier, "model": model, "status": error.status_code})            if not retryable(error):                raise​    raise RuntimeError(f"No route passed: {attempts}")​​if __name__ == "__main__":    result = route(        "reply",        "Reply to a customer asking when their refund will arrive. Do not promise a date.",        validate=lambda text: 30 <= len(text) <= 600 and "guarantee" not in text.lower(),    )    print(result)

Giới hạn số lần thử trước khi dự phòng như thế nào?

Giữ số lần thử của SDK ở 0 và bao mỗi lần gọi mô hình bằng một giới hạn rõ ràng. Trình trợ giúp dưới đây chỉ thử lại một lần đối với lỗi API có thể thử lại, rồi ném lỗi để tuyến bên ngoài chuyển sang tầng được phê duyệt tiếp theo.

MAX_ATTEMPTS_PER_MODEL = 2​def call_model(model, prompt):    for attempt in range(1, MAX_ATTEMPTS_PER_MODEL + 1):        try:            return client.chat.completions.create(                model=model,                messages=[{"role": "user", "content": prompt}],                max_tokens=400,            )        except APIError as error:            if not retryable(error) or attempt == MAX_ATTEMPTS_PER_MODEL:                raise            time.sleep(min(0.5 * (2 ** (attempt - 1)), 2.0))

Trong route(), thay lời gọi trực tiếp client.chat.completions.create(...) bằng call_model(model, prompt). Với ba tầng, một yêu cầu dừng sau tối đa sáu cuộc gọi nhà cung cấp; các thất bại xác thực vẫn leo thang mỗi tầng một lần thay vì thử lại cùng một đầu ra.

Chạy bằng python3 llm_task_router.py. Để đổi nhà cung cấp hoặc thế hệ mô hình sau này, cập nhật MODELS; chính sách tác vụ và hợp đồng phản hồi vẫn ở một nơi.

Ví dụ chỉ dùng các tham số dùng chung giữa các mô hình đã chọn. Thêm điều khiển token đặc thù mô hình qua một lớp adapter sau khi kiểm tra khả năng tương thích mô hình.

Kiểm thử chính sách định tuyến LLM như thế nào?

Trước tiên hãy xác minh rằng chính sách tất định chọn đúng tuyến chính dự định. Đây là kỳ vọng định tuyến, không phải kết quả hiệu năng của nhà cung cấp:

Yêu cầu kiểm thửGiá trị tác vụTuyến chính dự kiến
Gán một danh mục hỗ trợtagGiá rẻ
Soạn thảo phản hồi hướng tới khách hàngreplyNhanh
Rà soát chính sách hoàn tiền mơ hồpolicy_reviewĐộ chính xác cao

Một kiểm thử smoke trực tiếp thành công trả về câu trả lời cùng tuyến đã chọn, ID mô hình, mức dùng token, và mọi lần thử. Token và độ trễ thực tế sẽ khác nhau:

{  "text": "...",  "route": "fast",  "model": "gemini-3.7-flash",  "usage": {    "prompt_tokens": "measured value",    "completion_tokens": "measured value"  },  "attempts": [    {      "tier": "fast",      "model": "gemini-3.7-flash",      "latency_ms": "measured value",      "accepted": true    }  ]}

Để so sánh thực tế, chạy cùng các yêu cầu đã gán nhãn qua cả ba mô hình. Ghi nhận tỷ lệ đạt nhiệm vụ, độ trễ p50 và p95, tỷ lệ lỗi, token đầu vào và đầu ra, tỷ lệ dự phòng, và tỷ lệ duyệt của con người. Thước đo quan trọng thường là chi phí trên mỗi đầu ra được chấp nhận, không phải chi phí trên mỗi cuộc gọi API.

Định tuyến đa mô hình tốn bao nhiêu?

Dùng một hình dạng khối lượng công việc để so sánh công bằng. Giả sử tổng 1 triệu token: 800.000 token đầu vào và 200.000 token đầu ra. Dùng các mức giá dẫn xuất từ danh mục được kiểm tra vào ngày 20 tháng 8 năm 2026:

TuyếnCách tínhChi phí ước tính
Giá rẻ0.8 × $0.176 + 0.2 × $0.528$0.25
Nhanh0.8 × $0.60 + 0.2 × $3.00$1.08
Độ chính xác cao0.8 × $4.00 + 0.2 × $20.00$7.20

Nếu lưu lượng là 60% giá rẻ, 30% nhanh, và 10% độ chính xác cao, chi phí token hỗn hợp dự kiến khoảng $1.19 cho mỗi 1 triệu token tổng. Gửi cùng pha trộn đó hoàn toàn đến tuyến độ chính xác cao sẽ khoảng $7.20 theo các giả định này. Đây là phép tính giá, không phải bằng chứng rằng chính sách pha trộn sẽ đáp ứng mục tiêu chất lượng của bạn.

Thử lại và từ chối làm thay đổi kết quả. Tỷ lệ thử lại một lần 5% nâng dự báo $1.19 lên khoảng $1.25. Nếu đầu ra chi phí thấp thất bại xác thực và toàn bộ yêu cầu được lặp lại ở tầng độ chính xác cao, hãy tính cả hai cuộc gọi. Theo dõi các đầu ra được chấp nhận để một mô hình có vẻ rẻ không che giấu chi phí duyệt hoặc tái sinh.

Những lỗi định tuyến LLM thường gặp nhất là gì?

Tín hiệuCách xử lý
400 hoặc yêu cầu không hợp lệSửa payload. Không dự phòng.
401Nạp lại hoặc xoay vòng khóa API. Không thử lại.
403Kiểm tra quyền truy cập mô hình và các trường không được hỗ trợ.
429Giảm tải với jitter, giảm đồng thời, rồi dùng tuyến dự phòng đã phê duyệt nếu chính sách cho phép.
5xx tạm thời hoặc timeoutThử tuyến tương thích tiếp theo và giữ lại ID yêu cầu.
Thất bại cổng chất lượngLeo thang một lần, ghi lại lý do, và dừng sau danh sách tuyến đã cấu hình.

Hướng dẫn lỗi và thử lại khuyến nghị thử lại giới hạn tốc độ và lỗi nền tảng tạm thời với backoff, trong khi yêu cầu sai định dạng và lỗi xác thực nên được sửa. Hướng dẫn dự phòng tương tự giữ dự phòng mô hình theo thứ tự và rõ ràng.

Định tuyến trong ứng dụng so với CometAPI Auto: Nên dùng cái nào?

Dùng định tuyến trong ứng dụng khi cần kiểm soát và tái lập. Giữ quyết định trong mã của bạn khi tác vụ ổn định và bạn cần danh tính mô hình cố định, ngân sách theo tầng, bộ xác thực tùy chỉnh, và thứ tự dự phòng có thể kiểm toán. Cách này cũng giúp việc so sánh cùng ánh xạ mô hình qua các bản phát hành trở nên dễ hơn.

Dùng CometAPI Auto khi giảm bảo trì định tuyến quan trọng hơn. Đặt model=auto cho mặc định cân bằng hoặc model=auto-high khi ưu tiên chất lượng cao hơn. CometAPI chọn một mô hình đủ điều kiện động dựa trên đặc điểm yêu cầu và pool định tuyến hiện tại, vì vậy mô hình nền có thể thay đổi; điều đó khiến Auto kém phù hợp khi mỗi lần chạy phải dùng cùng một mô hình hoặc tham số đặc thù mô hình.

Chạy định tuyến LLM trong sản xuất như thế nào?

  • Làm mới registry mô hình. Gọi GET https://api.cometapi.com/api/models trong lúc triển khai hoặc khởi động và hủy phát hành nếu một ID đã cấu hình hoặc endpoint bắt buộc bị thiếu. ID mô hình, giá, và khả năng có thể thay đổi.
  • Giữ các tùy chọn đặc thù nhà cung cấp ngoài bộ định tuyến. Một bề mặt Chat Completions chung không khiến mọi tham số giống hệt. Ví dụ, hỗ trợ logprobs, điều khiển reasoning, hoặc nhiều ứng viên có thể khác nhau. Đặt những khác biệt đó trong các adapter đã kiểm thử.
  • Giới hạn lưu lượng và đầu ra. Hạn chế đồng thời trước khi yêu cầu rời khỏi ứng dụng, dùng backoff lũy thừa với jitter cho 429, và đặt trần token đầu ra. Hướng dẫn giới hạn tốc độ của CometAPI cũng khuyến nghị các kiểm soát phía ứng dụng tương tự.
  • Ghi nhật ký quyết định. Ghi lại loại tác vụ, phiên bản chính sách, tầng đã chọn, ID mô hình, độ trễ, mức dùng token, kết quả xác thực, số lần thử lại, lý do dự phòng, và ước tính chi phí. Tránh ghi nhật ký bí mật hoặc nội dung khách hàng không cần thiết.
  • Thăng hạng tuyến dựa trên bằng chứng. Giữ một bộ đánh giá có gán nhãn cho mỗi tác vụ. Triển khai dần dần các thay đổi ánh xạ, so sánh với chính sách trước đó, và duy trì đường hoàn nguyên nhanh.

Câu hỏi thường gặp

CometAPI có tự động quyết định mô hình nào là rẻ, nhanh, hay chính xác không?

Hướng dẫn này giữ chính sách đó trong mã ứng dụng. CometAPI cung cấp khóa chung, base URL, danh mục mô hình, giao diện Chat Completions, và các khối xây dựng dự phòng được tài liệu hóa. Đội của bạn định nghĩa mỗi tầng nghĩa là gì và mô hình nào đã vượt qua kiểm thử.

Một khóa CometAPI có thể gọi mô hình từ các nhà cung cấp khác nhau không?

Có. Với các tuyến văn bản tương thích OpenAI, dùng https://api.cometapi.com/v1 và thay giá trị model. Nên kiểm tra danh mục hiện tại trước khi triển khai.

Tại sao không gửi mọi yêu cầu đến mô hình rẻ nhất?

Mức giá token thấp nhất có thể trở nên đắt nếu đầu ra thất bại xác thực, cần thử lại, hoặc tạo ra công việc duyệt của con người. So sánh chi phí trên mỗi kết quả được chấp nhận và giữ các tác vụ có tác động cao sau những cổng chất lượng nghiêm ngặt hơn.

Thất bại chất lượng có nên kích hoạt dự phòng?

Chỉ khi thất bại có thể máy phát hiện và leo thang được giới hạn. Lỗi schema, thiếu trường bắt buộc, hoặc lời hứa bị cấm có thể biện minh một lần leo thang. Sự không hài lòng mơ hồ nên trở thành dữ liệu đánh giá thay vì vòng thử lại không giới hạn.

Bản đồ mô hình nên thay đổi thường xuyên thế nào?

Thay đổi khi dữ liệu danh mục hiện tại và một đánh giá có thể lặp lại cho thấy một đánh đổi tốt hơn. Đừng xoay mô hình chỉ vì tên mới xuất hiện trong danh mục.

Tôi có thể thêm một mô hình OpenAI sau này không?

Có. Thêm một ID mô hình tương thích OpenAI hiện tại vào MODELS, kiểm thử cùng hợp đồng yêu cầu và phản hồi, và đặt nó vào thứ tự tuyến. Client, khóa, và base URL giữ nguyên.

Duy trì chính sách định tuyến LLM như thế nào?

Bộ định tuyến đa nhà cung cấp dễ nhất không phải là một hộp đen tự trị. Đó là một chính sách tác vụ ngắn gọn, có phiên bản, được hỗ trợ bởi quyền truy cập API chung, metadata mô hình hiện tại, bộ xác thực chất lượng, và chuỗi dự phòng hẹp. CometAPI giảm công việc kết nối xuống một khóa và một OpenAI-compatible base URL; ứng dụng của bạn giữ quyền kiểm soát các quyết định về chi phí, độ trễ, và chất lượng.

Tiếp tục học

Kết nối bài viết này với quyết định tiếp theo.

Xem tất cả chủ đề
Được xuất bản Sep 1, 2026
Cập nhật lần cuối Sep 4, 2026
4 lượt xem
Đã được xem xét về độ rõ ràng, ghi nguồn và thuật ngữ API hiện tại.

Sẵn sàng giảm 20% chi phí phát triển AI?

Bắt đầu miễn phí trong vài phút. Bao gồm tín dụng dùng thử miễn phí. Không cần thẻ tín dụng.

Đọc thêm