ai.aiinplanet.com

Gemma (gemma4) — OpenAI 호환 LLM API
Base URL
https://ai.aiinplanet.com
호환 규격
OpenAI API 호환 (/v1/...) · 백엔드는 Ollama
인증
Authorization: Bearer <API_KEY> (키는 별도 안내)
모델
gemma4:26b · gemma4:31b-it-qat
스트리밍
SSE 지원 ("stream": true)
API 키는 보안을 위해 이 공개 문서에 표시하지 않습니다. 아래 예제의 YOUR_API_KEY 자리에 발급받은 키(sk-aiin-…)를 넣어 사용하세요.

엔드포인트

메서드경로설명인증
GET /v1/models 사용 가능한 모델 목록 공개
POST /v1/chat/completions 채팅 컴플리션 (메인) Bearer 필수
POST /v1/completions 텍스트 컴플리션 Bearer 필수
POST /v1/embeddings 임베딩 Bearer 필수

/v1/models를 제외한 모든 경로는 올바른 Bearer 키가 없으면 401을 반환합니다.

빠른 시작

cURL
Python (openai)
JavaScript
스트리밍
# 모델 목록 (공개)
curl https://ai.aiinplanet.com/v1/models

# 채팅 (Bearer 키 필요)
curl https://ai.aiinplanet.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4:26b",
    "messages": [{"role": "user", "content": "안녕하세요"}],
    "max_tokens": 1024
  }'
from openai import OpenAI

client = OpenAI(
    base_url="https://ai.aiinplanet.com/v1",
    api_key="YOUR_API_KEY",
)

resp = client.chat.completions.create(
    model="gemma4:26b",
    messages=[{"role": "user", "content": "안녕하세요"}],
    max_tokens=1024,
)
print(resp.choices[0].message.content)
const res = await fetch("https://ai.aiinplanet.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "gemma4:26b",
    messages: [{ role: "user", content: "안녕하세요" }],
    max_tokens: 1024,
  }),
});
const data = await res.json();
console.log(data.choices[0].message.content);
# SSE 스트리밍 — "stream": true 추가
curl -N https://ai.aiinplanet.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4:26b",
    "messages": [{"role": "user", "content": "긴 글을 써줘"}],
    "max_tokens": 2048,
    "stream": true
  }'

참고 사항

reasoning 모델입니다. gemma4는 응답 전에 추론(reasoning) 토큰을 생성합니다. max_tokens를 너무 작게 주면 추론에 예산이 소진되어 content가 비고 finish_reason: "length"가 됩니다. 1024 이상을 넉넉히 주세요.