4AICode의 Gemini 모델은 OpenAI 호환 chat/completions 프로토콜을 사용합니다. 자신의 sk-4ai-... 토큰만 쓰고 model을 google/gemini-*로 바꾸면 됩니다. 플랫폼은 가용성에 따라 AI Studio 또는 Vertex AI로 라우팅합니다.
사용 가능한 모델
| Model | 권장 용도 |
|---|---|
google/gemini-3.1-pro-preview | 복잡한 추론, 긴 컨텍스트, 프리뷰 기능 |
google/gemini-3-flash-preview | 더 빠른 응답, 프리뷰 기능 |
google/gemini-2.5-flash | 일상 Q&A, 가벼운 코딩, 저비용 |
google/gemini-2.5-pro | 복잡한 작업, 코드 분석, 일관된 품질 |
모델 라우팅
요청에서 google/gemini-* 모델 이름을 사용하세요. 업스트림 라우팅은 플랫폼이 관리하며, 현재 모델 가용성과 가격은 콘솔에 표시됩니다. 업스트림 할당량 제한이나 서비스 중단이 가용성에 영향을 줄 수 있습니다.
Python
from openai import OpenAI
client = OpenAI(
base_url="https://relay.4aicode.com/v1",
api_key="sk-4ai-xxxxxxxxxxxxxxxx",
)
resp = client.chat.completions.create(
model="google/gemini-2.5-flash",
messages=[
{"role": "user", "content": "Introduce Gemini in one sentence"},
],
)
print(resp.choices[0].message.content)
TypeScript / Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://relay.4aicode.com/v1",
apiKey: "sk-4ai-xxxxxxxxxxxxxxxx",
});
const resp = await client.chat.completions.create({
model: "google/gemini-2.5-flash",
messages: [{ role: "user", content: "Write a TypeScript hello world" }],
});
console.log(resp.choices[0].message.content);
curl
curl https://relay.4aicode.com/v1/chat/completions \
-H "Authorization: Bearer sk-4ai-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-2.5-flash",
"messages": [
{"role": "user", "content": "ping"}
]
}'
스트리밍 출력
curl https://relay.4aicode.com/v1/chat/completions \
-H "Authorization: Bearer sk-4ai-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-2.5-flash",
"stream": true,
"messages": [
{"role": "user", "content": "Write a Go hello world"}
]
}'
응답 형식은 OpenAI SSE 그대로입니다.
data: {"choices":[{"delta":{"content":"Hello"}}]}
data: [DONE]
이미지 입력
Gemini는 현재 base64 data URL 이미지 입력을 지원합니다.
resp = client.chat.completions.create(
model="google/gemini-2.5-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image"},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgo..."
},
},
],
}],
)
원격 https://... 이미지 URL은 현재 명확한 오류를 반환합니다. 이미지를 받아 base64 data URL로 변환한 뒤 보내세요.
자주 발생하는 오류
| 오류 | 해결 |
|---|---|
model not supported | 위 목록의 모델 이름인지 확인 |
no available google account | 업스트림 Gemini 서비스 일시 불가; 지원팀 문의 |
quota exceeded | 잔액 또는 할당량 부족; 충전 또는 팀 관리자 문의 |
upstream error | Google 업스트림 불안정 또는 API 키 할당량 문제; 잠시 후 재시도 |