88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support
Chat

Định dạng trò chuyện nhân loại (Tin nhắn)

📝 Giới thiệu

Đưa ra danh sách các tin nhắn đầu vào có cấu trúc chứa nội dung văn bản và/hoặc hình ảnh, mô hình sẽ tạo tin nhắn tiếp theo trong cuộc hội thoại. API Tin nhắn có thể được sử dụng cho các truy vấn đơn lẻ hoặc các cuộc hội thoại nhiều lượt không trạng thái.

💡 Yêu cầu Ví dụ

Trò chuyện bằng văn bản cơ bản ✅

curl https://88api.ai/v1/messages \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --header "x-api-key: $API_KEY" \
     --data \
'{
    "model": "claude-3-5-sonnet-20241022",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": "Hello, world"}
    ]
}'

Response Example:

{
  "content": [
    {
      "text": "Hi! My name is Claude.",
      "type": "text"
    }
  ],
  "id": "msg_013Zva2CMHLNnXjNJKqJ2EF",
  "model": "claude-3-5-sonnet-20241022",
  "role": "assistant",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "type": "message",
  "usage": {
    "input_tokens": 2095,
    "output_tokens": 503
  }
}

Trò chuyện phân tích hình ảnh ✅

curl https://88api.ai/v1/messages \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --header "x-api-key: $API_KEY" \
     --data \
'{
    "model": "claude-3-5-sonnet-20241022",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/jpeg",
                        "data": "/9j/4AAQSkZJRg..."
                    }
                },
                {
                    "type": "text",
                    "text": "What's in this image?"
                }
            ]
        }
    ]
}'

Response Example:

{
  "content": [
    {
      "text": "This image shows an orange cat sunbathing on a windowsill. The cat looks very relaxed, squinting its eyes while enjoying the sunlight. Some green plants can be seen outside the window.",
      "type": "text"
    }
  ],
  "id": "msg_013Zva2CMHLNnXjNJKqJ2EF",
  "model": "claude-3-5-sonnet-20241022",
  "role": "assistant",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "type": "message",
  "usage": {
    "input_tokens": 3050,
    "output_tokens": 892
  }
}

Gọi công cụ ✅

curl https://88api.ai/v1/messages \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --header "x-api-key: $API_KEY" \
     --data \
'{
    "model": "claude-3-5-sonnet-20241022",
    "messages": [
        {
            "role": "user",
            "content": "What's the weather like in Beijing today?"
        }
    ],
    "tools": [
        {
            "name": "get_weather",
            "description": "Get the current weather for a specified location",
            "input_schema": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "City name, e.g.: Beijing"
                    }
                },
                "required": ["location"]
            }
        }
    ]
}'

Response Example:

{
  "content": [
    {
      "type": "tool_use",
      "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV",
      "name": "get_weather",
      "input": { "location": "Beijing" }
    }
  ],
  "id": "msg_013Zva2CMHLNnXjNJKqJ2EF",
  "model": "claude-3-5-sonnet-20241022",
  "role": "assistant",
  "stop_reason": "tool_use",
  "stop_sequence": null,
  "type": "message",
  "usage": {
    "input_tokens": 2156,
    "output_tokens": 468
  }
}

Phản hồi trực tuyến ✅

curl https://88api.ai/v1/messages \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --header "x-api-key: $API_KEY" \
     --data \
'{
    "model": "claude-3-5-sonnet-20241022",
    "messages": [
        {
            "role": "user",
            "content": "Tell me a story"
        }
    ],
    "stream": true
}'

Response Example:

{
  "type": "message_start",
  "message": {
    "id": "msg_013Zva2CMHLNnXjNJKqJ2EF",
    "model": "claude-3-5-sonnet-20241022",
    "role": "assistant",
    "type": "message"
  }
}
{
  "type": "content_block_start",
  "index": 0,
  "content_block": {
    "type": "text"
  }
}
{
  "type": "content_block_delta",
  "index": 0,
  "delta": {
    "text": "Once upon a time"
  }
}
{
  "type": "content_block_delta",
  "index": 0,
  "delta": {
    "text": "There is one"
  }
}
{
  "type": "content_block_delta",
  "index": 0,
  "delta": {
    "text": "bunny..."
  }
}
{
  "type": "content_block_stop",
  "index": 0
}
{
  "type": "message_delta",
  "delta": {
    "stop_reason": "end_turn",
    "usage": {
      "input_tokens": 2045,
      "output_tokens": 628
    }
  }
}
{
  "type": "message_stop"
}

