Public Documentation

Passio RAG API 사용 설명서

이 페이지는 로그인 없이 누구나 열람할 수 있습니다. 실제 호출은 발급받은 API 토큰이 필요합니다.

1. 빠른 시작

가장 먼저 아래 한 줄을 실행하면 됩니다.

curl --max-time 1000 -X POST "https://sikdorak.org/api/rag/solve" \
  -H "Content-Type: application/json" \
  -H "X-API-Token: psk_xxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
    "items": [
      {
        "q": "네트워크관리사 2급: IPv4 주소 192.168.10.130/26이 속한 네트워크 주소는?",
        "opts": "1) 192.168.10.0, 2) 192.168.10.64, 3) 192.168.10.128, 4) 192.168.10.192",
        "wrong": "2) 192.168.10.64",
        "ans": "3) 192.168.10.128"
      }
    ],
    "rebuild_db": false
  }'

2. 엔드포인트 정보

MethodPOST
URLhttps://sikdorak.org/api/rag/solve
Content-Typeapplication/json
인증X-API-Token 또는 로그인 세션
요청 제한한 번에 최대 50문항
서버 대기시간최대 900초 (15분)

3. API 토큰 발급 방법

  1. Passio 웹 로그인 후 상단 메뉴에서 API 토큰 페이지로 이동
  2. 비밀번호를 한 번 더 입력하고 토큰 조회 버튼 클릭
  3. 조회된 토큰을 복사해 API 요청 헤더에 넣어 사용

보안 정책: API 토큰은 30일 유효, 만료 시 다음 조회 시점에 새 토큰으로 자동 갱신됩니다.

4. 요청 바디 스키마

{
  "items": [
    {
      "q": "문제 본문 (필수)",
      "opts": "보기 문자열 (필수)",
      "wrong": "사용자가 고른 오답 (필수)",
      "ans": "정답 (필수)"
    }
  ],
  "rebuild_db": false
}
필드타입설명
itemsarray풀이할 문항 목록
items[].qstring문제 질문
items[].optsstring보기(예: 1) ... 2) ...)
items[].wrongstring오답 선택값
items[].ansstring정답 선택값
rebuild_dbbooleanRAG DB 재생성 여부 (기본 false 권장)

5. 인증 방식

아래 세 가지 중 하나를 사용하세요.

# 1) 권장: API 토큰
-H "X-API-Token: psk_xxx"

# 2) 대체: Authorization ApiKey
-H "Authorization: ApiKey psk_xxx"

# 3) 대체: Authorization Bearer (psk_ 토큰)
-H "Authorization: Bearer psk_xxx"

6. 응답 예시

{
  "ok": true,
  "total": 1,
  "results": [
    {
      "report": {
        "header": {
          "ans": "3) 192.168.10.128",
          "keyword": "IPv4, 서브넷, /26",
          "level": "중급"
        },
        "body": {
          "overview": "...",
          "analysis": {
            "1": "...",
            "2": "..."
          },
          "correction": "...",
          "insight": "...",
          "audit": {
            "evidence_ids": ["1", "2"],
            "source": "교재 근거"
          },
          "magic_tip": "..."
        }
      },
      "evidence": [
        { "id": 1, "text": "..." }
      ]
    }
  ]
}

7. 에러 코드 가이드

Statuserror의미
400invalid_input요청 바디 형식 오류 또는 items 누락
401invalid_api_tokenAPI 토큰이 잘못되었거나 만료됨
401unauthorized세션/토큰 인증 미제공
502rag_unavailable내부 RAG 서비스 연결 실패
504-게이트웨이 타임아웃(네트워크/처리 지연)

8. 운영 팁

  • 기본적으로 rebuild_db는 false를 사용하세요.
  • 문항은 여러 개를 묶어 보내되, 50개를 넘기지 마세요.
  • 클라이언트에서 1000초 이상 max-time을 설정해두면 장문 응답에 유리합니다.
  • 토큰은 서버에 하드코딩하지 말고 환경변수/시크릿 스토어에 보관하세요.