NODA Engine v0.1.0
한글·PDF·스캔 공문서를 정확히 읽어 근거가 붙은 조각으로 LLM 에게 넘기는 RAG 바탕 엔진. 답을 짓는 LLM 과 지시문은 당신의 것 — 엔진은 문서가 스스로 적은 것만 내고, 못 읽으면 못 읽었다고 말한다.
30초 만에
curl -s https://서버/health
curl -s https://서버/parse -H "Authorization: Bearer $KEY" \
-H 'X-Filename: %EA%B3%B5%EA%B3%A0.hwpx' --data-binary @공고.hwpx # 파일 → 계약의 JSON
curl -s https://서버/context -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \
-d '{"tenant":"갑","query":"신청기간은?","budget":4000}' # 질문 → LLM 에게 넘길 근거 묶음
HWPX · HWP · PDF(글자층·스캔) · DOCX · XLSX · XLS · PPTX · PNG · JPG · TIF. 못 읽는 파일도 200 — JSON 의 access.reason 이 까닭이다.
세 길 — 어디까지 가져가나
① 읽기만
문서 JSON과 조각(쪽·좌표·칸 주소가 붙는다). 벡터 DB·검색기·LLM 은 당신 것.
POST /parse · POST /chunk문서 JSON과 조각(쪽·좌표·칸 주소가 붙는다). 벡터 DB·검색기·LLM 은 당신 것.
② 찾기까지
테넌트에 문서를 넣고, 질문마다 번호 붙은 근거 묶음을 받아 프롬프트에 붙인다.
/documents/upload · /context테넌트에 문서를 넣고, 질문마다 번호 붙은 근거 묶음을 받아 프롬프트에 붙인다.
③ 답까지
발췌 답(지어내지 않음) 또는 인용을 검증하는 게이트웨이. 근거를 원문 위에 칠해 보여 준다.
POST /answer · /view발췌 답(지어내지 않음) 또는 인용을 검증하는 게이트웨이. 근거를 원문 위에 칠해 보여 준다.
엔드포인트
| 길 | 받는 것 | 주는 것 |
|---|---|---|
GET /health | — | 살아 있는가 · 포맷 · 엔드포인트 · 키 여부 · 상한 · 요청 제한 |
POST /parse | 파일 바이트 + X-Filename | 문서 JSON (계약) |
POST /chunk | 같음 · ?budget= | 문서 + 조각 |
POST /documents/upload · DELETE /documents | ?tenant= + 파일 | 테넌트에 넣고 바로 읽은 상태 · 뺀다 (키 있는 서버만) |
GET /documents | ?tenant= | 무엇이 들어와 있고 무엇을 못 읽었나 · 서식 칸(발신·수신·시행일) |
POST /context | {tenant, query, budget?} | LLM 에게 넘길 근거 묶음 ([n] 번호 · 출처 · 쪽) |
POST /search · /answer | {tenant, query} | 조각 + 인용 근거 · 발췌 답 |
GET /try | 브라우저 | 키 없이 파일을 올려 보는 체험 화면 (저장 안 함) |
GET /openapi.json · /usage | — | OpenAPI 3 명세 · 소비자별 사용량 (키 있는 서버만) |
키: Authorization: Bearer <키> 또는 X-API-Key. 소비자가 여럿이면 키 파일로 가른다. 명세는 openapi.json, 자세한 계약은 api.md, 쓰는 법은 rag.md, 에이전트에 도구로 붙이려면 mcp.md(MCP), 띄우는 법은 deploy.md.
어디까지 믿어도 되나 — 점수판에서 그대로
문서 1,488건 · 사람이 붙인 정답 라벨 369건 — 「목표 달성」은 「그 라벨들에서 맞았다」는 뜻이고 고객 문서의 숫자는 다르다.
| 표 구조 (TEDS) | 0.905 | 표본 70 |
| 공문 구조 — 제목·조항·붙임 | 0.909 | 표본 187 |
| 공문 발행 정보 — 문서번호·시행일·발신 | 0.934 | 표본 67 |
| 공문 수신 — 수신·수신자 목록 | 0.989 | 표본 55 |
| 읽기 순서 (디지털) | 0.984 | 표본 46 |
| 스캔 글자 오차 (낮을수록 좋다 · 알려진 공백) | 0.186 | 표본 54 |
자세한 것은 고객에게 주는 한 장. 스캔 글자 오차는 목표(0.164)에 못 미치는 알려진 공백이고 목표를 내리지 않는다.
써 보기
문서를 올려 보기 — 키 없이 파일 하나를 올려 엔진이 읽은 글·표·서식 칸·붙임과 「확인할 자리」를 그 자리에서 본다 (저장하지 않는다).
데모 한 장 — 테넌트의 문서에 물어보고 근거를 원문 위에서 본다. 엔진은 아무것도 바깥으로 보내지 않는다 (LLM 을 켜면 그때만, 어디로 가는지 /health 가 말한다).