📮 Yêu cầu

Điểm cuối

POST /v1/messages

Phương thức xác thực

Bao gồm những điều sau đây trong tiêu đề yêu cầu để xác thực khóa API:

x-api-key: $API_KEY

Trong đó $API_KEY là khóa API của bạn. Bạn có thể lấy khóa API từ bảng điều khiển và mỗi khóa được giới hạn ở một không gian làm việc.

Tiêu đề yêu cầu

anthropic-beta

  • Loại: Chuỗi
  • Bắt buộc: Không

Chỉ định phiên bản beta sẽ sử dụng, được hỗ trợ bởi các danh sách được phân tách bằng dấu phẩy như beta1,beta2 hoặc chỉ định tiêu đề này nhiều lần.

anthropic-version

  • Loại: Chuỗi
  • Bắt buộc: Có

Chỉ định phiên bản API sẽ sử dụng.

Thông số nội dung yêu cầu

max_tokens

  • Kiểu: Số nguyên
  • Bắt buộc: Có

Số lượng mã thông báo tối đa để tạo. Các mô hình khác nhau có giới hạn khác nhau, xem tài liệu mô hình. Phạm vi x > 1.

messages

  • Kiểu: Mảng đối tượng
  • Bắt buộc: Có

Danh sách tin nhắn đầu vào. Mô hình được đào tạo để luân phiên giữa người dùng và trợ lý trong cuộc trò chuyện. Khi tạo một tin nhắn mới, bạn có thể sử dụng tham số messages để chỉ định các lượt hội thoại trước đó và mô hình sẽ tạo tin nhắn tiếp theo trong cuộc hội thoại. Các tin nhắn người dùng hoặc trợ lý liên tiếp được hợp nhất thành một lượt duy nhất.

Mỗi tin nhắn phải chứa các trường rolecontent. Bạn có thể chỉ định một thông báo vai trò người dùng hoặc bao gồm nhiều thông báo người dùng và trợ lý. Nếu tin nhắn cuối cùng sử dụng vai trò trợ lý, nội dung phản hồi sẽ tiếp tục trực tiếp từ nội dung của tin nhắn đó, nội dung này có thể được sử dụng để hạn chế phản hồi của mô hình.

Single User Message Example:

[{ "role": "user", "content": "Hello, Claude" }]

Multi-turn Conversation Example:

[
  { "role": "user", "content": "Hello。" },
  { "role": "assistant", "content": "Hello!I am Claude。Is there anything I can help you with??" },
  { "role": "user", "content": "Please explain in simple words what is LLM?" }
]

Partially Filled Response Example:

[
  {
    "role": "user",
    "content": "What is the Greek name for the sun?? (A) Sol (B) Helios (C) Sun"
  },
  { "role": "assistant", "content": "The correct answer is (" }
]

Nội dung của mỗi tin nhắn có thể là một chuỗi hoặc một mảng khối nội dung. Việc sử dụng một chuỗi tương đương với cách viết tắt cho một mảng các khối nội dung loại "văn bản". Hai phát biểu sau là tương đương:

{ "role": "user", "content": "Hello, Claude" }
{
  "role": "user",
  "content": [{ "type": "text", "text": "Hello, Claude" }]
}

Bắt đầu từ mô hình Claude 3, bạn cũng có thể gửi các khối nội dung hình ảnh:

{
  "role": "user",
  "content": [
    {
      "type": "image",
      "source": {
        "type": "base64",
        "media_type": "image/jpeg",
        "data": "/9j/4AAQSkZJRg..."
      }
    },
    {
      "type": "text",
      "text": "What's in this image?"
    }
  ]
}

Các định dạng hình ảnh hiện được hỗ trợ bao gồm: base64, image/jpeg, image/png, image/gif và image/webp.

messages.role
  • Loại: Chuỗi
  • Bắt buộc: Có
  • Giá trị tùy chọn: người dùng, trợ lý

Lưu ý: Messages API không có vai trò "hệ thống", nếu cần lời nhắc hệ thống, vui lòng sử dụng tham số system cấp cao nhất.

