API 문서
AI API 오마카세 데모 앱이 제공하는 HTTP 엔드포인트 요약입니다. 요청 시 발급받은 액세스 토큰이 필요한 경우, 아래 헤더를 포함합니다.
앞으로도 새로운 API가 계속 추가되고, 기존 엔드포인트 스펙도 개선될 예정입니다. 아래 목록은 시점에 따라 늘어나거나 바뀔 수 있으니 공지·문서 업데이트를 함께 확인해 주세요.
Authorization: Bearer <your_access_token>
브라우저에서 호출 시 동일 오리진 기준 상대 경로(예: /api/chat)를 사용합니다.
Text (LLM)
/api/chat프롬프트 입력에 대해 한국어로 텍스트 응답을 생성합니다. 내부적으로 LLM 업스트림과 연동됩니다.
본문 (application/json)
{
"input": "질문 또는 지시문",
"temperature": 0.1
}성공 (200)
{
"text": "모델이 생성한 한국어 답변 문자열"
}- `temperature`는 생략 시 0.1에 가깝게 처리됩니다.
- 한도 초과 시 429와 `{ "error": "일일 체험 한도를 초과했습니다. ..." }` 형태로 응답할 수 있습니다.
광고 카피라이팅
/api/ad-copy자사 광고 카피 생성 엔진으로 브리프·톤·채널에 맞는 문구를 생성합니다. `language`로 출력 언어를 지정할 수 있습니다.
본문 (application/json)
{
"brief": "제품·서비스 설명(필수)",
"tone": "친근 / 전문 등 (선택)",
"channel": "배너, SNS 등 (선택)",
"temperature": 0.7,
"language": "ko"
}성공 (200)
{
"copy": "생성된 광고 카피 (지정 언어)"
}- `brief`만 필수입니다. `language`는 아래 코드 중 하나여야 합니다(생략 시 ko): ko, en, ja, zh, zh-TW, es, fr, de, vi, th, id, pt, ru, ar.
- 한도 초과 시 `/api/chat`과 동일하게 429 응답이 올 수 있습니다.
광고 카피 (Copywrite 엔진)
/api/copy`/api/ad-copy`와 다른 업스트림(카피라이트) 경로입니다. 헤드라인·본문을 분리한 JSON을 반환합니다. 톤·채널은 `tone`/`channel` 대신 `toneLine`/`channelLine` 필드명을 사용합니다.
본문 (application/json)
{
"brief": "제품·서비스 설명(필수)",
"toneLine": "톤 힌트 (선택)",
"channelLine": "채널 힌트 (선택)",
"temperature": 0.7
}성공 (200)
{
"headline": "메인 헤드라인 또는 슬로건",
"body": "본문·설명 문구"
}- `brief`만 필수입니다. `toneLine`·`channelLine`을 생략하면 서버가 기본 힌트 문구로 채웁니다.
- 출력 언어 지정 필드는 없으며, 업스트림 Copywrite 엔진 동작에 따릅니다.
- 한도 초과 시 429 등은 `/api/ad-copy`와 유사하게 처리될 수 있습니다.
텍스트 요약
/api/summarize긴 본문을 받아 핵심만 추린 요약 문자열을 반환합니다. 리뷰·뉴스·회의록 등 비정형 텍스트 정리에 활용할 수 있습니다.
본문 (application/json)
{
"text": "요약할 원문(필수)",
"style": "불릿 3줄, 한 문단 등 (선택)",
"temperature": 0.3
}성공 (200)
{
"summary": "압축된 요약 문자열"
}- `text`만 필수입니다. 요약 형식·톤 힌트는 `style` 또는 `styleLine`(동일 의미)으로 선택할 수 있습니다.
- `temperature`는 선택이며, 숫자로 보내면 업스트림 요약 API에 함께 전달됩니다.
- 한도 초과 시 `/api/chat`과 동일하게 429 응답이 올 수 있습니다.
리뷰 감정 분석
/api/sentiment고객 리뷰 등 짧은 텍스트의 문맥을 읽어 전체 및 측면(aspect)별로 긍정·부정·중립을 분류하고, 0~1 점수로 극성을 수치화합니다.
본문 (application/json)
{
"text": "분석할 리뷰·문장(필수)",
"temperature": 0.2
}성공 (200)
{
"overall": { "label": "positive", "score": 0.82 },
"aspects": [
{ "aspect": "음식", "label": "positive", "score": 0.9 },
{ "aspect": "배송", "label": "negative", "score": 0.15 }
]
}- `label`은 positive | negative | neutral, `score`는 0(부정)~1(긍정) 근거 점수입니다.
- 모델이 JSON 외 텍스트를 섞으면 502가 날 수 있습니다. 한도 초과 시 429가 올 수 있습니다.
NER (개체명 인식)
/api/ner문장에서 인물·장소·조직·시간·금액 등 개체를 찾아 label·category와 함께 배열로 반환합니다.
본문 (application/json)
{
"text": "분석할 문장(필수)",
"temperature": 0.1
}성공 (200)
{
"entities": [
{ "text": "세현", "label": "PER", "category": "Person / 인물" },
{ "text": "3,000,000원", "label": "MON", "category": "Money / 금액" }
]
}- `entities`는 원문에 실제로 등장한 표면 형태 `text`와 태그 `label`, 설명 `category`를 포함합니다.
- 한도 초과 시 `/api/chat`과 동일하게 429 응답이 올 수 있습니다.
Text-to-SQL (쿼리 자동 생성)
/api/text2sql자연어 질문을 MySQL 호환 SELECT 문으로 변환합니다. 스키마가 없으면 질문 맥락에서 테이블·컬럼을 추정합니다.
본문 (application/json)
{
"text": "데이터베이스에 묻고 싶은 질문(필수)",
"schema": "스키마(선택)",
"temperature": 0.2
}성공 (200)
{
"sql": "SELECT ..."
}- `sql`은 단일 쿼리 문자열입니다. 데모는 읽기 전용 분석을 가정해 SELECT 위주로 유도합니다.
- 한도 초과 시 `/api/chat`과 동일하게 429 응답이 올 수 있습니다.
Embedding
/api/embedding입력 텍스트를 임베딩 벡터(숫자 배열)로 변환합니다.
본문 (application/json)
{
"input": "임베딩할 문장",
"input_type": "string"
}성공 (200)
{
"embeddingVector": [0.012, -0.034, "..."]
}- `text` 필드로 보내도 동작합니다(내부에서 `input`과 동일하게 처리).
- 업스트림 오류 시 `error` 메시지와 함께 비-200 상태 코드가 반환될 수 있습니다.
Re-ranking
/api/rerank질의와 후보 문장 목록을 받아 관련도에 따라 재정렬하는 결과를 반환합니다.
본문 (application/json)
{
"query": "검색 질의",
"input": ["후보 문장 1", "후보 문장 2"]
}성공 (200)
{
"...": "업스트림 Re-rank 응답 구조가 그대로 전달됩니다."
}- `query`는 비어 있으면 안 되고, `input`은 문자열 배열이어야 합니다.
TTS (텍스트 음성 변환)
/api/tts텍스트를 음성으로 합성합니다. 업스트림 TTS로 프록시하며, 성공 시 오디오 바이너리를 반환합니다. 음성 목록은 `GET /api/tts`로 조회할 수 있습니다.
본문 (application/json)
{
"text": "읽을 문장(필수)",
"language": "ko | korean | english | japanese 등 (선택)",
"speaker": "ryan 등 (선택)",
"instruct": "스타일·톤 지시 (선택)",
"style_instruction": "instruct 별칭 (선택)"
}성공 (200)
Content-Type: audio/mpeg 등 (업스트림이 반환한 오디오 타입) <바이너리 오디오 스트림>
- `text`만 필수입니다. `language`는 짧은 코드(ko, en) 또는 korean/english 등으로 보낼 수 있습니다.
- 오류 시 JSON `{ "error": "..." }`와 함께 400·429·500·504 등이 반환될 수 있습니다. 한도 초과 시 429 메시지가 올 수 있습니다.
- 합성 요청은 최대 약 58초 제한이 있어, 초과 시 504가 날 수 있습니다.
- 스피커 목록: `GET /api/tts` (업스트림 `/tts/speakers` 프록시).
STT (Speech-to-Text)
/api/stt음성 파일을 업로드하여 텍스트로 변환합니다. `multipart/form-data`로 전송합니다.
본문 (multipart/form-data)
필드: file — 오디오 파일 (필수) language — 선택 task — 선택 beam_size — 선택 vad_filter — 선택
성공
업스트림 STT 서비스의 JSON 응답이 그대로 반환됩니다.
- 최대 실행 시간 제한이 있어 장시간 처리 시 504(시간 초과)가 날 수 있습니다.
- `file`이 없으면 400과 안내 메시지가 반환됩니다.
API는 지속적으로 추가·확장되며, 엔드포인트와 제한 사항은 서비스 업데이트에 따라 달라질 수 있습니다. 최신 동작은 API 체험과 실제 응답을 기준으로 확인해 주세요.