지금은 시범 운영 기간이라 이메일만으로 로그인할 수 있어요. 정식 오픈 후에는 웍스AI 관리자 계정으로 로그인합니다.
API REFERENCE

연동 문서

우리 회사 필터를 시스템에서 호출하는 방법이에요. 필터는 두 가지고, API 키 하나로 둘 다 쓸 수 있어요.

문서 보안 필터커스텀 정책 필터
하는 일 문서·긴 글의 보안 등급(공개~특급) 판별 대화 메시지의 정책 위반(차단/통과) 판정
엔드포인트 POST /v1/dlp/classify POST /v1/moderation/check
언제 부르나 문서를 저장·공유·외부 AI로 보내기 전 챗봇·업무 도구가 메시지를 전송하기 전

인증 — 두 필터 공통

Authorization: Bearer sk_bsp_<발급받은 키>
키는 콘솔의 API 키에서 발급해요. 분당 300회까지 호출할 수 있어요.

제품 1 · 문서 보안 필터 API

코어핀 DLP API와 같은 스키마라 base URL과 키만 바꾸면 그대로 동작해요. 기존 연동 코드가 있다면 수정할 것이 거의 없어요.

POST /v1/dlp/classify — 문서 1건 판별

curl -X POST https://tunia.ai/v1/dlp/classify \
  -H "Authorization: Bearer sk_bsp_..." \
  -H "Content-Type: application/json" \
  -d '{
    "text": "판별할 문서 내용 (1~32,768자)",
    "model": "v2",            // 생략하면 기본 버전, "baseline" 이면 기본 모델
    "force_t3": false,         // 심층 추론 강제
    "allow_escalate": true,    // 확신이 낮을 때 심층 추론 자동 사용
    "return_text": false
  }'

응답

{
  "grade": "TRADE_SECRET",         // 6등급 중 하나
  "grade_ko": "영업비밀",
  "types": ["M_AND_A"],            // 0~N개 민감 유형
  "types_ko": ["인수·합병"],
  "tier_used": "t2_1",             // t1 | t2_1 | t3_baseline
  "escalated": false,
  "confidence": 0.973,
  "grade_probs": { ... },
  "marking_grade": null,           // 문서 표기("대외비" 등) 기반 하한
  "model": "acme/dlp@v2",          // 어떤 버전이 판별했는지
  "keyword_hits": [                 // 회사 키워드 감지 결과
    {"pattern": "프로젝트 아틀라스", "grade": "CONFIDENTIAL"}
  ],
  "floor_source": "keyword",       // 등급 하한의 출처: keyword | marking | null
  "n2sf": "C",                     // N2SF 등급 C|S|O (항상 포함)
  "n2sf_ko": "기밀",
  "meta": { "model_id": "dlp", "model_version": "acme/dlp@v2",
            "processing_time_ms": 14.2, "request_id": "..." }
}

POST /v1/dlp/batch — 최대 100건 일괄 판별

{ "texts": ["문서1", "문서2", ...], "model": "v2" }
→ { "results": [ {classify 응답과 동일}, ... ] }

모델이 잠들어 있을 때

비용 절약을 위해 호출이 없으면 모델이 잠들어요. 잠든 상태에서 호출하면 아래처럼 응답하니, retry_after 만큼 기다렸다 다시 호출해 주세요. 설정에서 업무 시간에 미리 깨워 둘 수도 있어요.

HTTP 202
{ "error": { "code": "model_warming",
             "message": "모델을 깨우는 중이에요. 잠시 후 다시 시도해 주세요.",
             "retry_after": 180 } }

기타 엔드포인트

GET /v1/dlp/grades6등급 카탈로그 (인증 불필요)
GET /v1/dlp/types11개 민감 유형 카탈로그 (인증 불필요)
GET /v1/dlp/versions우리 회사 모델 버전 목록

등급 체계

등급이름
공개PUBLIC
내부INTERNAL
기밀CONFIDENTIAL
제한RESTRICTED
영업비밀TRADE_SECRET
특급CLASSIFIED
유형: 계약·합의재무·실적인수·합병인사·평가법무·소송R&D·지식재산전략·기획고객 정보보안·인증구매·조달공시 분류물

공공기관(N2SF)

모든 판정 응답에 국가 망 보안체계(N2SF)의 n2sf 등급(C·S·O)이 포함돼요. 망 정책과 연동할 때는 이 필드만 보고 C=차단, S=제한, O=허용으로 배선하면 돼요. 설정에서 공공기관 모드를 켜면 다음 학습부터 공공 분류 기준이 라벨에 반영돼요.

N2SF의미대응 등급
O공개 — 활용 우선공개
S민감 — 제한 접근내부 기밀 제한
C기밀 — 엄격 통제영업비밀 특급

제품 2 · 커스텀 정책 필터 API

콘솔의 정책 등록에서 등록한 정책으로 메시지를 검사해요. 응답의 blockedtrue메시지 전송을 막거나 경고를 띄우는 쪽은 연동한 시스템이에요.

POST /v1/moderation/check — 메시지 검사

curl -X POST https://tunia.ai/v1/moderation/check \
  -H "Authorization: Bearer sk_bsp_..." \
  -H "Content-Type: application/json" \
  -d '{
    "text": "검사할 메시지 (1~32,768자)"
    // 또는 "texts": ["메시지1", "메시지2", ...]  — 최대 100건 일괄 검사
  }'

응답

{
  "blocked": true,                 // 차단해야 하나 (걸린 정책이 하나라도 있으면 true)
  "max_score": 0.97,               // 가장 높은 일치도 (0~1)
  "hits": [                        // 켜진 정책마다 하나씩
    {"policy_id": "...",
     "title": "미공개 실적 언급 금지",
     "score": 0.97,                // 이 정책과의 일치도
     "blocked": true}              // 이 정책의 민감도 기준을 넘었나
  ],
  "policies_evaluated": 12         // 대조한 정책 수
}

// texts 로 여러 건을 보낸 경우
{ "results": [ {위와 동일}, ... ], "policies_evaluated": 12 }

연동 규칙

blocked == true메시지를 전송하지 않거나 가리고, hits 의 정책 이름을 사용자에게 알려 주면 좋아요. (예: “미공개 실적 언급 금지 정책에 걸렸어요”)
blocked == false그대로 전송해요.
HTTP 202필터를 깨우는 중 — retry_after 뒤에 다시 호출해요(아래 참고).

GET /v1/moderation/policies — 켜진 정책 목록

{ "policies": [ {"id": "...", "title": "미공개 실적 언급 금지", "threshold": 0.5}, ... ] }
연동한 시스템이 “지금 어떤 정책이 적용 중인지”를 보여줄 때 써요.

요금·동작 방식

요금호출당 ₩30 — texts 일괄 검사는 메시지 건수만큼이에요. 정책 수는 요금과 무관해요(정책 12개여도 호출 1번).
잠들어 있을 때문서 보안 필터와 같아요 — 호출이 없으면 잠들고, 잠든 상태의 호출은 HTTP 202 model_warming 으로 응답해요. retry_after 만큼 기다렸다 다시 호출해 주세요.
정책 반영콘솔에서 정책을 추가·수정·끄면 다음 호출부터 바로 반영돼요.

웍스AI 에서 쓰기

웍스AI 는 이미 같은 규격의 문서 필터를 연동하고 있어요. 관리자 정책에서 필터 주소를 https://tunia.ai, 키를 발급받은 sk_bsp_ 키로 바꾸면 우리 회사 전용 모델이 대신 판별해요. 응답 필드가 동일해서 코드 수정이 필요 없어요.