BazaarLinkBazaarLink
로그인
문서API 레퍼런스SDK 레퍼런스에이전트 사용법AI 스킬
채팅

채팅 생성

BazaarLink는 표준화된 응답을 반환하고 업스트림 전용 필드를 제거합니다. usage.cost는 이 요청에 대해 고객에게 청구된 USD 금액입니다. 응답 id 또는 x-request-id 헤더의 불투명한 BazaarLink 요청 ID로 GET /v1/generation을 호출하세요. 비스트리밍 응답에도 같은 ID가 x-generation-id로 포함됩니다. 통계가 표시되기까지 몇 초 걸릴 수 있으므로 404는 잠시 재시도하세요. 긴 비스트리밍 Chat, Messages, Responses 요청(약 12초 이상)은 JSON 본문 앞에 공백 keep-alive 패딩이 포함될 수 있습니다. 표준 JSON 파서는 선행 공백을 처리합니다. Audio chat은 이 엔드포인트를 사용합니다. 오디오 출력은 modalities:["text","audio"]와 audio:{voice,format}로 요청합니다. GET /v1/models?output_modalities=audio는 오디오 출력 모델만 걸러내며 오디오 입력을 지원하는 모든 모델을 포함하지 않습니다. 오디오를 입력받아 텍스트를 내놓는 모델은 text 목록에 남습니다. 기능 표시만으로 사용 가능한 경로가 있다고 보장하지 않으므로 공개 목록의 모델과 지원 파라미터를 선택하세요. 오디오 전용 출력, TTS, STT 및 토큰 과금이 아닌 생성 방식은 이 규약에 포함되지 않습니다.

POST/v1/chat/completions

인증

Authorization필수
string · header

Authorization 헤더에 Bearer 토큰으로 API 키를 전달합니다.

Body

model필수
string

사용할 모델. 공급자 접두사 형식, 예: "openai/gpt-4o". GET /v1/models에는 "claude-sonnet-4.6" 같은 id와 "anthropic/claude-sonnet-4.6" 같은 canonical alias가 표시됩니다. 요청은 두 형식을 모두 지원합니다.

minLength: 1
Example: "openai/gpt-4o"
messages필수
Message[]

대화 메시지 배열, 최소 하나. 각 메시지는 role(system/user/assistant/tool)과 content를 가집니다.

minLength: 1
content
string | ContentPart[]

오디오 입력은 messages[].content[]에 넣습니다: {"type":"input_audio","input_audio":{"data":"<raw base64>","format":"wav"}}. data에는 data URI가 아닌 원시 base64를 사용하며 지원 형식은 모델마다 다릅니다. 최상위 input_audio는 쓰지 마세요. 전용 검증과 크레딧 예약 규약이 없습니다.

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

대체 모델 목록 — 순서대로 시도되며, 기본 모델의 후보 그룹이 모두 소진된 후에만 사용됩니다.

stream
boolean

true이면 SSE로 응답을 스트리밍합니다. 생략하거나 false이면 단일 JSON 응답을 반환합니다. 오디오 스트림은 choices[].delta.audio로 data(base64 오디오)와 transcript 조각을 반환하고, 비스트리밍 응답은 choices[].message.audio를 사용합니다. 모델이 id와 expires_at를 함께 제공할 수도 있습니다. 조각을 이어 붙인 뒤 audio.format에 따라 디코딩하세요. 스트리밍 형식은 모델마다 다릅니다.

temperature
number

샘플링 온도 — 높을수록 무작위성이 커지고 낮을수록 결정적입니다. 샘플링 값은 범위 검증 없이 전달되며, 모델은 지원 범위를 벗어난 값을 제한하거나 무시할 수 있습니다.

max_tokens
integer

응답이 생성할 수 있는 최대 토큰 수.

max_completion_tokens
integer

max_tokens와 동일한 의미의 별칭입니다.

top_p
number

핵 샘플링(nucleus sampling) 임계값.

top_k
integer

샘플링을 확률이 가장 높은 K개의 토큰으로 제한합니다.

frequency_penalty
number

이미 등장한 빈도에 따라 토큰에 페널티를 부여합니다.

presence_penalty
number

횟수와 상관없이 이미 등장했는지 여부에 따라 토큰에 페널티를 부여합니다.

repetition_penalty
number

반복 페널티 계수 — frequency/presence penalty와는 별개의 메커니즘입니다.

min_p
number

가장 가능성 높은 토큰 대비 최소 확률 임계값.

top_a
number

또 다른 동적 컷오프 샘플링 메커니즘으로, 최고 확률의 제곱으로 임계값을 조정합니다.

