- OpenAI 호환 API: 대부분의 경우에 적합하며, 동일한 인터페이스로 여러 모델을 호출합니다.
- 제공업체 네이티브 API: 통합 API에 노출되지 않은 상위 전용 기능이 필요한 고급 시나리오에 적합합니다.
OpenAI 호환 API
YouRouter를 사용하는 가장 단순하고 유연한 방법입니다. 익숙한 OpenAI SDK를 그대로 사용하면서 코드 변경을 최소화해 모델과 제공업체를 전환할 수 있습니다.기본 사용법
아래 예시는 기본 chat completion 요청을 보내는 방법을 보여 줍니다.model과 vendor 요청 헤더를 바꿔 다른 모델과 상위 제공업체를 지정할 수 있습니다.
고급 기능
다중 턴 대화
연속 대화를 유지하려면 전체 대화 기록을messages 배열에 넣으면 됩니다.
스트리밍 응답
챗봇 등 실시간 상호작용에서는 스트리밍으로 생성과 동시에 응답을 받을 수 있습니다. 요청에stream=True를 전달하세요.
함수 호출 / 도구 호출
모델이 도구나 함수를 호출해 외부 시스템과 상호작용하도록 할 수 있습니다. 일반적으로 다음 단계를 거칩니다.- 도구 정의가 포함된 요청을 보냅니다.
- 모델이 호출하려는 도구를 반환합니다.
- 코드에서 실제로 도구를 실행합니다.
- 실행 결과를 모델에 다시 보내 최종 자연어 응답을 생성합니다.
Vision(멀티모달 완성)
많은 모델이 멀티모달 입력을 지원하며 요청에 이미지를 직접 첨부할 수 있습니다. 이미지 설명, 분석, 시각 질의응답 등에 적합합니다.gpt-4o, claude-3-5-sonnet-20240620, gemini-1.5-pro-latest 등이 시각 기능을 지원합니다.
매개변수
| 매개변수 | 타입 | 설명 | 기본값 |
|---|---|---|---|
model | string | 사용할 모델 ID. | 필수 |
messages | array | 현재까지의 대화 메시지 배열. | 필수 |
max_tokens | integer | 생성에 허용되는 최대 토큰 수. | null |
temperature | number | 샘플링 온도, 보통 0~2. | 1 |
top_p | number | nucleus sampling 등 다른 샘플링 제어. | 1 |
n | integer | 입력 메시지당 생성할 completion 개수. | 1 |
stream | boolean | true이면 ChatGPT처럼 증분 메시지로 반환. | false |
stop | string or array | 최대 4개의 중지 시퀀스, 일치 시 생성 중단. | null |
presence_penalty | number | 토큰 출현 여부에 따라 새 토큰 확률 조정. | 0 |
frequency_penalty | number | 토큰 빈도에 따라 새 토큰 확률 조정. | 0 |
logit_bias | map | 지정 토큰의 출현 확률 조정. | null |
user | string | 최종 사용자를 나타내는 고유 ID, 모니터링·오용 탐지에 사용. | null |
tool_choice | string or object | 도구 호출 여부 및 방식 제어. | none |
tools | array | 모델이 호출할 수 있는 도구 목록. | null |
제공업체 네이티브 API
고급 시나리오에서 OpenAI 호환 통합 API에 노출되지 않은 제공업체 전용 필드나 기능이 필요하면 해당 제공업체의 네이티브 인터페이스를 직접 호출할 수 있습니다. 이 경우vendor 요청 헤드를 반드시 포함해야 합니다.
YouRouter는 전체 요청 본문과
Authorization을 제외한 모든 요청 헤더를 상위로 그대로 전달합니다. 자세한 내용은 요청 전달을 참고하세요.Gemini (Google)
Generate Content
Endpoint:POST /v1/projects/cognition/locations/us/publishers/google/models/{model}:generateContent
Safety Settings
요청에safetySettings를 포함해 콘텐츠 안전 임계값을 설정할 수 있습니다. 전체 카테고리와 임계값 목록은 공식 Google AI 문서를 참고하세요.
Claude (Anthropic)
Messages API
Endpoint:POST /v1/messages
Claude 도구 호출
Claude에 도구 집합을 제공하면 사용자 요청에 따라 호출 시점을 결정합니다. 전체 흐름은 여전히 다단계 대화입니다. 코드에서 도구를 실행한 뒤 결과를 Claude에 다시 전달합니다. 아래는 전체 도구 호출 라이프사이클 예시입니다.모범 사례
- 라우팅: 프로덕션에서는
auto사용을 권장해 가용성을 높이세요. 모델 버전 고정이나 전용 기능이 필요할 때만 제공업체를 고정하세요. 자세한 내용은 라우팅 가이드를 참고하세요. - 오류 처리: 네트워크 문제와 제공업체 장애는 언제든 발생할 수 있으므로, 특히 장시간 작업에서는 신뢰할 수 있는 오류 처리와 지수 백오프 재시도를 구현하세요.
- 스트리밍: 사용자 대면 인터랙티브 앱은 스트리밍을 켜 실시간성과 경험을 개선하는 것이 좋습니다.
- 시스템 프롬프트: 품질 높은 system prompt는 모델의 행동, 어조, 스타일에 큰 영향을 미치므로 지속적으로 테스트하고 다듬으세요.
- 토큰 관리: 입력 컨텍스트와 출력 토큰 한계를 항상 염두에 두고, 응답의
usage로 비용과 잘림 위험을 추적하세요.