tài liệu
Kết nối

OpenAI SDK

Markdown

Các thư viện OpenAI chính thức cho Python và Node.js hoạt động với Ailoot mà không cần sửa mã — chỉ thay địa chỉ và khóa.

Hướng dẫn đầy đủ

Cài đặt

pip install openai

Kết nối

Đặt địa chỉ gốc https://api.ailoot.ai/v1. Có thể đặt trong mã hoặc qua các biến OPENAI_BASE_URL và OPENAI_API_KEY — khi đó hoàn toàn không cần sửa mã.

from openai import OpenAI
import os

client = OpenAI(max_retries=0, 
    base_url="https://api.ailoot.ai/v1",
    api_key=os.environ["AILOOT_API_KEY"],
)

resp = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Giải thích API là gì trong hai câu."}],
)
print(resp.choices[0].message.content)

Responses API

Định dạng mới của OpenAI. Dùng được với các mô hình có định dạng Responses trong danh mục (53 mã định danh, gồm Claude, GPT, DeepSeek, Qwen, Kimi, GLM).

resp = client.responses.create(
    model="gpt-6.1-sol",
    instructions="Trả lời ngắn gọn, đúng trọng tâm.",
    input="TCP khác UDP ở điểm nào?",
)
print(resp.output_text)

Công cụ (function calling)

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Thời tiết trong thành phố",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

import json

messages = [{"role": "user", "content": "Thời tiết ở Kazan thế nào?"}]
# Tắt tính năng tự động thử lại: nếu hết thời gian chờ, trước tiên hãy kiểm tra Request ID trong lịch sử sử dụng.
client = client.with_options(max_retries=0)
for turn in range(4):
    resp = client.chat.completions.create(
        model="claude-sonnet-5-5", messages=messages, tools=tools,
    )
    message = resp.choices[0].message
    messages.append(message.model_dump(exclude_none=True))
    if not message.tool_calls:
        print(message.content)
        break
    for call in message.tool_calls:
        if call.function.name != "get_weather":
            raise ValueError("Unexpected function")
        arguments = json.loads(call.function.arguments)
        # Thay bằng hàm thời tiết của bạn; ví dụ này sử dụng dữ liệu minh họa.
        result = {"city": arguments["city"], "temperature_c": 20, "demo": True}
        messages.append({"role": "tool", "tool_call_id": call.id,
                         "content": json.dumps(result, ensure_ascii=False)})
else:
    raise RuntimeError("Tool loop limit reached")

Embedding

emb = client.embeddings.create(
    model="nvidia/nemotron-3-embed-1b",
    input=["Tài liệu thứ nhất", "Tài liệu thứ hai"],
)
print(len(emb.data), len(emb.data[0].embedding))

Hình ảnh đầu vào

resp = client.chat.completions.create(
    model="gpt-6.1-sol",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Trong ảnh này có gì?"},
            {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}},
        ],
    }],
)

Xử lý lỗi

Lỗi Ailoot được trả về theo định dạng OpenAI, nên các ngoại lệ tiêu chuẩn của SDK có thể bắt được. Nội dung lỗi có Request ID.

import openai

try:
    resp = client.chat.completions.create(model="claude-sonnet-5-5", messages=[{"role": "user", "content": "Xin chào"}])
except openai.APIStatusError as e:
    print(e.status_code, e.response.json()["error"]["code"])
    print(e.response.headers.get("x-request-id"))
Còn câu hỏi? Hãy gửi Request ID và mô tả — chúng tôi sẽ giúp tìm hiểu.Liên hệ hỗ trợ