seed
integer

결정론적 샘플링 시드. 모든 공급자가 재현성을 보장하지는 않습니다.

n
integer

생성할 응답 수.

stop
string | string[]

생성이 중단되는 시퀀스, 최대 4개.

tools
Tool[]

모델이 호출할 수 있는 도구/함수 정의 목록.

tool_choice
string | object

모델이 도구 호출을 강제받는지/어떻게 강제받는지 제어합니다.

parallel_tool_calls
boolean

tools가 제공될 때 병렬 도구 호출을 허용할지 여부. 기본값 true. OpenAI 계열 모델에만 적용 — 대상 모델이 OpenAI 자체 모델이 아니면 조용히 제거되며, 오류는 아닙니다.

response_format
object

출력 형식을 제한합니다. 예: {type:"json_object"} 또는 JSON Schema를 포함한 {type:"json_schema"}.

logit_bias
object

토큰 ID를 샘플링 전에 더해지는 [-100, 100] 범위의 바이어스 값에 매핑합니다. OpenAI 계열 모델에만 적용 — 대상 모델이 OpenAI 자체 모델이 아니면 조용히 제거되며, 오류는 아닙니다.

logprobs
boolean

각 출력 토큰의 로그 확률을 반환합니다. OpenAI 계열 모델에만 적용 — 대상 모델이 OpenAI 자체 모델이 아니면 조용히 제거되며, 오류는 아닙니다.

top_logprobs
integer

위치당 반환할 최고 확률 토큰 수(logprobs: true 필요). OpenAI 계열 모델에만 적용 — 대상 모델이 OpenAI 자체 모델이 아니면 조용히 제거되며, 오류는 아닙니다.

0–20
user
string

모니터링 및 남용 감지를 위한 최종 사용자 식별자. 과금에 영향 없음. OpenAI 계열 모델에만 적용 — 대상 모델이 OpenAI 자체 모델이 아니면 조용히 제거되며, 오류는 아닙니다.

reasoning
object

추론 모델의 사고 제어 객체(예: {effort, max_tokens}).

reasoning_effort
string

reasoning.effort의 평면 축약 필드.

lowmediumhigh
include_reasoning
boolean

true이면 message.reasoning(스트리밍에서는 delta.reasoning)에 생각 내용을 반환하고, false이면 기본으로 생각하는 모델의 생각을 끕니다(추론 섹션 참조). 따라서 생각 비용이 청구되지 않습니다. reasoning_effort, reasoning, thinking 중 아무것도 보내지 않으면 그 모델들만 기본으로 생각하고 반환하며, 다른 모델은 요청했을 때만 반환합니다.

image_config
object

이미지 생성/편집 옵션(modalities에 image가 포함될 때 사용).

modalities
string[]

요청된 출력 모달리티. image가 포함되면 이미지 생성 디스패치 경로를 거칩니다. Audio chat은 ["text","audio"]와 audio 객체를 함께 사용하며 텍스트와 오디오 출력을 모두 지원하는 모델이 필요합니다.

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

오디오 출력 옵션으로 modalities:["text","audio"]와 함께 사용합니다. 지원되는 voice와 format 값은 모델마다 다릅니다.

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

모델이 지원하는 음성. 예: alloy.

Example: "alloy"
format
string

모델이 지원하는 출력 형식. 예: wav. 스트리밍에는 pcm16이 흔히 쓰이지만 모델 지원 여부를 확인하세요.

Example: "wav"
plugins
object[]

플러그인 배열(예: {id:"web"}로 웹 검색 활성화). 일부 모델 라우트에서만 지원되며 그 외에는 효과가 없습니다. :online은 지원되는 라우트에서 웹 검색을 켭니다. plugins, :online 또는 web_search_options로 요청한 검색에는 업스트림 추가 비용이 발생할 수 있으며, 요청에 사용된 키(BazaarLink 플랫폼 키 또는 BYOK 키)에 부과됩니다.

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."}]
  }'
응답 예시

성공. BazaarLink는 자체 응답 ID, model, choices, usage처럼 공개 응답 허용 목록에 있는 필드만 반환합니다. model 필드는 BazaarLink의 공개 표시 규칙을 따릅니다. 별칭을 해석한 뒤에도 요청한 이름이 유지될 수 있고, 자동 라우팅된 요청에는 실제 처리 모델이 표시됩니다. provider 필드와 기타 업스트림 전용 메타데이터는 제거됩니다. usage.cost는 항상 BazaarLink가 정산한 금액입니다.

{
  "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.
채팅 생성 — BazaarLink API