> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Chat Completion

> 비스트리밍, 스트리밍, 도구, 멀티모달, 구조화된 출력 요청을 보냅니다.

프록시는 JSON 형식의 Chat Completion 요청 본문을 받습니다. `model`과 `messages`는 필수 필드이며, 나머지 필드는 선택한 공급자가 지원하는 경우 그대로 전달됩니다.

```bash theme={"system"}
curl https://proxy.training.wandb.ai/v1/chat/completions \
  -H "Authorization: Bearer $WANDB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ticket-classifier",
    "messages": [{"role": "user", "content": "Classify this request"}],
    "temperature": 0,
    "metadata": {"wandb.entity": "your-team"}
  }'
```

<h2 id="streaming">
  스트리밍
</h2>

평소처럼 `stream: true`를 설정하세요. 공급자의 서버 전송 이벤트(server-sent events)는 `[DONE]`을 포함해 도착하는 즉시 전달됩니다. 트레이스되는 스트림에서는 토큰 수를 집계할 수 있도록 프록시가 내부적으로 스트림 사용량 정보를 요청할 수 있습니다. 이 동작은 클라이언트에 표시되는 메시지 콘텐츠에 영향을 주지 않습니다.

스트리밍 요청에는 [응답 캐싱](/ko/model-distillation/proxy/response-caching)을 사용할 수 없습니다.

<h2 id="tools-and-structured-output">
  도구 및 구조화된 출력
</h2>

도구 정의, 도구 선택, 응답 형식 JSON 스키마, 채팅 템플릿 제어, 로그 확률, 멀티모달 콘텐츠, 공급자 확장, 추론 필드는 원시 트레이스 계약에 그대로 보존됩니다. 알 수 없는 요청 필드는 라우팅 과정에서 대체되거나 제거되지 않는 한 그대로 전달됩니다.

<h2 id="precedence">
  우선순위
</h2>

프로젝트 라우트에서 실제로 공급자에게 보내는 요청은 다음 순서로 구성됩니다. 요청에서 [응답 캐싱](/ko/model-distillation/proxy/response-caching)을 활성화하면 프록시는 2단계 이후에 캐시를 확인하고, 캐시 적중 시 나머지 단계를 건너뜁니다.

1. 클라이언트 본문에서 시작합니다.
2. 프록시 모델 이름을 선택된 공급자 모델로 바꿉니다.
3. 대상의 `params_override` 값을 병합합니다. 값이 충돌하면 이 값이 우선합니다.
4. 공급자로 전달하기 전에 `wandb.*` 라우팅 메타데이터를 제거합니다.
5. 필요한 경우 트레이스를 지원하는 스트림 옵션을 추가합니다.

프록시는 자체적으로 구성한 헤더 외에는 클라이언트 헤더를 전달하지 않습니다. 따라서 쿠키, 공급자 API 키, 조직 헤더, 관련 없는 인증 헤더가 선택된 공급자에게 유출되지 않습니다.

<h2 id="vapi-requests">
  Vapi 요청
</h2>

프록시는 Vapi의 요청 래퍼를 인식하여, 요청을 전달하기 전에 Vapi 전용 필드를 제거하고 `call.id`를 대화 식별자의 대체값으로 사용합니다. 단, `wandb.thread_id`를 명시적으로 지정한 경우에는 해당 값이 우선합니다.
