이 문서에서는 OpenAI 호환 Chat Completions API를 사용하여 Vertex AI 모델과 상호작용하는 방법을 보여줍니다. 이 문서에서는 다음 주제를 다룹니다.
- 지원되는 모델: API와 호환되는 Gemini 및 자체 배포 Model Garden 모델을 알아봅니다.
- 지원되는 매개변수: 사용할 수 있는 표준 OpenAI 매개변수 목록을 검토합니다.
- 멀티모달 입력 매개변수: 오디오 및 이미지와 같은 멀티모달 입력을 사용하는 방법을 알아봅니다.
- Gemini 관련 매개변수:
extra_body
및extra_part
필드를 통해 Gemini 관련 기능을 사용하는 방법을 알아봅니다.
Chat Completions API는 OpenAI 호환 엔드포인트로, OpenAI Python 및 REST 라이브러리를 사용하여 Vertex AI의 Gemini와 상호작용할 수 있습니다. 이미 OpenAI 라이브러리를 사용하고 있다면 이 API를 사용하여 OpenAI 모델과 Vertex AI 호스팅 모델 간에 전환하여 기존 코드를 최소한으로 변경하면서 출력, 비용, 확장성을 비교할 수 있습니다. OpenAI 라이브러리를 사용하지 않는 경우 Google 생성형 AI SDK를 사용하는 것이 좋습니다.
지원되는 모델
Chat Completions API는 Gemini 모델과 Model Garden에서 자체 배포한 일부 모델을 모두 지원합니다.
Gemini 모델
Chat Completions API는 다음 Gemini 모델을 지원합니다.
Model Garden의 자체 배포 모델
Hugging Face 텍스트 생성 인터페이스 (HF TGI) 및 Vertex AI Model Garden 사전 빌드된 vLLM 컨테이너는 Chat Completions API를 지원합니다. 그러나 이러한 컨테이너에 배포된 모든 모델이 Chat Completions API를 지원하는 것은 아닙니다. 다음 표에는 컨테이너별로 가장 많이 지원되는 모델이 나와 있습니다.
HF TGI |
vLLM |
---|---|
지원되는 매개변수
Google 모델의 경우 Chat Completions API는 다음 OpenAI 파라미터를 지원합니다. 각 파라미터에 대한 설명은 OpenAI의 채팅 완성 생성 문서를 참고하세요. 서드 파티 모델의 파라미터 지원은 모델마다 다릅니다. 지원되는 매개변수를 확인하려면 모델의 문서를 참조하세요.
messages |
|
model |
|
max_completion_tokens |
max_tokens 의 별칭입니다. |
max_tokens |
|
n |
|
frequency_penalty |
|
presence_penalty |
|
reasoning_effort |
대답에 사용되는 시간과 토큰 수를 구성합니다.
reasoning_effort 또는 extra_body.google.thinking_config 중 하나만 지정할 수 있습니다.
|
response_format |
|
seed |
GenerationConfig.seed 에 해당합니다. |
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
web_search_options |
GoogleSearch 도구에 해당합니다. 하위 옵션은 지원되지 않습니다. |
function_call |
이 필드는 지원 중단되었지만 이전 버전과의 호환성을 위해 지원됩니다. |
functions |
이 필드는 지원 중단되었지만 이전 버전과의 호환성을 위해 지원됩니다. |
지원되지 않는 파라미터를 전달하면 무시됩니다.
멀티모달 입력 매개변수
Chat Completions API는 일부 멀티모달 입력을 지원합니다.
input_audio |
|
image_url |
|
일반적으로 data
매개변수는 URI이거나 MIME 유형과 base64로 인코딩된 바이트의 조합("data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>"
형식)일 수 있습니다.
MIME 유형의 전체 목록은 GenerateContent
을 참고하세요.
OpenAI의 base64 인코딩에 대한 자세한 내용은 문서를 참고하세요.
사용법은 멀티모달 입력 예시를 참고하세요.
Gemini 관련 매개변수
OpenAI 모델에서는 지원하지 않지만 Gemini에서는 지원하는 기능을 사용하려면 extra_content
또는 extra_body
필드 내에서 매개변수로 전달하세요. 이러한 필드 외부에서 이러한 기능을 전달하면 무시됩니다.
기능 extra_body
개
Gemini 전용 extra_body
기능을 사용하려면 google
필드에 포함하세요.
{
...,
"extra_body": {
"google": {
...,
// Add extra_body features here.
}
}
}
safety_settings |
이는 Gemini의 SafetySetting 에 해당합니다. |
cached_content |
이는 Gemini의 GenerateContentRequest.cached_content 에 해당합니다. |
thinking_config |
이는 Gemini의 GenerationConfig.ThinkingConfig 에 해당합니다. |
thought_tag_marker |
사고가 지원되는 모델의 경우 모델의 사고를 대답과 분리하는 데 사용됩니다. 지정하지 않으면 모델의 생각에 태그가 반환되지 않습니다. 있는 경우 후속 질문에서는 생각 태그를 삭제하고 컨텍스트에 맞게 생각을 적절하게 표시합니다. 이렇게 하면 후속 쿼리에 적절한 컨텍스트를 유지할 수 있습니다. |
기능 extra_part
개
extra_part
필드를 사용하면 각 Part
의 추가 설정을 지정할 수 있습니다. Gemini 전용 extra_part
기능을 사용하려면 google
필드에 포함하세요.
{
...,
"extra_part": {
"google": {
...,
// Add extra_part features here.
}
}
}
extra_content |
무시해서는 안 되는 Gemini 전용 콘텐츠를 추가하는 필드입니다. |
thought |
필드가 생각인지 명시적으로 표시합니다 (thought_tag_marker 보다 우선함). 도구 호출이 생각의 일부인지 여부를 지정하는 데 사용해야 합니다. |
다음 단계
- OpenAI 호환 구문을 사용한 인증 및 사용자 인증 정보에 대해 자세히 알아보세요.
- OpenAI 호환 구문으로 Chat Completions API를 호출하는 예시 참조
- OpenAI 호환 구문으로 Inference API를 호출하는 예시 참조
- OpenAI 호환 구문으로 Function Calling API를 호출하는 예시 참조
- Gemini API 자세히 알아보기
- Azure OpenAI에서 Gemini API로 마이그레이션에 대해 자세히 알아보기