ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Search and review safety and environmental regulations for semiconductor precursor production
AI summary · website content
EducationPython · HTMLGitHub @najonghwaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗국가법령정보센터(law.go.kr) 현행 법령을 조(條) 단위로 수집해 SQLite에 넣고, LLM이 검색된 조문만 근거로 답하게 만든 검색 서비스. Vercel 서버리스로 배포한다.
법령은 수시로 개정되므로, 답을 외우는 대신 DB를 갱신해서 다시 찾는 쪽이 낫다는 생각으로 만들었다.
공개 사이트 → /api/index.py (단일 서버리스 함수) → data/laws.db (읽기 전용)
└→ OpenAI API (gpt-4o-mini)
| 항목 | 수량 |
|---|---|
| 법령군 | 21 |
| 법령 (법률·시행령·시행규칙·고시) | 82 |
| 검색 단위 | 12,714 — 본문 조문 5,733 · 부칙 4,260 · 별표 1,420 · 서식 1,301 |
| 물질 규제 매핑 (CAS) | 2,861종 |
화학물질관리법, 화학물질등록평가법, 산업안전보건법, 중대재해처벌법, 위험물안전관리법, 고압가스안전관리법, 폐기물관리법, 대기환경보전법, 물환경보전법, 연구실안전법, 소방 3법, 토양환경보전법, 환경오염시설통합관리법, 오존층보호법, 잔류성오염물질관리법, 소음진동관리법, 전기안전관리법, 액화석유가스법, 도시가스사업법. KOSHA 기술지침은 사내망 판에만 들어 있다(용량).
법 조항은 틀리면 곧바로 실무 리스크라, 모델을 믿는 대신 코드로 막았다.
[n]이 실제로 제공한 조문 번호인지 코드로 확인하고, 벗어난 인용은
지운다. 남는 인용이 하나도 없으면 그 답변은 버린다.물질 질문(예: "디메틸아민은 유해화학물질인가?")은 별표를 대조한 확정 등재 내역을 근거 [1]로 고정해 넣는다. 별표가 커서 본문 검색만으로는 해당 행을 놓치기 때문이다.
"불산", "폐액", "MSDS" 같은 현장 표기는 법령 원문에 없다. 동의어 사전으로 다 담을 수 없어
(화학물질 이명만 수천 개) LLM에게 검색어를 만들게 한다(plan_query).
그 결과와 규칙 기반 검색 결과를 RRF(순위 융합)로 합쳐, 여러 검색어에 공통으로 잡힌 조문을
위로 올린다 — LLM이 검색어를 한 번 빗나가도 정답 조문이 밀려나지 않는다.
[시행일: …], 판 전체가 시행 전이면
법령명에 (시행예정 YYYY-MM-DD). 답변에서 현행과 구분해 말하도록 프롬프트에 넣었다.eval.py — 실제 실무 질문 37건(부칙·서식 2건 포함) + 거부 3건으로 회귀를 잡는다. 코드를 고칠 때마다 돌린다.
검색 정확도 37/37 (100%) 기대 법령·조문이 LLM에 전달된 8건 안에 들어갔는가
답변 근거정확 37/37 (100%) 실제로 그 근거를 인용해 답했는가
거부 정확도 3/3 법규와 무관한 질문을 조문으로 억지로 엮지 않았는가
export OPENAI_API_KEY=sk-... # PowerShell: $env:OPENAI_API_KEY="sk-..."
python dev_server.py # http://localhost:8788
dev_server.py는 Vercel과 같은 라우팅(정적 public/ + /api/* → api/index.py)을 흉내 낸다.
표준 라이브러리만 쓰므로 설치할 패키지가 없다.
OPENAI_API_KEY 추가| 환경변수 | 기본값 | 설명 |
|---|---|---|
OPENAI_API_KEY | (필수) | 없으면 검색·조문 열람만 되고 AI 질의는 안내 문구를 낸다 |
OPENAI_MODEL | gpt-4o-mini | |
OPENAI_BASE_URL | https://api.openai.com/v1 | OpenAI 호환 API면 사내 엔드포인트로 교체 가능 |
vercel.json의 rewrite가 /api/*를 전부 api/index.py 하나로 보낸다.
엔드포인트를 파일별로 쪼개면 함수마다 37MB DB가 복사되기 때문이다.
GET /api/stats | DB 현황 |
GET /api/laws | 법령 목록(그룹별) |
GET /api/law?law_id= | 한 법령의 조문 목차 |
GET /api/article?id= | 조문 원문 |
GET /api/search?q=&tier= | 키워드 검색 |
GET /api/substance?q= | 물질(CAS/이름) 규제 목록 대조 |
POST /api/ask | AI 질의 — {"q": "..."} |
POST /api/review | 제품 검토 — {"topic": "...", "product": {...}} |
api/index.py 모든 /api/* 요청을 받는 단일 함수 (경로로 분기)
api/_lib.py DB 접근 · 검색 · 물질 대조 (밑줄 시작이라 함수로 배포되지 않는다)
api/_rag.py 질의 파이프라인 · 프롬프트 · 3중 게이트
data/laws.db 법령 DB (읽기 전용 — 수집일은 화면 상단·/api/stats)
data/synonyms.json 현장 용어 → 법령 용어
public/index.html 화면 전체
eval.py 품질 평가셋
dev_server.py 로컬 확인용
수집 시점의 현행 법령이다. 법적 판단 전 반드시 원문 링크로 최신 조문을 확인할 것. DB를 갱신하려면 수집기가 필요하다 → https://github.com/najonghwa/safety-law-db