messages.content
  • Kiểu: Chuỗi hoặc Mảng đối tượng
  • Bắt buộc: Có

Nội dung của tin nhắn có thể thuộc một trong các loại sau:

Nội dung văn bản (Văn bản)
{
  "type": "text", // Required, enum value: "text"
  "text": "Hello, Claude", // Required, minimum length: 1
  "cache_control": {
    "type": "ephemeral" // Optional, enum value: "ephemeral"
  }
}
Nội dung hình ảnh (Hình ảnh)
{
  "type": "image", // Required, enum value: "image"
  "source": {
    // Required
    "type": "base64", // Required, enum value: "base64"
    "media_type": "image/jpeg", // Required, supported: image/jpeg, image/png, image/gif, image/webp
    "data": "/9j/4AAQSkZJRg..." // Required, base64 encoded image data
  },
  "cache_control": {
    "type": "ephemeral" // Optional, enum value: "ephemeral"
  }
}
Sử dụng công cụ (Sử dụng công cụ)
{
  "type": "tool_use", // Required, enum value: "tool_use", default value
  "id": "toolu_xyz...", // Required, unique identifier for tool use
  "name": "get_weather", // Required, tool name, minimum length: 1
  "input": {
    // Required, object containing tool input parameters
    // Tool input parameters, specific format defined by tool's input_schema
  },
  "cache_control": {
    "type": "ephemeral" // Optional, enum value: "ephemeral"
  }
}
Kết quả công cụ (Kết quả công cụ)
{
  "type": "tool_result", // Required, enum value: "tool_result"
  "tool_use_id": "toolu_xyz...", // Required
  "content": "Result content", // Required, can be string or array of content blocks
  "is_error": false, // Optional, boolean
  "cache_control": {
    "type": "ephemeral" // Optional, enum value: "ephemeral"
  }
}

Khi nội dung là một mảng các khối nội dung, mỗi khối nội dung có thể là văn bản hoặc hình ảnh:

{
  "type": "tool_result",
  "tool_use_id": "toolu_xyz...",
  "content": [
    {
      "type": "text", // Required, enum value: "text"
      "text": "Analysis result", // Required, minimum length: 1
      "cache_control": {
        "type": "ephemeral" // Optional, enum value: "ephemeral"
      }
    },
    {
      "type": "image", // Required, enum value: "image"
      "source": {
        // Required
        "type": "base64", // Required, enum value: "base64"
        "media_type": "image/jpeg",
        "data": "..."
      },
      "cache_control": {
        "type": "ephemeral"
      }
    }
  ]
}
Tài liệu (Tài liệu)
{
  "type": "document", // Required, enum value: "document"
  "source": {
    // Required
    // Document source data
  },
  "cache_control": {
    "type": "ephemeral" // Optional, enum value: "ephemeral"
  }
}

Ghi chú:

  1. Mỗi loại có thể tùy chọn bao gồm một trường cache_control để kiểm soát bộ nhớ đệm nội dung
  2. Độ dài tối thiểu của nội dung văn bản là 1
  3. Tất cả các trường loại đều là chuỗi enum bắt buộc
  4. Trường content của kết quả công cụ hỗ trợ chuỗi hoặc mảng các khối nội dung chứa văn bản/hình ảnh

model

  • Loại: Chuỗi
  • Bắt buộc: Có

Tên mẫu máy sẽ sử dụng, xem tài liệu về mẫu máy. Phạm vi 1 - 256 ký tự.

metadata

  • Loại: Đối tượng
  • Bắt buộc: Không

Một đối tượng mô tả siêu dữ liệu yêu cầu. Bao gồm các trường tùy chọn sau:

  • user_id: Một mã định danh bên ngoài cho người dùng được liên kết với yêu cầu. Nó phải là uuid, hàm băm hoặc mã định danh không rõ ràng khác. Không bao gồm bất kỳ thông tin nhận dạng nào như tên, email hoặc số điện thoại. Độ dài tối đa: 256.

stop_sequences

  • Kiểu: Mảng chuỗi
  • Bắt buộc: Không

Trình tự văn bản tùy chỉnh để dừng tạo.

stream

  • Kiểu: Boolean
  • Bắt buộc: Không

