BazaarLinkBazaarLink
Đăng nhập
Tài liệuTham chiếu APITham chiếu SDKSử dụng AgentKỹ năng AI
Trò chuyện

Tạo cuộc trò chuyện

BazaarLink trả về phản hồi chuẩn hóa và loại bỏ các trường riêng của upstream. usage.cost là số USD tính cho khách hàng cho yêu cầu này. Dùng BazaarLink request ID opaque từ id phản hồi hoặc header x-request-id với GET /v1/generation; phản hồi không stream cũng có ID đó trong x-generation-id. Số liệu có thể xuất hiện sau vài giây; thử lại 404 trong thời gian ngắn. Yêu cầu Chat, Messages và Responses không stream kéo dài (khoảng 12 giây trở lên) có thể có khoảng trắng keep-alive trước JSON body. Trình phân tích JSON tiêu chuẩn xử lý được khoảng trắng đầu. Audio chat dùng endpoint này; yêu cầu đầu ra âm thanh bằng modalities:["text","audio"] và audio:{voice,format}. GET /v1/models?output_modalities=audio chỉ lọc các mô hình có đầu ra âm thanh, không phải mọi mô hình nhận âm thanh đầu vào; mô hình nhận âm thanh và trả văn bản vẫn nằm trong danh sách text. Nhãn khả năng không đảm bảo có tuyến khả dụng; hãy chọn mô hình trong danh sách công khai và các tham số nó hỗ trợ. Đầu ra chỉ có âm thanh, TTS, STT và các chế độ tạo không tính theo token nằm ngoài quy ước này.

POST/v1/chat/completions

Xác thực

Authorizationbắt buộc
string · header

API key dưới dạng bearer token trong header Authorization.

Body

modelbắt buộc
string

Model cần dùng, có tiền tố nhà cung cấp, ví dụ "openai/gpt-4o". GET /v1/models liệt kê id như "claude-sonnet-4.6" và alias chuẩn như "anthropic/claude-sonnet-4.6". Yêu cầu chấp nhận cả hai dạng; dùng giá trị trong danh sách.

minLength: 1
Example: "openai/gpt-4o"
messagesbắt buộc
Message[]

Mảng các tin nhắn hội thoại, ít nhất một. Mỗi tin nhắn có role (system/user/assistant/tool) và content.

minLength: 1
content
string | ContentPart[]

Đặt âm thanh đầu vào trong messages[].content[]: {"type":"input_audio","input_audio":{"data":"<raw base64>","format":"wav"}}. Dùng base64 thô cho data, không dùng data URI; định dạng hỗ trợ tùy theo mô hình. Đừng dùng input_audio ở cấp cao nhất: nó không có cơ chế xác thực riêng và không có quy ước giữ trước hạn mức.

Example: [{"type":"input_audio","input_audio":{"data":"<raw base64>","format":"wav"}}]
models
string[]

Danh sách model dự phòng — thử theo thứ tự, chỉ dùng khi nhóm ứng viên của model chính đã cạn.

stream
boolean

true để phản hồi dạng luồng SSE; bỏ qua hoặc false trả về một phản hồi JSON đơn. Luồng âm thanh trả các đoạn data (âm thanh base64) và transcript trong choices[].delta.audio; phản hồi không streaming dùng choices[].message.audio. Mô hình cũng có thể cung cấp id và expires_at. Hãy gom các đoạn rồi giải mã theo audio.format; định dạng streaming tùy theo mô hình.

temperature
number

Nhiệt độ lấy mẫu — càng cao càng ngẫu nhiên, càng thấp càng xác định. Giá trị lấy mẫu được chuyển tiếp mà không kiểm tra phạm vi; model có thể giới hạn hoặc bỏ qua giá trị ngoài phạm vi hỗ trợ.

max_tokens
integer

Số token tối đa mà phản hồi có thể tạo ra.

max_completion_tokens
integer

Bí danh của max_tokens với ngữ nghĩa giống hệt.

top_p
number

Ngưỡng lấy mẫu nhân (nucleus sampling).

top_k
integer

Giới hạn lấy mẫu trong K token có xác suất cao nhất.

frequency_penalty
number

Phạt token dựa trên tần suất đã xuất hiện.

presence_penalty
number

Phạt token dựa trên việc đã từng xuất hiện hay chưa, bất kể số lần.

repetition_penalty
number

Hệ số phạt lặp lại — cơ chế riêng biệt với frequency/presence penalty.

min_p
number

Ngưỡng xác suất tối thiểu tương đối so với token có khả năng cao nhất.

top_a
number

Một cơ chế lấy mẫu cắt ngưỡng động khác, co giãn ngưỡng theo bình phương xác suất cao nhất.

seed
integer

Seed lấy mẫu xác định; không phải nhà cung cấp nào cũng đảm bảo khả năng tái tạo.

n
integer

Số lượng phản hồi cần tạo.

stop
string | string[]

Chuỗi khiến việc tạo dừng lại, tối đa 4.

tools
Tool[]

Danh sách định nghĩa tool/hàm mà model có thể gọi.

