ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
PDF 책을 올려 단어가 나온 문맥을 찾고 AI로 뜻을 풀어주는 웹앱
Translation pending
AI summary · website and README
EducationHTML · JavaScriptGitHub @elponchisOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
PDF 책을 올리면 원하는 단어가 나온 모든 쪽과 문맥을 찾아주고, 버튼 하나로 이 문맥에서 그 단어가 무슨 뜻인지 풀어주는 웹앱입니다. PDF는 서버로 전송되지 않습니다. 브라우저 안에서만 읽고 검색합니다. 뜻 풀이를 누를 때만 그 대목의 앞뒤 문장(최대 1,200자)이 AI에 전달됩니다. api/ 안에서 밑줄(_)로 시작하는 파일은 Vercel이 함수로 만들지 않습니다. 셋 다 주고받는 형식({word, context} → {text})이 같으므로, 쓰고 싶은 것을 explain.js로 이름만 바꾸고 환경변수를 맞춰주면 됩니다. index.html은 어느 쪽이든 고칠 필요가 없습니다. Gemini 무료 등급은 어느 모델이든 하루 20회(RPD 20)가 상한이라 리딩 클럽 용도로 쓸 수 없었습니다. Workers AI는 하루 10,000 뉴런을 무료로 주는데 이 앱은 회당 약 14 뉴런을 쓰므로 하루 700회쯤 됩니다. Cloudflare 무료 계정을 만듭니다. 카드 등록은 필요 없습니다. 1. 대시보드 우측의 Account ID 복사 2. My Profile → API Tokens → Workers AI 템플릿으로 토큰 발급Read the full README ↗
PDF 책을 올리면 원하는 단어가 나온 모든 쪽과 문맥을 찾아주고, 버튼 하나로 이 문맥에서 그 단어가 무슨 뜻인지 풀어주는 웹앱입니다.
PDF는 서버로 전송되지 않습니다. 브라우저 안에서만 읽고 검색합니다. 뜻 풀이를 누를 때만 그 대목의 앞뒤 문장(최대 1,200자)이 AI에 전달됩니다.
.
├── index.html 프론트엔드 전부 (뷰어 · 검색 · 해설 · 단어장 UI)
├── api/
│ ├── explain.js 해설 서버 함수 — 현재 Cloudflare Workers AI 사용
│ ├── _wordbook-shared.js 여러 사람이 함께 쓰는 단어장 (Upstash Redis, 배포되지 않음)
│ ├── _explain-gemini.js Google Gemini 버전 (참고용, 배포되지 않음)
│ └── _explain-anthropic.js Claude API 버전 (참고용, 배포되지 않음)
├── package.json
├── .env.example
└── .gitignore
api/ 안에서 밑줄(_)로 시작하는 파일은 Vercel이 함수로 만들지 않습니다.
셋 다 주고받는 형식({word, context} → {text})이 같으므로,
쓰고 싶은 것을 explain.js로 이름만 바꾸고 환경변수를 맞춰주면 됩니다.
index.html은 어느 쪽이든 고칠 필요가 없습니다.
Gemini 무료 등급은 어느 모델이든 하루 20회(RPD 20)가 상한이라 리딩 클럽 용도로 쓸 수 없었습니다. Workers AI는 하루 10,000 뉴런을 무료로 주는데 이 앱은 회당 약 14 뉴런을 쓰므로 하루 700회쯤 됩니다.
Cloudflare 무료 계정을 만듭니다. 카드 등록은 필요 없습니다.
git init
git add .
git commit -m "봉다리 리딩 클럽 단어 색인"
git branch -M main
git remote add origin https://github.com/<내계정>/<저장소>.git
git push -u origin main
CF_ACCOUNT_ID 와 CF_API_TOKEN 추가따로 붙일 것이 없습니다. 단어장은 이 브라우저의 localStorage 에만
저장됩니다. 계정·암호·환경변수가 필요 없고, PDF 를 서버로 보내지 않는
이 앱의 방식과도 맞습니다.
단어장은 책 단위로 모입니다. 책 식별자는 파일명이 아니라 PDF 내용의 SHA-256 앞 16자라서, 파일 이름을 바꿔 저장했어도 같은 책이면 같은 단어장이 열립니다. 반대로 다른 스캔본·다른 판본은 다른 단어장이 됩니다.
브라우저 데이터를 지우면 단어장도 함께 사라지므로, 단어장 탭의 내보내기로 JSON 파일을 빼둘 수 있습니다. 가져오기로 되돌립니다.
여러 사람이 함께 채우는 방식이 필요해지면 api/_wordbook-shared.js
(Upstash Redis + 공유 암호 구현)를 wordbook.js 로 되살리면 됩니다.
npm i -g vercel
vercel dev
.env 파일을 만들어 CF_ACCOUNT_ID=... 와 CF_API_TOKEN=... 을 넣으면 로컬에서도 뜻 풀이가 동작합니다.
index.html을 그냥 더블클릭해서 열면 /api/explain이 없으므로 검색만 됩니다.
.gitignore에 *.pdf를 걸어뒀습니다. 저작물이기도 하고 용량도 큽니다./api/explain을 부를 수 있습니다.
모델·토큰 수·문맥 길이는 서버에서 고정해 뒀습니다.오늘 N / 10,000 뉴런 이 표시되고, 50%에서 노랑·80%에서 빨강으로 바뀌며
경고 배너가 뜹니다. 한도를 실제로 넘기면 화면 상단에 빨간 배너로
"오전 9시 초기화 / 유료 전환" 안내가 남습니다.
단, 이 눈금은 localStorage 기반이라 이 브라우저 몫만 셉니다. 여러 사람이
쓰면 계정 합계는 더 크므로, 정확한 값은 Cloudflare 대시보드에서 확인하세요.
(Cloudflare 는 Workers AI 사용량 알림을 제공하지 않아 앱에서 대신 셉니다.)