Có sử dụng sự kiện do máy chủ gửi (SSE) để trả về nội dung phản hồi theo từng bước hay không.

system

  • Loại: Chuỗi
  • Bắt buộc: Không

Hệ thống nhắc nhở, cung cấp thông tin cơ bản và hướng dẫn cho Claude. Đây là một cách để cung cấp bối cảnh và mục tiêu hoặc vai trò cụ thể cho mô hình. Lưu ý rằng điều này khác với role trong tin nhắn, và Messages API không có vai trò "hệ thống".

temperature

  • Loại: Số
  • Bắt buộc: Không
  • Mặc định: 1.0

Kiểm soát tính ngẫu nhiên của thế hệ, 0,0 - 1,0. Phạm vi 0 < x < 1`. Bạn nên sử dụng giá trị gần 0,0 cho các nhiệm vụ phân tích/trắc nghiệm và giá trị gần 1,0 cho các nhiệm vụ sáng tạo và tổng hợp.

Lưu ý: Ngay cả khi nhiệt độ được đặt thành 0,0, kết quả sẽ không hoàn toàn xác định.

🆕 thinking

  • Loại: Đối tượng
  • Bắt buộc: Không

Cấu hình chức năng tư duy mở rộng của Claude. Khi được bật, phản hồi sẽ bao gồm các khối nội dung thể hiện quá trình suy nghĩ của Claude trước khi đưa ra câu trả lời cuối cùng. Yêu cầu ít nhất 1.024 mã thông báo ngân sách và được tính vào giới hạn max_tokens của bạn.

Có thể cài đặt một trong hai chế độ sau:

1. Chế độ kích hoạt
{
  "type": "enabled",
  "budget_tokens": 2048
}
  • type: Bắt buộc, giá trị enum: “enabled”
  • budget_tokens: Bắt buộc, số nguyên. Xác định số lượng thẻ mà Claude có thể sử dụng cho quá trình suy luận nội bộ. Ngân sách lớn hơn cho phép mô hình thực hiện phân tích sâu hơn về các câu hỏi phức tạp, cải thiện chất lượng phản hồi. Phải ≥1024 và nhỏ hơn max_tokens. Phạm vi x > 1024`.
2. Chế độ tắt
{
  "type": "disabled"
}
  • type: Bắt buộc, giá trị enum: “disabled”

tool_choice

  • Loại: Đối tượng
  • Bắt buộc: Không

Kiểm soát cách mô hình sử dụng các công cụ được cung cấp. Có thể là một trong ba loại sau:

1. Chế độ tự động (Chọn tự động)
{
  "type": "auto", // Required, enum value: "auto"
  "disable_parallel_tool_use": false // Optional, default false. If true, the model will only use one tool at most
}
2. Mọi chế độ (Any Tool)
{
  "type": "any", // Required, enum value: "any"
  "disable_parallel_tool_use": false // Optional, default false. If true, the model will exactly use one tool
}
3. Chế độ công cụ (Công cụ cụ thể)
{
  "type": "tool", // Required, enum value: "tool"
  "name": "get_weather", // Required, specify the tool name to use
  "disable_parallel_tool_use": false // Optional, default false. If true, the model will exactly use one tool
}

Ghi chú:

  1. Chế độ tự động: Mô hình có thể tự quyết định có sử dụng các công cụ hay không
  2. Any Mode: Mô hình phải sử dụng các công cụ nhưng có thể chọn bất kỳ công cụ nào có sẵn
  3. Chế độ công cụ: Mô hình phải sử dụng công cụ được chỉ định

tools

  • Kiểu: Mảng đối tượng
  • Bắt buộc: Không

Xác định các công cụ mà mô hình có thể sử dụng. Công cụ có thể là công cụ tùy chỉnh hoặc loại công cụ tích hợp:

1. Công cụ tùy chỉnh (Tool)

Mỗi định nghĩa công cụ tùy chỉnh bao gồm:

  • type: Tùy chọn, giá trị enum: “custom”
  • name: Tên công cụ, bắt buộc, 1-64 ký tự
  • description: Mô tả công cụ, nên càng chi tiết càng tốt
  • input_schema: Định nghĩa Lược đồ JSON cho đầu vào công cụ, bắt buộc
  • cache_control: Kiểm soát bộ đệm, tùy chọn, loại là "phù du"

