Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Checks funeral home General Price Lists against the FTC Funeral Rule (16 CFR 453). Built for the Meta Global AI Developer Hackathon.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Itemized checks funeral home price lists against the FTC Funeral Rule and flags missing required disclosures and prices, with citations.
Built by Butch Ewing during the Meta Global AI Developer Hackathon. Live at https://itemized.mortuary.ai.
Itemized is an automated, AI-assisted check against the federal FTC Funeral Rule only. It does not check state law or the other price lists and statements the Rule requires, and the AI can misread documents. Results are not legal advice. Funeral homes should confirm results with their attorney or state funeral regulator.
Open https://itemized.mortuary.ai and choose a sample list. The samples are fictional funeral homes:
Each review is a letter you can open on its own page, download as a PDF, or hand to an AI assistant with the "fix it with your AI" prompt, which lists the exact sentences the list is missing.
The Funeral Rule lets families choose only the funeral goods and services they want, pay only for those, and compare prices between funeral homes. Its core is the General Price List, which a funeral home must give to anyone who asks in person about arrangements. The FTC enforces it with undercover calls and visits. After calling more than 250 funeral homes, it sent warning letters to 39 of them in January 2024 and said violations can bring penalties of up to $51,744 each (announcement). In earlier undercover visits to 90 funeral homes, 17 did not give itemized prices when they should have (2020 results).
Many funeral homes are small businesses. Itemized gives them a reading of their list against the Rule before an inspector does, and gives families a way to see what a list should include.
prep/rules/[email protected], a transcription of 16 CFR 453: required statements matched against the Rule's wording, itemized prices, and required options such as direct cremation with an alternative container. Only these rules can mark a requirement as not passed. When the evidence is unclear (a statement close to the Rule's wording but altered, or a line read from a photo rather than a clean PDF), the result is review, not fail.Uploading the same file again within 30 days returns the earlier review without another model call. A daily job deletes files and reviews 30 days after their last upload.
meta-models/muse-spark-open-1026) is a second, open-weights backend for the same pipeline, selected with one setting. It reads page images (8 per request; longer lists are read in batches and merged). Every evaluation on real price lists ran on it, so no real list was sent to a hosted API.EVAL.md has the full tables, produced by npm run eval against labeled lists.
/llms.txt says when to use Itemized and how to call it.Accept: text/markdown with Markdown.POST /api/audits with the list as multipart file fields, poll GET /api/audits/{id} until done, then link the person to /r/{id} or /r/{id}/pdf. Uploads are limited to 5 a minute per address.No accounts, cookies or analytics, and the browser talks only to itemized.mortuary.ai; the fonts are self-hosted. Uploaded lists are processed by Meta AI models, and Meta may use them to improve its products. Files and reviews are deleted 30 days after the last upload. See the privacy page.
There are two Wrangler configurations. wrangler.jsonc is portable: it names no account, domain or resource IDs, and it is what the Deploy to Cloudflare button uses. wrangler.production.jsonc holds the settings for itemized.mortuary.ai.
cp .dev.vars.example .dev.vars # then fill in META_API_KEY
npx wrangler d1 migrations apply DB --local
npm run dev
To work against the production configuration locally, use npx wrangler d1 migrations apply DB --local -c wrangler.production.jsonc and npm run dev:production.
Run npm run types after changing either configuration (types come from wrangler.production.jsonc), and npm run typecheck and npm test to check the code. npm run eval reruns the evaluation.
Deploying:
npm run deploy applies D1 migrations and deploys with the portable configuration. The button runs this in your account and creates its database, storage bucket and queue there. You need a Meta Model API key; a Baseten key is optional. Model calls are billed to your Meta account.npm run deploy:production applies D1 migrations and deploys itemized.mortuary.ai with wrangler.production.jsonc.Secrets are set with wrangler secret put, not stored in the repo: META_API_KEY, and BASETEN_API_KEY if you use the open-weights provider.
See PROVENANCE.md for what existed before the hackathon and what was built during it. In short: the ruleset transcription, the synthetic test lists and the FTC sample predate kickoff; all application code was written during the event, and the git history shows when.
Copyright 2026 Butch Ewing. Licensed under the Apache License, Version 2.0. The self-hosted fonts are under the SIL Open Font License; see public/fonts/.