콘텐츠로 이동

클라우드 API 프로바이더 (Gemini, Bedrock, Azure)

Google Gemini(Vertex AI 포함), AWS Bedrock, Azure OpenAI 설정 방법.

이 페이지에서는 API 키 하나만으로는 설정할 수 없는 세 가지 하이퍼스케일러 모델 백엔드를 다룹니다. Google Gemini(직접 API, Gemini CLI OAuth, Vertex AI), AWS Bedrock(SigV4 또는 Bearer 인증, 교차 리전 추론 프로파일), Azure OpenAI(리소스/배포 범위 엔드포인트)입니다. 또한 default_providerapi_url을 따로 수정하지 않고도 커스텀 또는 Codex 스타일 엔드포인트를 지정할 수 있는 [model_providers] 네임드 프로파일 구성 방식도 설명합니다.

모델이 GCP, AWS, 또는 Azure 뒤에 위치한 경우 이 페이지를 참고하세요. 키 하나로 바로 사용할 수 있는 간단한 프로바이더는 프로바이더 빠른 시작을 먼저 확인하고, 전체 백엔드 목록은 프로바이더 카탈로그를 참고하세요.

gemini 프로바이더는 다양한 인증 방식을 지원하는 완전한 Google 통합입니다. default_provider = "gemini" 또는 -p gemini CLI 플래그로 선택합니다.

default_provider = "gemini"
default_model = "gemini-2.5-pro"
Terminal window
revka agent -p gemini --model gemini-2.5-pro -m "Hello"

추론 모델의 thinking 과정은 최종 응답에서 필터링되므로, Gemini 추론 모델에서 깔끔한 텍스트 결과를 받을 수 있습니다.

프로바이더는 다음 순서로 자격 증명을 확인하며, 처음으로 성공한 방식을 사용합니다.

  1. Vertex AI ADC (GOOGLE_GENAI_USE_VERTEXAItrue/1이고 GOOGLE_CLOUD_PROJECT가 설정된 경우 활성화) — 명시적 API 키보다 먼저 확인합니다.
  2. config.toml에 명시된 API 키 (api_key).
  3. GEMINI_API_KEY 환경 변수.
  4. GOOGLE_API_KEY 환경 변수.
  5. revka auth login --provider gemini로 저장된 관리형 OAuth 프로파일.
  6. ~/.gemini/oauth_creds.json에서 자동으로 검색되는 Gemini CLI OAuth 토큰.
필드위치설명
GEMINI_API_KEY환경 변수직접 API 키. ?key= 쿼리 파라미터로 전달됩니다.
GOOGLE_API_KEY환경 변수직접 API 키의 대체 이름.
GOOGLE_CLOUD_PROJECT환경 변수OAuth/Vertex 요청에 사용되는 GCP 프로젝트 ID (GOOGLE_CLOUD_PROJECT_ID로 폴백).
GOOGLE_APPLICATION_CREDENTIALS환경 변수Application Default Credentials(ADC)용 서비스 계정 JSON 경로.

Gemini는 인증 방식에 따라 두 가지 다른 엔드포인트를 사용합니다.

  • API 키 사용자는 공개 엔드포인트 https://generativelanguage.googleapis.com/v1beta?key=… 형태로 키를 전달합니다.
  • OAuth 사용자(Gemini CLI 또는 관리형 프로파일)는 Google 내부 Code Assist 엔드포인트 https://cloudcode-pa.googleapis.com/v1internalAuthorization: Bearer … 형태로 토큰을 전달합니다.

OAuth 토큰은 프로세스 내에서 자동으로 갱신되므로, 장시간 실행되는 게이트웨이도 수동 재인증 없이 계속 작동합니다.

공개 API 대신 Vertex AI를 통해 Gemini를 실행하려면, Vertex 환경을 구성하고 default_provider = "gemini"를 유지합니다.

