Developer guide
Xác thực bằng khóa API
Tiêu đề chứa khóa API và base URL cần cấu hình trong SDK
Cổng CLEVI xác thực các đường dẫn tương thích với OpenAI và Anthropic bằng một khóa API duy nhất.
Có hai giá trị cần cấu hình ở phía máy khách: tiêu đề xác thực chứa khóa và base URL của SDK; định dạng tiêu đề được chấp nhận và base URL khác nhau tùy theo đặc tả.
Sau khi hoàn tất cấu hình, hãy truy vấn danh sách mô hình để kiểm tra ngay trạng thái xác thực.
Nếu xác thực không thành công, hệ thống trả về 401; nếu xác thực thành công nhưng không đáp ứng điều kiện về quyền hoặc hạn mức, hệ thống trả về 403.
Phát hành khóa API trên màn hình khóa API trong bảng điều khiển. Bạn cũng có thể thu hồi khóa và quản lý phạm vi sử dụng trên cùng màn hình.
Tiêu đề xác thực
Cả hai đặc tả đều chứa khóa API trong một tiêu đề yêu cầu. Sử dụng một trong hai tiêu đề X-API-Key hoặc Authorization; định dạng được chấp nhận tùy theo đặc tả.
| Tiêu đề | Tương thích với OpenAI | Tương thích với Anthropic |
|---|---|---|
| X-API-Key: <키> | Được chấp nhận | Được chấp nhận |
| Authorization: Bearer <키> | Được chấp nhận | Được chấp nhận |
| Authorization: <키> (không có Bearer) | Bị từ chối | Được chấp nhận |
Khi sử dụng tiêu đề Authorization trên đường dẫn tương thích với OpenAI, cần có tiền tố Bearer. Nếu chỉ gửi khóa mà không có tiền tố, cổng sẽ từ chối yêu cầu.
Tên tiêu đề không phân biệt chữ hoa chữ thường, vì vậy tiêu đề x-api-key do Anthropic SDK gửi cũng hoạt động như bình thường. Nếu chỉ định cả hai tiêu đề, giá trị X-API-Key sẽ được ưu tiên áp dụng.
base URL
Các SDK hiện đang sử dụng có thể tiếp tục được sử dụng chỉ bằng cách đổi base URL thành địa chỉ bên dưới. Hai địa chỉ khác nhau ở việc có bao gồm /v1 hay không, vì vậy hãy chỉ định nguyên địa chỉ phù hợp với đặc tả.
| Đặc tả | base URL | Quy tắc đường dẫn |
|---|---|---|
| Tương thích với OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Bao gồm đến /v1 trong base URL. |
| Tương thích với Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | Anthropic SDK tự thêm /v1 vào đường dẫn yêu cầu, vì vậy URL kết thúc trước /v1. |
Kiểm tra xác thực
Sau khi thiết lập khóa và base URL, bạn có thể xác nhận trạng thái xác thực bằng cách truy vấn danh sách mô hình. Ví dụ dưới đây thực hiện cùng một truy vấn bằng curl, OpenAI SDK và Anthropic SDK. Thay sk-... bằng khóa được cấp trên màn hình API key.
Khi truy vấn bằng curl, hãy chỉ định toàn bộ đường dẫn đến /v1/models cho cả hai quy cách. Lệnh đầu tiên sử dụng tiêu đề X-API-Key cho đường dẫn tương thích với OpenAI, còn lệnh thứ hai sử dụng tiêu đề Authorization cho đường dẫn tương thích với Anthropic.
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/models \
-H "X-API-Key: sk-..."
curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/models \
-H "Authorization: Bearer sk-..." \
-H "anthropic-version: 2023-06-01"Với OpenAI SDK, hãy chỉ định địa chỉ bao gồm /v1 trong base_url.
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)
for model in client.models.list():
print(model.id)Với Anthropic SDK, hãy chỉ định base_url là địa chỉ kết thúc trước /v1.
Để xác thực, giữ nguyên tiêu đề x-api-key do SDK gửi.
from anthropic import Anthropic
client = Anthropic(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/anthropic",
)
for model in client.models.list(limit=20).data:
print(model.id)Nếu phản hồi là 200 trong bất kỳ ví dụ nào, xác thực đã thành công và data trong phản hồi chứa danh sách các mô hình có thể gọi bằng khóa này. Nếu nhận 401, hãy kiểm tra nguyên nhân theo thứ tự trong phần tiếp theo.
Xác thực không thành công
Nếu không có khóa hoặc gửi khóa đã hết hạn hoặc bị thu hồi, hệ thống sẽ trả về 401. Khi gọi đường dẫn tương thích với OpenAI mà không có khóa, hệ thống trả về nội dung dưới đây; với đường dẫn tương thích với Anthropic, error.type là authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Nếu nhận 401, hãy kiểm tra theo thứ tự sau.
- Kiểm tra trạng thái khóa trên màn hình API key. Nếu khóa đã hết hạn hoặc bị thu hồi, hãy cấp khóa mới.
- Kiểm tra xem tên tiêu đề có phải là X-API-Key hoặc Authorization hay không.
- Nếu sử dụng tiêu đề Authorization trên đường dẫn tương thích với OpenAI, hãy kiểm tra xem có tiền tố Bearer hay không.
Sau khi sửa, hãy thực hiện lại truy vấn danh sách mô hình trong phần xác nhận xác thực và kiểm tra xem có nhận được 200 hay không.
Các tiêu đề được sử dụng cùng nhau
Tất cả các tiêu đề sau đều là tùy chọn. Để có thể theo dõi sự cố, chúng tôi khuyến nghị chỉ định X-Request-Id.
| Tiêu đề | Mục đích | Nếu bỏ qua |
|---|---|---|
| X-Request-Id | Mã định danh dùng để theo dõi yêu cầu. Đường dẫn tương thích với Anthropic trả về cùng giá trị trong tiêu đề request-id của phản hồi. | Do máy chủ cấp. |
| X-Region-Code | Chỉ định khu vực gọi API. | Là global. |
| X-Product-Sku (cũng có thể chỉ định bằng truy vấn product_sku) | Chỉ định trực tiếp Product SKU được sử dụng để tính phí. Tiêu đề được ưu tiên hơn truy vấn và chủ yếu được sử dụng trong các đường dẫn thoại・voice. | Không thể bỏ qua trong các đường dẫn voice. audio/speech và audio/transcriptions chọn Product bằng model trong nội dung yêu cầu. |
| anthropic-version / anthropic-beta | Được truyền nguyên trạng trong đường dẫn tương thích với Anthropic. | Phiên bản là 2023-06-01. |
Nếu lỗi 5xx lặp lại, hãy thông báo qua phần trợ giúp và liên hệ hỗ trợ, kèm theo X-Request-Id. Nếu là giá trị được chỉ định trực tiếp, có thể đối chiếu ngay với nhật ký của máy khách.