# 외부 API 추가

모델 서빙에 외부 API를 추가하면, 자체 GPU 서버 없이도 OpenAI, Anthropic, Google Vertex AI 등 외부 AI 서비스를 GenOS 서빙 엔드포인트로 활용할 수 있습니다. 트래픽 분배를 통해 내부 모델과 외부 API를 함께 운영할 수 있습니다.

참고: 외부 API 추가 기능은 LLM, VLM, 임베딩 등 서빙 유형에 관계없이 동일하게 동작합니다.

#### 외부 API 추가하기

<figure><img src="/files/JXeJC6AOo2MjJKPaqeAs" alt=""><figcaption></figcaption></figure>

모델 서빙 상세 페이지에서 **\[외부 API 추가 +]** 버튼을 클릭합니다.

외부 API 추가 모달 화면

외부 API 추가 모달이 표시됩니다. API 포맷을 선택하고 필요한 정보를 입력합니다.

#### API 포맷 선택

API 포맷 드롭다운 화면

API 포맷 드롭다운에서 연동할 서비스에 맞는 포맷을 선택합니다.

* **OpenAI API** (기본값): OpenAI 및 호환 서비스 연동 시 사용합니다.
* **Anthropic API**: Anthropic Claude 시리즈 모델 연동 시 사용합니다.
* **Google Vertex AI**: Google Cloud Vertex AI 연동 시 사용합니다.

#### OpenAI API 설정

<figure><img src="/files/FBTtEVBk9ZvE5zkGYeek" alt=""><figcaption></figcaption></figure>

OpenAI API는 기본 선택값입니다. OpenAI 공식 API뿐 아니라 OpenAI API 호환 형식을 지원하는 서드파티 서비스에도 사용할 수 있습니다.

**API URL** (필수) 외부 API 엔드포인트 URL을 입력합니다.

**모델** (필수) 사용할 모델명을 입력합니다. (예: gpt-4o, gpt-4-turbo)

**토큰 요금 — 입력 / 출력** (필수) 입력/출력 토큰 요금을 각각 설정합니다. 단위는 원 / 100만 토큰입니다. 기본값은 0입니다.

**차감 크레딧 — 입력 / 출력** (필수) 입력/출력 토큰 차감 크레딧을 각각 설정합니다. 단위는 크레딧 / 100만 토큰입니다. 기본값은 0입니다.

**Bearer Token** (필수) API 인증 토큰을 입력합니다.

**최대 큐 크기** (필수) 동시 대기 가능한 최대 요청 수입니다. 기본값은 100입니다.

**최대 동시 실행 수** (필수) 동시에 처리 가능한 최대 요청 수입니다. 기본값은 10입니다.

**headers / body / params** (선택) 커스텀 HTTP 헤더, 요청 바디 추가 설정, 쿼리 파라미터를 JSON 형식으로 입력합니다. 기본값은 빈 객체({})이며, 별도 설정이 필요 없으면 수정하지 않아도 됩니다.

#### Anthropic API 설정

<figure><img src="/files/QWjhAZAQjvdxruh4cTxK" alt=""><figcaption></figcaption></figure>

Anthropic Claude 시리즈 모델을 연동할 때 사용합니다. 입력 필드 구성은 OpenAI API와 동일하며, 내부적으로 Anthropic Messages API 형식으로 요청이 변환됩니다.

**API URL** (필수) Anthropic API 엔드포인트 URL을 입력합니다.

**모델** (필수) 사용할 모델명을 입력합니다. (예: claude-3-5-sonnet, claude-3-opus)

**토큰 요금 — 입력 / 출력** (필수) 입력/출력 토큰 요금을 각각 설정합니다. 단위는 원 / 100만 토큰입니다. 기본값은 0입니다.

**차감 크레딧 — 입력 / 출력** (필수) 입력/출력 토큰 차감 크레딧을 각각 설정합니다. 단위는 크레딧 / 100만 토큰입니다. 기본값은 0입니다.

**Bearer Token** (필수) Anthropic API Key를 입력합니다.

**최대 큐 크기** (필수) 동시 대기 가능한 최대 요청 수입니다. 기본값은 100입니다.

**최대 동시 실행 수** (필수) 동시에 처리 가능한 최대 요청 수입니다. 기본값은 10입니다.

**headers / body / params** (선택) 커스텀 HTTP 헤더, 요청 바디 추가 설정, 쿼리 파라미터를 JSON 형식으로 입력합니다. 기본값은 빈 객체({})입니다.

#### Google Vertex AI 설정

<figure><img src="/files/Kxhc7ynhzvlF3b73eTyy" alt=""><figcaption></figcaption></figure>

Google Cloud Vertex AI를 연동할 때 사용합니다. API URL과 Bearer Token 대신 GCP 전용 인증 필드가 제공됩니다.

**인증 방식** (필수) 라디오 버튼으로 선택합니다. 기본값은 Service Account JSON입니다.

* **Workload Identity**: GKE 클러스터의 Workload Identity를 사용합니다. JSON 키 파일이 불필요합니다.
* **Service Account JSON**: GCP 서비스 계정 JSON 키 내용을 직접 붙여넣습니다.

Workload Identity 선택 시 Service Account JSON 필드는 숨겨집니다.

**GCP Project ID** (필수) Google Cloud 프로젝트 ID를 입력합니다. (예: my-gcp-project-id)

**GCP Location** (필수) Vertex AI 배포 리전을 드롭다운에서 선택합니다. 기본값은 US Central (Iowa)입니다.

<figure><img src="/files/dZjNPVqFICE96QFnlAgc" alt=""><figcaption></figcaption></figure>

**Service Account JSON** (필수, Service Account JSON 선택 시에만 표시) GCP 서비스 계정 JSON 키 내용을 붙여넣습니다.

**모델** (필수) 사용할 Vertex AI 모델명을 입력합니다. (예: gemini-1.5-pro, gemini-1.5-flash)

**토큰 요금 — 입력 / 출력** (필수) 입력/출력 토큰 요금을 각각 설정합니다. 단위는 원 / 100만 토큰입니다. 기본값은 0입니다.

**차감 크레딧 — 입력 / 출력** (필수) 입력/출력 토큰 차감 크레딧을 각각 설정합니다. 단위는 크레딧 / 100만 토큰입니다. 기본값은 0입니다.

**최대 큐 크기** (필수) 동시 대기 가능한 최대 요청 수입니다. 기본값은 100입니다.

**최대 동시 실행 수** (필수) 동시에 처리 가능한 최대 요청 수입니다. 기본값은 10입니다.

**headers / body / params** (선택) 커스텀 HTTP 헤더, 요청 바디 추가 설정, 쿼리 파라미터를 JSON 형식으로 입력합니다. 기본값은 빈 객체({})입니다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://genos-docs.gitbook.io/default/v1.8.4/basic-tutorials/guides/llm/model-serving/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