Terminal window
export GOOGLE_GENAI_USE_VERTEXAI=1
export GOOGLE_CLOUD_PROJECT="my-gcp-project"
export GOOGLE_CLOUD_LOCATION="us-central1" # default region

Vertex AI는 호스트에서 Google 자격 증명을 사용할 수 있어야 합니다.

  • Cloud Run, GCE, 또는 GKE에서는 서비스 계정에 Vertex 접근 권한이 있으면 GCP 메타데이터 서버가 자격 증명을 자동으로 제공합니다(키 불필요).
  • GCP 외부 환경에서는 ADC가 자격 증명을 확인할 수 있도록 GOOGLE_APPLICATION_CREDENTIALS를 서비스 계정 JSON으로 설정해야 합니다. 이 설정 없이는 GCP 외부 호스트에서 Vertex AI에 접근할 수 없습니다.

bedrock 프로바이더는 AWS Bedrock Converse API를 사용합니다. 네이티브 툴 호출과 프롬프트 캐싱(cachePoint)을 지원하며, AWS SDK 의존성 없이 요청에 직접 서명합니다. default_provider = "bedrock" 또는 -p bedrock으로 선택합니다.

default_provider = "bedrock"
default_model = "anthropic.claude-sonnet-4-5-20250929-v1:0"

각 요청은 리전별 Bedrock Runtime 엔드포인트로 HTTPS POST됩니다.

POST https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/converse

기본 리전은 us-east-1입니다. 기본 출력은 4096 토큰으로 제한되며, 설정에서 provider_max_tokens로 변경할 수 있습니다.

Bedrock은 두 가지 인증 모드를 지원하며, Bearer 토큰이 있으면 항상 우선 적용됩니다.

모드조건자격 증명
Bearer 토큰BEDROCK_API_KEY가 설정된 경우토큰이 Authorization: Bearer …로 전달됩니다. 설정 시 권장되는 가장 간단한 방식입니다.
SigV4 서명BEDROCK_API_KEY가 없는 경우bedrock 서명 서비스에 대해 표준 AWS 액세스 키/시크릿 키로 서명합니다.

SigV4의 경우 환경 변수에서 자격 증명을 먼저 확인하고, 없으면 EC2 인스턴스 메타데이터를 확인합니다.

변수설명
AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEYSigV4용 장기 액세스 키.
AWS_SESSION_TOKEN임시/STS 세션 토큰(역할 가정(assumed-role) 자격 증명 사용 시).
AWS_REGION 또는 AWS_DEFAULT_REGION서명/엔드포인트 리전. 기본값: us-east-1.
BEDROCK_API_KEY선택적 Bearer 토큰. 설정 시 SigV4를 대체합니다.

IAM 역할이 연결된 EC2, ECS, 또는 Lambda에서는 EC2 IMDSv2(인스턴스 메타데이터 서비스)를 통해 임시 자격 증명을 자동으로 검색하므로, 환경 변수에 키를 설정하지 않아도 됩니다.

처리량을 높이기 위해 여러 리전에 부하를 분산하는 Bedrock 교차 리전 추론 프로파일을 지원합니다. 사용하려면 모델 ID에 리전 그룹 접두사를 포함하세요. 예를 들어, 미국 추론 프로파일에는 us. 접두사를 사용합니다.

default_provider = "bedrock"
default_model = "us.anthropic.claude-sonnet-4-5-20250929-v1:0"

접두사는 별도 설정이 아니라 모델 ID의 일부입니다. 접두사를 생략하면 추론 프로파일 대신 리전 모델에 직접 요청합니다.

azure-openai 프로바이더는 모델 이름이 아닌 리소스와 배포 단위로 범위가 지정된 Azure OpenAI Service Chat Completions 엔드포인트를 호출합니다. 네이티브 툴 호출과 추론 콘텐츠 처리를 지원합니다. default_provider = "azure-openai" 또는 -p azure로 선택합니다. 허용 별칭: azure, azure-openai, azure_openai.

default_provider = "azure-openai"
default_model = "gpt-4o"