Ví dụ:

[
  {
    "type": "custom",
    "name": "get_weather",
    "description": "Get the current weather for a specified location",
    "input_schema": {
      "type": "object",
      "properties": {
        "location": {
          "type": "string",
          "description": "City name, e.g.: Beijing"
        }
      },
      "required": ["location"]
    }
  }
]
2. Công cụ máy tính (ComputerUseTool)
{
  "type": "computer_20241022", // Required
  "name": "computer", // Required, enum value: "computer"
  "display_width_px": 1024, // Required, display width (pixels)
  "display_height_px": 768, // Required, display height (pixels)
  "display_number": 0, // Optional, X11 display number
  "cache_control": {
    "type": "ephemeral" // Optional
  }
}
3. Công cụ Bash (BashTool)
{
  "type": "bash_20241022", // Required
  "name": "bash", // Required, enum value: "bash"
  "cache_control": {
    "type": "ephemeral" // Optional
  }
}
4. Công cụ soạn thảo văn bản (TextEditor)
{
  "type": "text_editor_20241022", // Required
  "name": "str_replace_editor", // Required, enum value: "str_replace_editor"
  "cache_control": {
    "type": "ephemeral" // Optional
  }
}

Khi mô hình sử dụng một công cụ, nó sẽ trả về khối nội dung tool_use:

[
  {
    "type": "tool_use",
    "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV",
    "name": "get_weather",
    "input": { "location": "Beijing" }
  }
]

Bạn có thể thực thi một công cụ và trả về kết quả thông qua khối nội dung tool_result:

[
  {
    "type": "tool_result",
    "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV",
    "content": "The weather in Beijing today is sunny, with a temperature of 25°C"
  }
]

top_k

  • Kiểu: Số nguyên
  • Bắt buộc: Không
  • Phạm vi: x > 0

Các mẫu từ K tùy chọn hàng đầu của mã thông báo. Được sử dụng để loại bỏ các phản hồi "đuôi dài" có xác suất thấp. Khuyến cáo chỉ nên sử dụng tính năng này trong những trường hợp sử dụng nâng cao, thông thường chỉ cần điều chỉnh nhiệt độ là đủ.

