使用说明
🇿🇦 CoverCheck-医疗援助助理
您的南非医疗援助问题得到了准确、最新的信息回答。
一个现代的人工智能医疗援助助理,帮助南非人了解和比较前三大医疗援助提供者的医疗援助计划。基于高质量数据、语义搜索和RAG(检索增强生成)构建。
🎯 项目状态
✅ 第3阶段完成: 配备现代用户界面的生产就绪医疗援助助理
- ✅ 第一阶段: 来自前三大提供商的高质量抓取(23/26份文件,88%的质量)
- ✅ 第二阶段: PostgreSQL+pgvector数据库、语义搜索、云LLM集成
- ✅ 第三阶段: 具有提供商选择器、增强引用和响应式设计的公共平台
- 🔄 第4阶段(当前): 部署准备和优化
该应用程序功能正常,已准备好进行测试!
✨ 特性
特点
- 🏥 前三大SA提供商 -Discovery Health、Bonitas医疗基金、Momentum Health
- 💬 人工智能聊天 -用自然语言提问,获得准确答案
- 🔍 语义搜索 -查询扩展和意图检测,以获得更好的结果
- 📚 来源引用 -每个答案都有官方文件支持,并附有链接
- 🎨 现代用户界面 -Next.js/Vercel灵感设计,暗模式
- 📱 响应式 -针对台式机、平板电脑和移动设备进行了优化
- 🎯 提供商筛选器 -搜索所有提供商或专注于一个提供商
- ⚡ 实时流媒体 -答案在生成时源源不断地流入
- 🇿🇦 SA上下文 -兰德(R)、南非英语拼写和医疗援助术语
技术特性
- 🗄️ 矢量数据库 -PostgreSQL与pgvector用于语义搜索
- 🤖 RAG系统 -基于云LLM的检索增强生成
- 🔄 回退策略 -多种LLM型号(Gemini、Llama、Mistral)
- 🎭 智能重新排名 -基于意图的结果提升
- 📊 查询扩展 -自动同义词和相关术语扩展
🚀 快速开始
先决条件
- Node.js 18+
- npm或纱线
- 带pgvector扩展的PostgreSQL(适用于第2+阶段)
- Ollama(用于本地嵌入)
安装
# Clone the repository
git clone https://github.com/ThandoSomacele/covercheck.git
cd covercheck
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env and add your API keys and database connection string
环境变量
创建一个 .env 项目根目录中的文件,包含以下变量:
# Database Configuration
DB_CONNECTION_STRING=postgresql://user:password@host:port/database
# OpenRouter API Configuration
OPENROUTER_API_KEY=sk-or-v1-your_api_key_here
⚠️ 安全警告:
- 永远不要承诺你的
.env文件到git - 切勿在源代码中硬编码API密钥或机密
- 这
.env文件已在.gitignore为了保护你 - 使用
.env.example作为模板(它不包含真正的秘密)
运行应用程序
# Start the development server
npm run dev
# Open http://localhost:5173 in your browser
数据库设置
# Set up the database schema
psql $DB_CONNECTION_STRING -f scripts/db-setup.sql
# Load scraped documents into the database
npx tsx scripts/load-documents.ts
# Verify data loaded correctly
npx tsx scripts/check-db-stats.ts
# Optimize database performance
psql $DB_CONNECTION_STRING -f scripts/optimize-db.sql
报废(可选)
# Scrape all 3 providers
npm run scrape
# Scrape individual providers
npm run scrape:discovery
npm run scrape:bonitas
npm run scrape:momentum
📁 项目结构
covercheck/
├── src/
│ ├── lib/
│ │ ├── insurance/ # Static insurance data
│ │ │ ├── documents-sa.ts # SA medical aid documents
│ │ │ └── insurance-*-glossary.ts
│ │ └── server/
│ │ ├── rag.ts # RAG logic (future)
│ │ └── scrapers/ # Web scraping system
│ │ ├── BaseScraper.ts
│ │ ├── DiscoveryHealthScraper.ts
│ │ ├── BonitasScraper.ts
│ │ ├── MomentumHealthScraper.ts
│ │ └── ScraperOrchestrator.ts
│ └── routes/
│ ├── +page.svelte # Chat UI (future)
│ └── api/chat/+server.ts # API endpoint (future)
├── scripts/ # Utility scripts
│ ├── scrape.ts # Main scraping CLI
│ ├── validate-content.ts # Quality validation
│ └── analyze-scraped-data.ts # Data analysis
├── docs/ # Complete documentation
│ ├── README.md # Documentation index
│ ├── SCRAPING.md # Scraping system guide
│ ├── VERIFIED_URLS.md # Verified provider URLs
│ └── SCRAPER_FIX_PLAN.md # Quality improvement process
├── scraped-data/ # JSON output (gitignored)
├── legacy/ # Old implementations
└── COVERCHECK_ROADMAP.md # Development roadmap
📊 数据质量
当前报废结果
| 提供商 | 文档 | 质量率 | 平均内容 |
|---|---|---|---|
| 发现运行状况 | 13/14 | 93% | 10000个字符 |
| 动量健康 | 9/10 | 90% | 10500个字符 |
| 博尼塔斯医疗基金 | 1/2 | 50% | 193754个字符 |
| 总计 | 23/26 | 88% | 约10000个字符 |
内容覆盖范围
✅ 计划信息
- 每个供应商的所有主要计划
- 计划福利和除外责任
- 保险明细
✅ 福利文件
- 医院福利
- 日常福利
- 慢性病福利
✅ 支持信息
- 索赔流程
- 比较工具
- 联系方式
🛠️ 发展路线图
✅ 第1阶段:数据报废(完成)
- [x] 研究和验证提供商URL
- [x] 用Playwright构建抓取系统
- [x] 实施质量验证
- [x] 淘汰前三大SA提供商
- [x] 获得20+份质量文件
✅ 第2阶段:数据库和RAG(完成)
- [x] 设置PostgreSQL+pgvector
- [x] 设计数据库模式
- [x] 处理和组块文档
- [x] 使用Olama生成嵌入
- [x] 通过查询扩展实现语义搜索
- [x] 使用云LLM构建RAG管道
- [x] 实施流式响应
- [x] 添加源引用
✅ 第三阶段:公共平台(完成)
- [x] 具有暗模式的现代SvelteKit UI
- [x] 提供者选择器组件
- [x] 增强的引文显示,带有相关性得分
- [x] 手机/平板电脑的响应式设计
- [x] CoverCheck品牌和徽标
🔄 第4阶段:部署准备(当前)
- [x] 生产环境配置
- [x] 数据库优化和索引
- [x] 错误处理改进
- [x] 部署文档
- []分析跟踪
- []最终测试和质量保证
📅 第五阶段:生产启动(下)
- []部署到Vercel+铁路/Supabase
- []监控性能和错误
- []收集用户反馈
- []内容更新自动化
📚 文档
所有文件均在 docs/ 目录:
- docs/README.md -文件索引
- docs/sCAPING.md -完整的刮擦指南
- docs/VERIFIED_URLS.md -工作提供程序URL
- docs/SCRAPER_FIX_PLAN.md -质量改进过程
- docs/PROJECT_OVERVIEW.md -项目目标和架构
- docs/SETUP_SA.md -SA特定设置指南
🧪 技术栈
当前:
- SvelteKit 的 -全栈框架
- TypeScript -类型安全
- 剧作家 -网络抓取
- 再见 -HTML解析
计划:
- PostgreSQL+pgvector -矢量数据库
- 奥拉玛 -本地AI模型运行器
- OpenRouter -云人工智能API(备选)
- Svelte 5 -反应式UI
🔧 添加新提供商
想添加另一个医疗援助提供者吗?请参阅 添加新刮刀 导游。
快速概述:
- 创建一个新的scraper类来扩展
BaseScraper - 定义目标URL和选择器
- 注册
ScraperOrchestrator - 测试和验证质量
🤝 贡献
这是一个学习项目,记录了构建生产RAG系统的过程。欢迎投稿、建议和反馈!
📝 许可证
有关详细信息,请参阅LICENSE文件。
🙏 致谢
内置:
数据来源:
由以下材料制成❤️ 为南非人提供简单、准确的医疗援助信息。
当前版本: 第3阶段完成(生产准备就绪) 最后更新时间: 2025-11-20