엔드포인트와 자격 증명은 환경 변수로 설정합니다.

Terminal window
export AZURE_OPENAI_API_KEY="<your-key>"
export AZURE_OPENAI_RESOURCE="my-resource"
export AZURE_OPENAI_DEPLOYMENT="gpt-4o"
export AZURE_OPENAI_API_VERSION="2024-08-01-preview" # optional
변수기본값설명
AZURE_OPENAI_API_KEYAPI 키. Bearer 토큰이 아닌 api-key 요청 헤더로 전달됩니다.
AZURE_OPENAI_RESOURCEmy-resourceAzure 리소스 이름 — 엔드포인트 호스트명의 <resource> 부분.
AZURE_OPENAI_DEPLOYMENTgpt-4o배포 이름. 실제로 요청을 처리하는 모델은 default_model이 아닌 이 값으로 결정됩니다.
AZURE_OPENAI_API_VERSION2024-08-01-previewAPI 버전. Microsoft가 새 GA 버전을 출시하면 업데이트하세요.

Revka는 위 값들로 요청 URL을 구성합니다.

POST https://{resource}.openai.azure.com/openai/deployments/{deployment}/chat/completions?api-version={version}
api-key: {AZURE_OPENAI_API_KEY}

[model_providers]를 사용하면 config.toml네임드 프로바이더 프로파일을 정의할 수 있습니다. Codex 앱 서버 호환 레이아웃이며, default_provider에 이름을 지정하는 것만으로 해당 프로파일을 활성화할 수 있습니다. 활성 프로바이더가 프로파일 키와 일치하면 Revka는 최상위 설정 위에 해당 프로파일 설정을 적용합니다(명시적으로 설정한 최상위 값이 항상 우선합니다).

default_provider = "my-endpoint"
[model_providers.my-endpoint]
base_url = "https://your-api.example.com/v1"
api_path = "/chat/completions" # optional path override
max_tokens = 8192 # optional output cap
wire_api = "chat_completions" # or "responses"
필드타입설명
namestring전환할 프로바이더 타입/이름 (예: openai, 커스텀 프로파일 ID). base_url이 설정된 경우 선택 사항.
base_urlURL (http/https)OpenAI 호환 베이스 URL. name이 설정된 경우 선택 사항.
api_pathstring기본 /v1/chat/completions 대신 사용할 커스텀 요청 경로 접미사.
wire_apistring프로토콜 변형: chat_completions 또는 responses.
requires_openai_authbooltrue이면 키가 없을 때 OpenAI 인증 정보(OPENAI_API_KEY 또는 ~/.codex/auth.json)를 로드합니다.
azure_openai_resourcestringAzure 스타일 프로파일용 Azure 리소스 이름.
azure_openai_deploymentstringAzure 배포 이름.
azure_openai_api_versionstringAzure API 버전 (기본값: 2024-08-01-preview).
max_tokensinteger최대 출력 토큰 수. 플랫폼 기본값이 모델의 실제 한계를 초과할 때 유용합니다.

각 프로파일은 name 또는 base_url 중 하나 이상을 반드시 정의해야 하며, base_url은 유효한 http/https URL이어야 합니다. 그렇지 않으면 로드 시 설정 유효성 검사가 실패합니다. 활성화 방식은 다음과 같습니다.

  • wire_api = "responses"이면 OpenAI Codex Responses API 경로로 요청을 라우팅합니다.
  • 그렇지 않고 name이 프로파일 키와 다르면 Revka가 default_providername으로 전환합니다.
  • 그렇지 않으면 base_url만으로 해당 프로파일을 custom:<base_url> 엔드포인트로 활성화합니다.

default_provider 한 줄만 변경해 여러 엔드포인트 정의를 나란히 관리하고 전환하는 가장 깔끔한 방법입니다. 순수 custom: / anthropic-custom: 엔드포인트와 extra_headers에 대해서는 로컬, 셀프 호스팅 및 커스텀 엔드포인트를 참고하세요.