尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A portfolio project that reads text-based dental Explanation of Benefits PDFs, drafts line items for a person to review, and exports an X12 835 file or a CSV for Dentrix, Eaglesoft, or Open Dental.
It is a learning project by Adhil. It is not for sale, not a HIPAA product, and not for real patient information. Use fictional documents only.檢視完整 README ↗A portfolio project that reads text-based dental Explanation of Benefits PDFs, drafts line items for a person to review, and exports an X12 835 file or a CSV for Dentrix, Eaglesoft, or Open Dental.
It is a learning project by Adhil. It is not for sale, not a HIPAA product, and not for real patient information. Use fictional documents only.
Live site: https://eob-reader.vercel.app
AI_PROVIDER=ollama to use a local Ollama server instead.audit_log table is unused, and so is payer_templates.npm install
npm run dev
The dev server listens on port 3020. Without Supabase env vars the marketing page and the demo still render. Google sign-in does not.
Copy the variables you need into .env.local. See .env.example.
Extraction tries providers in this order and skips any whose key is unset:
GEMINI_API_KEY — Google Gemini REST (generativelanguage.googleapis.com). Optional GEMINI_MODELS is a comma-separated list. The default is gemini-3.5-flash-lite,gemini-3.1-flash-lite,gemini-3.8-flash,gemini-2.5-flash-lite. Flash-Lite models are listed first because this key allows about 500 of those requests a day and about 20 Flash requests a day. A 429, 403, 404, or 5xx moves to the next model. Output is capped around 4000 tokens and asked for as JSON.GROQ_API_KEY — Groq’s OpenAI-compatible API. Optional GROQ_MODEL defaults to openai/gpt-oss-120b. That model spends tokens on reasoning, so the request asks for up to 6000 output tokens when they fit. Groq’s free tier allows about 8,000 tokens per minute and counts the prompt plus the max_tokens you request, so a long EOB gets a smaller ceiling. A request that still does not fit falls through.OPENROUTER_API_KEY — last resort. Same model order and request shape as before: google/gemini-2.5-flash, google/gemini-2.5-flash-lite, then meta-llama/llama-3.3-70b-instruct, with max_tokens 4000.Users never see the provider’s error text. A signed-in GET /api/ai-health pings the first model of each configured provider and does not return keys. Add ?all=1 to ping every model. That full check spends more of the daily quota.
Other variables:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY (keep-alive)NEXT_PUBLIC_APP_URLCRON_SECRET (keep-alive)AI_PROVIDER, OLLAMA_URL, OLLAMA_MODEL (optional local model)Apply supabase/migrations in order before using upload. 004_drop_billing_columns.sql drops leftover trial and Polar columns. Apply it by hand in the Supabase SQL editor. The app does not read those columns, so it works before the file is applied.
Questions: [email protected]