에토스AI 문서v0.5.1

게이트웨이 API

고객사 온프레미스 커넥터가 에토스AI 클라우드 게이트웨이를 호출하는 머신용 API입니다. DB·파일은 고객 안에 두고, LLM 호출만 이 게이트웨이를 거칩니다 (B1 아키텍처). 프로바이더 키는 에토스AI 서버에만 있으며, 커넥터는 워크스페이스 API 토큰으로만 인증합니다.

1. 토큰 발급

관리자(ADMIN)가 /admin 대시보드 → 게이트웨이 API 토큰에서 발급합니다. 평문 토큰은 발급 화면에서 1회만 노출되며, 서버에는 sha256 해시만 저장됩니다. 토큰 형식: vok_…

2. POST /api/v1/chat

대화 메시지 배열과 모델 ID를 받아, 선택한 모델의 응답을 JSON으로 반환합니다 (비스트리밍).

인증 헤더

Authorization: Bearer vok_xxxxxxxx...

Request Body (application/json)

필드타입설명
messages{ role, content }[]대화 이력. roleuser 또는 assistant. (필수)
modelstring모델 ID (예: claude-fable-5). 생략 시 기본 모델.
systemstring시스템 프롬프트 (선택). 생략 시 기본값.

Response (200)

{
  "text": "…모델 응답…",
  "model": "claude-fable-5",
  "provider": "anthropic",
  "usage": { "input_tokens": 42, "output_tokens": 128 }
}

오류

상태의미
401토큰 없음/무효/폐기됨
400잘못된 본문 또는 알 수 없는 모델
502프로바이더 키 미설정 또는 프로바이더 호출 실패

3. 호출 예시 (curl)

curl -X POST https://<에토스AI-호스트>/api/v1/chat \
  -H "Authorization: Bearer vok_xxxxxxxx..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-fable-5",
    "messages": [{ "role": "user", "content": "이번 분기 매출 요약해줘" }]
  }'

4. POST /api/v1/metering — 폐쇄망 미터링

완전 폐쇄망 설치본은 LLM 호출 자체를 내부에서 처리하고, 과금을 위한 집계 카운터만 주기적으로 업링크합니다. 프롬프트·답변 내용은 절대 전송되지 않습니다. 인증은 동일한 게이트웨이 토큰(Bearer)입니다.

curl -X POST https://<에토스AI-호스트>/api/v1/metering \
  -H "Authorization: Bearer vok_xxxxxxxx..." \
  -H "Content-Type: application/json" \
  -d '{
    "counters": [
      { "model": "qwen2.5-72b-local", "inputTokens": 120000, "outputTokens": 45000 },
      { "model": "claude-sonnet-5",   "inputTokens": 8000,   "outputTokens": 3000 }
    ]
  }'

응답: { "ok": true, "accepted": 2 }. 수신된 카운터는 워크스페이스 사용량으로 기록되어 관리자·수퍼 대시보드에 합산 표시됩니다 (한 번에 최대 100건).

5. 데이터 흐름과 보안

  • 커넥터 → 게이트웨이는 아웃바운드 1개 지점이라 고객 방화벽에서 화이트리스트하기 쉽습니다.
  • 고객의 DB·파일 원본은 게이트웨이로 오지 않습니다. 프롬프트에 실린 데이터 조각만 전송됩니다.
  • 모든 호출은 워크스페이스별 사용량으로 기록되어 관리자 대시보드에서 조회됩니다.
  • 토큰 폐기 시 해당 커넥터는 즉시 인증에 실패합니다.