tool_choice
string | object

Kiểm soát việc model có/thế nào bị buộc gọi tool.

parallel_tool_calls
boolean

Có cho phép gọi tool song song khi cung cấp tools hay không. Mặc định true. Chỉ áp dụng cho mô hình họ OpenAI — bị loại bỏ âm thầm khi mô hình đích không phải của OpenAI, không phải lỗi.

response_format
object

Ràng buộc định dạng đầu ra, ví dụ {type:"json_object"} hoặc {type:"json_schema"} kèm JSON Schema.

logit_bias
object

Ánh xạ ID token đến giá trị thiên lệch [-100, 100] được thêm trước khi lấy mẫu. Chỉ áp dụng cho mô hình họ OpenAI — bị loại bỏ âm thầm khi mô hình đích không phải của OpenAI, không phải lỗi.

logprobs
boolean

Trả về log xác suất của mỗi token đầu ra. Chỉ áp dụng cho mô hình họ OpenAI — bị loại bỏ âm thầm khi mô hình đích không phải của OpenAI, không phải lỗi.

top_logprobs
integer

Số token có khả năng nhất trả về cho mỗi vị trí (cần logprobs: true). Chỉ áp dụng cho mô hình họ OpenAI — bị loại bỏ âm thầm khi mô hình đích không phải của OpenAI, không phải lỗi.

0–20
user
string

Định danh người dùng cuối cho giám sát và phát hiện lạm dụng. Không ảnh hưởng thanh toán. Chỉ áp dụng cho mô hình họ OpenAI — bị loại bỏ âm thầm khi mô hình đích không phải của OpenAI, không phải lỗi.

reasoning
object

Đối tượng điều khiển suy luận của model reasoning (ví dụ {effort, max_tokens}).

reasoning_effort
string

Trường viết tắt phẳng của reasoning.effort.

lowmediumhigh
include_reasoning
boolean

true trả về nội dung suy nghĩ trong message.reasoning (delta.reasoning khi streaming); false tắt suy nghĩ cho các mô hình suy nghĩ theo mặc định (xem phần reasoning), nên không bị tính phí suy nghĩ. Khi không gửi reasoning_effort, reasoning hay thinking, chỉ các mô hình đó suy nghĩ và trả về theo mặc định; mô hình khác chỉ trả về khi được yêu cầu.

image_config
object

Tùy chọn tạo/chỉnh sửa ảnh (dùng khi modalities gồm image).

modalities
string[]

Các modality đầu ra được yêu cầu. Có image sẽ định tuyến qua luồng tạo ảnh. Audio chat dùng ["text","audio"] cùng đối tượng audio và cần mô hình hỗ trợ đầu ra cả văn bản lẫn âm thanh.

textimageaudio
Example: ["text","audio"]
audio
object

Tùy chọn đầu ra âm thanh, dùng cùng modalities:["text","audio"]. Giá trị voice và format được hỗ trợ tùy theo mô hình.

Example: {"voice":"alloy","format":"wav"}
voice
string

Giọng nói mà mô hình hỗ trợ, ví dụ alloy.

Example: "alloy"
format
string

Định dạng đầu ra mà mô hình hỗ trợ, ví dụ wav; streaming thường dùng pcm16, tùy theo mô hình hỗ trợ.

Example: "wav"
plugins
object[]

Mảng plugin (ví dụ {id:"web"} để bật tìm kiếm web). Chỉ một số tuyến model hỗ trợ, nơi khác không có tác dụng; :online bật tìm kiếm web trên tuyến được hỗ trợ. Tìm kiếm qua plugins, :online hoặc web_search_options có thể phát sinh phí bổ sung từ upstream, tính trên khóa được dùng: khóa nền tảng của BazaarLink hoặc khóa BYOK của bạn.

POST /v1/chat/completions
curl https://api.bazaarlink.ai/v1/chat/completions \
  -H "Authorization: Bearer $BAZAARLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o",
    "messages": [{"role": "user", "content": "Explain quantum computing in one paragraph."}]
  }'
Ví dụ phản hồi

Thành công. BazaarLink chỉ trả về các trường trong danh sách cho phép công khai của phản hồi, chẳng hạn ID phản hồi do hệ thống tạo, model, choices và usage. Trường model tuân theo quy tắc hiển thị công khai của BazaarLink: sau khi phân giải bí danh, tên bạn yêu cầu có thể được giữ nguyên; với yêu cầu được định tuyến tự động, model thực sự xử lý yêu cầu sẽ được hiển thị. Trường provider và siêu dữ liệu chỉ thuộc upstream sẽ bị loại bỏ. usage.cost luôn là số tiền BazaarLink tự quyết toán.

{
  "id": "85e6f35c71a31f19-SJC",
  "object": "chat.completion",
  "created": 1740000000,
  "model": "openai/gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Quantum computing leverages quantum mechanics..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 74,
    "total_tokens": 102,
    "cost": 0.000648
  }
}
Support
Support
Hi! How can we help you?
Send a message and we'll get back to you soon.
Tạo cuộc trò chuyện — BazaarLink API