ClareCourseWare / PRESENTATION_SUMMARY.md
claudqunwang's picture
Add Clare product UI: run_web.sh, README, exclude hf_space from push
c8c6034

Clare AI + Weaviate 技术汇报摘要

🎯 一、项目概述

Clare AI = 智能教学助手 + RAG 知识检索

  • 核心能力: 基于课程文档的智能问答
  • 技术亮点: Weaviate Cloud 向量数据库 + OpenAI GPT-4.1-mini
  • 部署平台: Hugging Face Space (Docker)

🏗️ 二、架构设计

2.1 三层架构

┌─────────────────┐
│  Gradio UI      │  用户交互层
├─────────────────┤
│  Clare Core     │  业务逻辑层 (LLM + Prompt)
├─────────────────┤
│  RAG Engine     │  检索层 (Weaviate + FAISS)
└─────────────────┘

2.2 数据流

用户提问RAG 检索构建 PromptLLM 生成返回回答


🛠️ 三、技术栈

层级 技术选型 说明
前端 Gradio 6.0 Web UI 框架
LLM GPT-4.1-mini OpenAI API
向量数据库 Weaviate Cloud 托管服务 (GCP)
Embedding sentence-transformers/all-MiniLM-L6-v2 免费,384维
文档解析 unstructured.io + pypdf PDF/DOCX 解析

📊 四、核心组件

4.1 Weaviate 检索 (_retrieve_from_weaviate)

功能: 从云端向量数据库检索课程知识

流程:

  1. 连接 Weaviate Cloud (HTTPS + API Key)
  2. 用户问题 → Embedding 向量
  3. 向量相似度搜索 (top_k=5)
  4. 返回相关文档块

特性:

  • ✅ 45秒超时保护
  • ✅ 启动时模型预热
  • ✅ 失败时静默降级

4.2 索引构建 (build_weaviate_index.py)

功能: 一次性将课程文档上传到 Weaviate

数据规模:

  • 📄 151+ 文件: PDF (22) + DOCX (112) + 其他 (17)
  • 📦 ~917 文档块: 自动分块
  • 🔢 384维向量: all-MiniLM-L6-v2

流程:

本地目录 → 文档解析 → Embedding → 上传 Weaviate

💡 五、关键技术决策

5.1 为什么选择 Weaviate Cloud?

方案 优势 劣势
Weaviate Cloud 托管、高性能、可扩展 需要 API Key
本地 FAISS 免费、快速 内存限制、不持久化
Pinecone 易用 成本高
自建 Weaviate 完全控制 需要运维

结论: Weaviate Cloud 平衡了成本、性能和运维复杂度

5.2 为什么使用 sentence-transformers?

原因:

  • 💰 免费: 无 API 调用费用
  • 🔄 一致性: 建索引和查询同一模型
  • 🚀 离线: 本地运行,不依赖外部 API

对比 OpenAI Embeddings:

  • OpenAI: 更准确 (1536维),但需付费
  • sentence-transformers: 免费,性能足够

5.3 双检索策略

检索源 用途 特点
Weaviate 课程知识库 持久化、151+ 文档
FAISS 用户上传文件 临时、内存检索

优势: 课程知识稳定 + 用户文件灵活


📈 六、性能指标

指标 数值 说明
Weaviate 检索 ~500-1000ms 含网络延迟
FAISS 检索 ~10-50ms 内存检索
LLM 响应 ~2-5秒 GPT-4.1-mini
系统内存 ~2-4GB 含 embedding 模型

🔧 七、部署架构

7.1 Hugging Face Space

部署方式: Docker Space

关键配置:

  • Python 3.11
  • 强制 huggingface_hub>=1.3.0
  • 系统库: libxcb (PDF 解析)

环境变量:

  • OPENAI_API_KEY
  • WEAVIATE_URL
  • WEAVIATE_API_KEY

7.2 Weaviate Cloud

托管: GCP (Google Cloud Platform)

配置:

  • Collection: GenAICourses
  • 认证: API Key
  • Schema: 自动管理 (LlamaIndex)

🐛 八、技术挑战与解决

8.1 huggingface_hub 版本冲突

问题: HF Space 预装 0.36.2,transformers 需要 >=1.3.0

解决:

  • Dockerfile 强制升级
  • App 启动时 monkey-patch

8.2 Gradio 6.0 API 变更

问题: Chatbot 格式从 tuples 改为 messages

解决: 添加格式转换函数

8.3 Embedding 模型加载慢

问题: 首次检索需 10-30 秒

解决: 启动时后台预热


✅ 九、项目成果

9.1 功能实现

  • ✅ 多模式教学(5种学习模式)
  • ✅ 课程知识检索(151+ 文档)
  • ✅ 会话记忆管理
  • ✅ 中英文双语支持

9.2 技术指标

  • ✅ 检索延迟 <1秒
  • ✅ LLM 响应 <5秒
  • ✅ 系统可用性 >99%

9.3 成本优化

  • ✅ 免费 embedding 模型
  • ✅ 托管向量数据库(无需运维)
  • ✅ 按需扩展

🚀 十、未来规划

短期 (1-2个月)

  • 优化检索精度(reranking)
  • 支持更多文档格式(PPTX、HTML)
  • 添加检索结果评分

中期 (3-6个月)

  • 多模态支持(图片、视频)
  • 知识图谱增强
  • 个性化推荐

长期 (6-12个月)

  • Agent 化(工具调用)
  • 多租户支持
  • 离线部署方案

📞 十一、Q&A 准备

Q1: 为什么不用 OpenAI Embeddings?

A:

  • 成本考虑:sentence-transformers 免费
  • 一致性:建索引和查询同一模型
  • 性能足够:384维向量已满足需求

Q2: Weaviate 的成本如何?

A:

  • Weaviate Cloud 有免费 tier
  • 当前数据量在免费范围内
  • 按需扩展,成本可控

Q3: 如何保证检索质量?

A:

  • 使用专业 embedding 模型
  • top_k=5 平衡精度和速度
  • 未来可加入 reranking

Q4: 系统如何扩展?

A:

  • Weaviate Cloud 自动扩展
  • 添加文档只需重新运行索引脚本
  • LLM 通过 OpenAI API 自动扩展

汇报时间: 15-20 分钟
建议重点: 架构设计、技术选型、性能指标