Commit Graph

8 Commits

Author SHA1 Message Date
91579d54a0 fix: pass pdf_path to normalizer for data provenance
- Add pdfPath to extraction results in parse_session
- Pass pdf_path to normalizer functions in generate_ppt
- Fix 'missing PDF hash' validation error
2026-07-24 16:41:45 +08:00
eef8fc0892 fix: support multiple PDF parsers for PPT extraction
- Add compatibility for PyMuPDF versions (fitz and pymupdf imports)
- Add fallback support for PyPDF2, pypdf, and pdfplumber
- Update requirements.txt with PDF parsing dependencies
- Fix 'cannot extract PDF text' error in Docker environment
2026-07-24 16:36:52 +08:00
3a0f4f6830 feat: support Dify-synced models without separate API key
When a model is selected from Dify, set provider='dify' and call
through Dify Chat API (/v1/chat-messages) using the existing
DIFY_CHAT_APP_API_KEY. No separate API key configuration needed.

- Frontend: hide API Key/Base URL fields when provider is 'dify',
  show 'via Dify, no API key needed' tag
- Backend: add _call_dify() to route through Dify Chat API
- Backend: _try_load_db_config supports dify provider without api_key

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 16:18:59 +08:00
c8e0c0bb1e feat: add model configuration for PPT and poster generation
- PptSettingsAdmin.vue: full settings page with provider/model/API key
  config for PPT extraction, poster copy, and poster image generation
- Backend: GET /insurance/admin/ppt/available-models to fetch models
  from Dify API (falls back to builtin list when unavailable)
- LLM client: read model config from SystemSetting DB with 60s cache,
  priority: database > environment variables > defaults
- ppt-admin-api.ts: add getAvailableModels() method

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 13:46:04 +08:00
6c3343a222 fix: accept cached extractions in generate/validate and improve parse error UX
- generate_ppt and validate_extraction now accept status 'cached'
  alongside 'success', matching the frontend's hasSuccess logic
- PptParsing: show extraction error messages in the results table
- PptParsing: show '解析失败' icon when all extractions fail
- PptParsing: only show '下一步' button when at least one extraction succeeded
- routes.py: add error logging with stack trace in parse endpoint

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 13:05:27 +08:00
623815a134 fix: 添加 PyMuPDF 详细错误信息并创建缺失的迁移文件
- extraction.py: 添加更详细的 ImportError 错误信息,显示具体原因
- migrate_016.py: 创建 insurance_ppt_sessions 表(修复 500 错误)

解决 PDF 上传失败问题:
1. PyMuPDF 导入失败时显示具体错误原因
2. 数据库表 insurance_ppt_sessions 不存在导致插入失败

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 11:29:49 +08:00
5d28e4518e 0723 PPT加海报功能初步完成 2026-07-23 15:04:16 +08:00
4a556a1cc7 0723 PPT功能初步融合 2026-07-23 13:10:50 +08:00