쓰던 AI에 Optra를 연결하면, 답하기 전에 현행 KDS 74개 기준의 본문을 먼저 읽습니다. 조문 번호와 함께 그 조문의 표·그림·수식이 통째로 옵니다.
아래는 실제 응답입니다. 조문 번호로 물으면 정확매칭 경로를 탑니다.
(3) 밀폐형독립벽체와 독립간판 — 밀폐형독립벽체와 독립간판의 주골조설계용 풍력계수 CD는 표 5.7-8에 따른다.
| s/h \ B/s | ≤0.05 | 0.1 | 0.2 | 0.5 | 1 | 2 |
|---|---|---|---|---|---|---|
| 1 | 1.80 | 1.70 | 1.65 | 1.55 | 1.45 | 1.40 |
| 0.9 | 1.85 | 1.75 | 1.70 | 1.60 | 1.55 | 1.50 |
| 0.7 | 1.90 | 1.85 | 1.75 | 1.70 | 1.65 | 1.60 |
표는 병합셀 구조 그대로 옵니다. 줄글로 펴지 않습니다.
모서리가 ㄱ자형인 벽체는 Lr/s에 따른 감소계수를 곱합니다.
| Lr/s | 0.3 | 1.0 | ≥2 |
|---|---|---|---|
| 감소계수 | 0.90 | 0.75 | 0.60 |
C_D : 주골조설계용 풍력계수
B : 벽체·간판의 수평길이 (m)
h : 벽체·간판의 높이 (m)
s : 벽체·간판의 수직길이 (m)
ε : 전면적과 밀폐형벽체·간판
면적의 비율
L_r : 모서리가 ㄱ자형의 벽체일 때
짧은 벽의 수평길이 (m)
조문에 없으면 전역 정의로
표 5.7-8 → KDS 41 12 00 5.7-8가리키는 곳까지 이어 읽음
optra://figure/kds_41_12_00/BIN002F.bmp optra://figure/kds_41_12_00/BIN000E.bmp주소만 옴 · 필요할 때 가져감
LaTeX 로 변환되어 실림. 표 안의 식도 셀에 남아 있음.KaTeX 파싱 실패 0건
PDF에서 글자를 뽑으면 수식은 깨지고 표는 줄글이 됩니다. Optra는 HWP 원문의 레코드를 직접 읽어 수식·표·그림을 각각의 구조 그대로 보존합니다.
HWP5 바이너리에서 수식·표·그림 레코드를 직접 읽습니다. 위첨자처럼 글자 모양에만 담긴 정보도 복원합니다.
수식은 LaTeX로, 표는 병합셀까지 그대로, 그림은 파일로 꺼냅니다.
본문·수식·표·그림·기호 정의를 한 조문에 묶습니다. 부록은 따로 셉니다.
조문번호·기호·키워드로 찾습니다. 그림은 주소만 실어 보내고 필요할 때 가져갑니다.
"잘 됐다"는 말 대신 숫자를 적습니다. 원문 PDF의 텍스트를 정답지로 삼아 기계가 전수 대조했고, 검증 스크립트와 결과를 저장소에 남겨 두었습니다.
수식 6건 (0.03%) — 원본 HWP 스크립트 자체에 짝 없는 괄호가 있는 경우입니다. 문법은 맞춰 두어 렌더링은 되고, 값은 원문 그대로입니다.
사람 확인 대기 14건 — 그리스 문자명 뒤에 소문자가 붙은 형태입니다. 기호인지 변수명인지는 원문을 봐야 갈립니다. 추측해서 고치지 않았습니다.
기계가 끝내 볼 수 없는 것 — 원문 자체의 오류, 그 식이 그 조문에 맞는 식인지에 대한 공학 판단, 그림이 담은 뜻입니다. 그래서 근거가 된 조문 번호를 항상 함께 돌려줍니다.
재현: scripts/verify_*.py --all · 근거: docs/VERIFICATION.md
지금 동작하는 것만 적습니다. 준비 중인 것은 적지 않습니다.
| 이름 | 하는 일 | 입력 | 상태 |
|---|---|---|---|
| search_kds | 조문·수식·표·기호를 찾아 그 조문을 통째로 반환합니다조문번호는 정확매칭, 기호는 로컬>전역 우선순위, 나머지는 점수 검색 | 질의 문자열 | 무료 공개 |
| get_kds_figure | 조문에 딸린 도해를 그때 가져옵니다그림 한 장이 컨텍스트를 1,000토큰 넘게 쓰고 한 조문에 48장이 걸린 곳도 있어, 검색 응답에는 주소만 싣습니다 | figure_uri | 무료 공개 |
같은 주소가 optra://figure/{문서}/{파일} 리소스 템플릿으로도 열려 있어, 클라이언트가 직접 붙일 수도 있습니다. 그림은 폭 900px JPEG로 줄여 내보냅니다.
서버는 사용자 컴퓨터에서 직접 실행됩니다. 질의도 조문도 네트워크로 나가지 않습니다.
가상환경을 만들고 requirements.txt를 설치합니다.
Claude Desktop의 claude_desktop_config.json에 아래를 넣습니다. 경로는 실제 설치 위치로 바꿉니다.
대화 중에 search_kds와 get_kds_figure가 붙습니다. 청크 캐시는 뜰 때 한 번 읽으므로, 기준을 다시 빌드했으면 서버도 다시 시작합니다.
{
"mcpServers": {
"Optra-kds": {
"command": "/경로/optra/.venv/bin/python3",
"args": ["/경로/optra/server/server.py"]
}
}
}