Bỏ qua để đến nội dung

Gọi endpoint

Chỉ bắt đầu khi model đã chuyển sang trạng thái Running, trang chi tiết đã hiển thị endpoint và tab Sao chép cURL (Copy as cURL) có một request hoàn chỉnh.

Gửi request đầu tiên

Mục “Gửi request đầu tiên”
  1. Tạo Inference API key.

    Mở Suy luận (Inference) → Khóa API (API Keys) → Tạo khóa API (Generate API key). Chọn thời hạn hiệu lực, đặt Loại (Type) thành Tự lưu trữ (Self-hosted), rồi tích chọn model bạn muốn gọi.

    Lưu ý: khi chọn một model, bạn đang cấp quyền cho Served Model Name của model đó, chứ không chỉ cho riêng tài nguyên này. Một bản Replacement trong cùng tenant mà vẫn dùng Served Model Name đó cũng sẽ dùng chung quyền truy cập; các Served Model Name khác đều bị từ chối. Xóa model không thay thế được việc thu hồi (revoke) key.

    Đừng dùng Platform key ở bước này: key này không gọi được self-hosted model của tenant.

    Sao chép secret trong hộp thoại báo tạo key thành công. Sau khi đóng hộp thoại, bạn sẽ không xem lại được secret này.

    Hộp thoại Generate API key: Expires in là 90 days, Type là Self-hosted; bên dưới là danh sách checkbox cho từng self-hosted model kèm Served Model Name và trạng thái hiện tại.

    Danh sách model chỉ hiện ra khi Loại (Type) là Tự lưu trữ (Self-hosted). Platform key không có danh sách này vì không thể thu hẹp phạm vi.

  2. Sao chép tenant endpoint và Served Model Name.

    Mở trang chi tiết của model, sao chép Endpoint ở đầu trang và chuỗi model mà tab Sao chép cURL đang dùng; chuỗi này phải khớp chính xác với Served Model Name của model.

    Không sử dụng tên tài nguyên của model, repository Hugging Face hoặc Public model ID của Platform catalog, trừ khi lệnh cURL mẫu do Console tạo cũng dùng đúng chuỗi đó.

    Trang chi tiết model với endpoint ở trên cùng và tab Copy as cURL đang mở, hiển thị lệnh curl có URL là endpoint cộng /v1/chat/completions và body đặt model bằng Served Model Name.

    Hai giá trị trên cùng một màn hình: endpoint ở trên cùng, còn chuỗi model nằm trong lệnh cURL mẫu.

  3. Thiết lập biến môi trường cục bộ.

    Thay cả hai placeholder bằng các giá trị đã sao chép. Biến ONX_ENDPOINT là tenant endpoint hiển thị trên trang chi tiết của model, không thêm đuôi /v1.

    Bash hoặc zsh

    Terminal
    export ONX_ENDPOINT="<copied-endpoint>"
    export ONX_SERVED_MODEL="<served-model-name>"

    Chạy riêng lệnh nhập key bên dưới, rồi dán secret khi terminal yêu cầu:

    Terminal
    printf "OneNexus Inference API key: "; IFS= read -rs ONX_INFERENCE_API_KEY </dev/tty && export ONX_INFERENCE_API_KEY && printf "\n"

    PowerShell

    PowerShell
    $env:ONX_ENDPOINT = "<copied-endpoint>"
    $env:ONX_SERVED_MODEL = "<served-model-name>"
    $secret = Read-Host "OneNexus Inference API key" -AsSecureString
    $env:ONX_INFERENCE_API_KEY = [System.Net.NetworkCredential]::new("", $secret).Password
    Remove-Variable secret
  4. Chạy thử lệnh cURL mẫu trước.

    Câu lệnh trong tab Sao chép cURL của model là nguồn chuẩn xác nhất cho endpoint, path và giá trị model. Tuyệt đối không dán key thô vào lệnh này, vì key có thể bị lưu lại trong shell history. Với Bash hoặc zsh, hãy dùng biến môi trường bạn đã nhập an toàn ở bước 3, rồi thay toàn bộ authorization header trong lệnh cURL mẫu (generated command) bằng -H "Authorization: Bearer $ONX_INFERENCE_API_KEY". Giữ nguyên các giá trị còn lại.

    Câu lệnh Bash/zsh sau khi thay thế:

    cURL
    curl "$ONX_ENDPOINT/v1/chat/completions" \
    -H "Authorization: Bearer $ONX_INFERENCE_API_KEY" \
    -H "Content-Type: application/json" \
    -d "{
    \"model\": \"$ONX_SERVED_MODEL\",
    \"messages\": [{\"role\": \"user\", \"content\": \"Hãy chào bằng một câu.\"}]
    }"

    Lệnh gọi API thành công khi bạn nhận được response 2xx với cấu trúc Chat Completions hợp lệ; một câu trả lời cuối hoàn chỉnh sẽ có mảng choices không rỗng và nội dung của assistant nằm ở choices[0].message.content. Nếu phần văn bản cuối bị rỗng, hãy xem toàn bộ response trước khi thử lại; một số model có thể trả về phần reasoning mà không có câu trả lời cuối.

  5. Gọi cùng endpoint bằng Python.

    Cài đặt SDK:

    Terminal
    python -m pip install openai

    Lưu đoạn code sau thành file endpoint_call.py, rồi chạy lệnh python endpoint_call.py:

    endpoint_call.py
    import os
    from openai import OpenAI
    endpoint = os.environ["ONX_ENDPOINT"].rstrip("/")
    client = OpenAI(
    base_url=f"{endpoint}/v1",
    api_key=os.environ["ONX_INFERENCE_API_KEY"],
    )
    response = client.chat.completions.create(
    model=os.environ["ONX_SERVED_MODEL"],
    messages=[{"role": "user", "content": "Hãy chào bằng một câu."}],
    )
    print("Success:", response.choices[0].message.content)

    Nếu thành công, terminal sẽ in câu trả lời của model, bắt đầu bằng Success:.

Giữ ba giá trị này luôn đi cùng nhau

Mục “Giữ ba giá trị này luôn đi cùng nhau”

Hãy coi ba giá trị sau là một khối cấu hình thống nhất:

  1. Tenant endpoint hiển thị trên trang chi tiết của model;
  2. Inference API key đã được cấp quyền cho Served Model Name của model đó; và
  3. Served Model Name chính xác.

Một lỗi hay gặp là ghép hai giá trị đúng của một model với giá trị thứ ba lấy từ Platform catalog hoặc từ một model khác.

Lưu ý trước khi tích hợp vào ứng dụng

Mục “Lưu ý trước khi tích hợp vào ứng dụng”
  • Luôn lưu trữ key trong secret store phía server hoặc biến môi trường được bảo vệ, tuyệt đối không đưa vào browser bundle hay repository mã nguồn.
  • Cấu hình timeout hợp lý cho ứng dụng.
  • Không thử lại nguyên trạng các request bị lỗi 401, 403, 4xx do validation hoặc 404.
  • Với lỗi tạm thời 429 hoặc 503, chỉ thử lại có giới hạn, kèm exponential backoff và jitter.
  • Nếu luồng dữ liệu streaming đã bắt đầu phát dữ liệu, không tự động gửi lại toàn bộ request từ đầu.

Xem Tham chiếu API để nắm rõ quy chuẩn request, hoặc Khắc phục sự cố nếu lệnh cURL mẫu gặp lỗi.