这一块目前做的太粗糙了

3. 核心短板:Embedding 模型过于“复古”

位置: backend/services/vector_service.py
现状:

1
self._model_name = 'paraphrase-multilingual-MiniLM-L12-v2'

面试官点评: “这个模型是 2019-2020 年左右的产物了。在 2025 年(假设现在的时间点),它的语义理解能力、特别是对长文本和专业术语(如 ‘LoRA’, ‘PPO’)的表征能力,已经被新模型甩开几条街了。你的 RAG 检索质量上限被这个模型锁死了。”
优化方案:

  • 开源SOTA:换成 **BAAI/bge-m3**(支持多语言、长文本、稀疏检索混合)。
  • 闭源SOTA:直接调 OpenAI text-embedding-3-small 或 DeepSeek 的 Embedding 接口(如果有)。
  • 代码改动:只需要改一行 model_name,性价比极高。

4. 潜在雷区:PDF 解析器的鲁棒性

位置: backend/services/pdf.py
现状:

1
PDF_LIBRARY = "PyPDF2" # 或 "pdfplumber"

面试官点评: “学术论文通常是双栏排版(Two-Column Layout)。PyPDF2 这种基于流的解析器,经常会把左栏的一行和右栏的一行拼在一起,导致生成的文本逻辑错乱。LLM 读了这种‘乱序’的文本,生成的方案怎么可能靠谱?”
优化方案:

  • 工具升级:使用 **pymupdf (fitz)**。它不仅速度快(C++底层),而且支持按“文本块(Block)”提取,能较好地处理双栏问题。
  • 终极方案:接入 MinerUNougat 等基于视觉模型的解析工具(但这会增加部署成本,作为实习生项目可选)。