Use when the user asks for Korean school meal menus (급식 식단) by natural-language education office and school name, via k-skill-proxy NEIS school-search and school-meal routes.
나이스(NEIS) 교육정보 개방 포털의 학교기본정보·급식식단정보를 k-skill-proxy가 중계하는 HTTP API로 조회한다.
/v1/neis/school-search로 학교를 찾고, 응답의 SD_SCHUL_CODE·ATPT_OFCDC_SC_CODE로 /v1/neis/school-meal을 호출한다.KEDU_INFO_KEY)는 프록시 서버에만 두고, 클라이언트는 키 없이 프록시 URL만 호출한다.curlk-skill-proxy에 KEDU_INFO_KEY가 설정된 배포(기본 hosted 또는 self-host)에 접근 가능할 것KSKILL_PROXY_BASE_URL — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted https://k-skill-proxy.nomadamas.org 를 사용한다.KEDU_INFO_KEY 는 프록시 운영 서버 환경에만 둔다.에이전트는 아래처럼 base 를 정한다.
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}"
BASE="${BASE%/}"
다음이 없으면 사용자에게 짧게 묻는다.
서울특별시교육청, 서울, 경기도교육청).미래초등학교, ○○중학교).YYYYMMDD 또는 사용자가 말한 날짜를 한국 시간 기준으로 YYYYMMDD로 정한다. 생략 시 오늘(한국 시간).교육청 표현이 애매해 ambiguous_education_office가 나오면, 응답의 candidate_codes를 보여 주고 더 구체적인 이름(예: 경상북도교육청 vs 경상남도교육청)을 받는다.
/v1/neis/school-search)curl -fsS --get "${BASE}/v1/neis/school-search" \
--data-urlencode "educationOffice=${EDU_OFFICE}" \
--data-urlencode "schoolName=${SCHOOL_NAME}"
EDU_OFFICE, SCHOOL_NAME은 사용자 입력을 그대로 넣어도 된다. 프록시가 교육청명을 코드로 해석한다.resolved_education_office.atpt_ofcdc_sc_code로 실제 매칭된 시도교육청 코드를 확인할 수 있다.schoolInfo 본문에서 row가 여러 개면 사용자에게 **학교명·주소(ORG_RDNMA 등)**를 보여 주고 하나를 고르게 한다.
한 건뿐이면 그 row의 ATPT_OFCDC_SC_CODE, SD_SCHUL_CODE를 다음 단계에 쓴다.
/v1/neis/school-meal)curl -fsS --get "${BASE}/v1/neis/school-meal" \
--data-urlencode "educationOfficeCode=${ATPT}" \
--data-urlencode "schoolCode=${SD}" \
--data-urlencode "mealDate=${YYYYMMDD}"
ATPT / SD는 3단계에서 확정한 코드.mealKindCode=1|2|3 (선택).mealServiceDietInfo 안의 row를 기준으로 요약한다.DDISH_NM 등)의 <br/>는 줄바꿈으로 바꿔 읽기 쉽게 한다.KEDU_INFO_KEY 미설정 → 503 / upstream_not_configured400 / ambiguous_education_officeschool-search → school-meal 순서를 따른다.docs/features/k-schoollunch-menu.md와 docs/features/k-skill-proxy.md를 참고한다.