top_p

  • Loại: Số
  • Bắt buộc: Không
  • Phạm vi: 0`< x < 1

Sử dụng lấy mẫu hạt nhân. Tính toán phân phối xác suất tích lũy cho mỗi mã thông báo tiếp theo theo thứ tự giảm dần, cắt bớt khi xác suất đạt đến top_p được chỉ định. Bạn chỉ nên điều chỉnh một trong số nhiệt độ hoặc top_p, không nên điều chỉnh cả hai.

📥 Phản hồi

###Phản hồi thành công

Trả về một đối tượng hoàn thành trò chuyện, chứa các trường sau:

content

  • Kiểu: Mảng đối tượng
  • Bắt buộc: Có

Nội dung do mô hình tạo ra, bao gồm nhiều khối nội dung. Mỗi khối nội dung có một loại xác định hình dạng của nó. Khối nội dung có thể là một trong các loại sau:

Khối nội dung văn bản (Văn bản)
{
  "type": "text", // Required, enum value: "text", default value
  "text": "Hello,I am Claude。" // Required, maximum length: 5000000, minimum length: 1
}
Khối nội dung sử dụng công cụ (Sử dụng công cụ)
{
  "type": "tool_use", // Required, enum value: "tool_use", default value
  "id": "toolu_xyz...", // Required, unique identifier for tool use
  "name": "get_weather", // Required, tool name, minimum length: 1
  "input": {
    // Required, object containing tool input parameters
    // Tool input parameters, specific format defined by tool's input_schema
  }
}

Ví dụ:

// Text content example
[{"type": "text", "text": "Hello,I am Claude。"}]

// Tool use example
[{
  "type": "tool_use",
  "id": "toolu_xyz...",
  "name": "get_weather",
  "input": { "location": "Beijing" }
}]

// Mixed content example
[
  {"type": "text", "text": "Query results based on weather:"},
  {
    "type": "tool_use",
    "id": "toolu_xyz...",
    "name": "get_weather",
    "input": { "location": "Beijing" }
  }
]

Nếu tin nhắn cuối cùng trong yêu cầu là vai trò trợ lý thì nội dung phản hồi sẽ tiếp tục trực tiếp từ tin nhắn đó. Ví dụ:

// Request
[
  {"role": "user", "content": "What is the Greek name for the sun?? (A) Sol (B) Helios (C) Sun"},
  {"role": "assistant", "content": "The correct answer is ("}
]

// Response
[{"type": "text", "text": "B)"}]

id

  • Loại: Chuỗi
  • Bắt buộc: Có

Mã định danh duy nhất cho phản hồi.

model

  • Loại: Chuỗi
  • Bắt buộc: Có

Tên mẫu được sử dụng.

role

  • Loại: Chuỗi
  • Bắt buộc: Có
  • Mặc định: trợ lý

Vai trò phiên cho tin nhắn được tạo luôn là "trợ lý".

stop_reason

  • Kiểu: Chuỗi hoặc null
  • Bắt buộc: Có

Lý do ngừng tạo, các giá trị có thể bao gồm:

  • "end_turn": Mô hình đạt điểm dừng tự nhiên
  • "max_tokens": Đã vượt quá max_token được yêu cầu hoặc giới hạn tối đa của mô hình
  • "stop_sequence": Tạo ra một trong các chuỗi dừng tùy chỉnh
  • "tool_use": Model gọi là một hoặc nhiều công cụ

Giá trị này luôn không trống ở chế độ không phát trực tuyến. Trong chế độ phát trực tuyến, nó là null trong sự kiện message_start và không rỗng trong trường hợp khác.

stop_sequence

  • Kiểu: Chuỗi hoặc null
  • Bắt buộc: Có

Trình tự dừng tùy chỉnh được tạo. Nếu mô hình gặp phải một trong các chuỗi dừng được chỉ định trong tham số stop_sequences, trường này sẽ chứa chuỗi dừng phù hợp đó. Nếu không bị dừng bởi một chuỗi dừng thì nó là null.

type

  • Loại: Chuỗi
  • Bắt buộc: Có
  • Mặc định: tin nhắn
  • Tùy chọn: tin nhắn

Loại đối tượng, luôn là "tin nhắn" cho Tin nhắn.

usage

  • Loại: Đối tượng
  • Bắt buộc: Có

Thống kê sử dụng liên quan đến giới hạn thanh toán và tỷ lệ. Bao gồm các trường sau:

  • input_tokens: Số lượng token đầu vào được sử dụng, bắt buộc, phạm vi x >` 0
  • output_tokens: Số lượng token đầu ra được sử dụng, bắt buộc, phạm vi x > 0
  • cache_creation_input_tokens: Số lượng token đầu vào được sử dụng để tạo các mục trong bộ đệm (nếu có), bắt buộc, phạm vi x > 0
  • cache_read_input_tokens: Số lượng token đầu vào được đọc từ bộ đệm (nếu có), bắt buộc, phạm vi x > 0

Lưu ý: Do các chuyển đổi và phân tích cú pháp nội bộ API, số lượng mã thông báo có thể không tương ứng chính xác với nội dung hiển thị thực tế của các yêu cầu và phản hồi. Ví dụ: ngay cả một phản hồi chuỗi trống cũng sẽ có giá trị đầu ra_tokens khác 0.

Phản hồi lỗi

Khi yêu cầu gặp sự cố, API sẽ trả về đối tượng phản hồi lỗi, với mã trạng thái HTTP trong phạm vi 4XX-5XX.

Mã trạng thái lỗi phổ biến

  • 401 Unauthorized: API key không hợp lệ hoặc không được cung cấp
  • 400 Bad Request: Tham số yêu cầu không hợp lệ
  • 429 Too Many Requests: Vượt quá giới hạn lệnh gọi API
  • 500 Internal Server Error: Lỗi nội bộ của máy chủ

Ví dụ về phản hồi lỗi:

{
  "error": {
    "type": "invalid_request_error",
    "message": "Invalid API key provided",
    "code": "invalid_api_key"
  }
}

Các loại lỗi chính:

  • invalid_request_error: Lỗi tham số yêu cầu
  • authentication_error: Lỗi liên quan đến xác thực
  • rate_limit_error: Tần suất yêu cầu vượt quá
  • server_error: Lỗi nội bộ của máy chủ