1. 项目背景与核心需求
签证申请材料的准备向来是个技术活。不同于旅游攻略可以天马行空,签证材料的核心诉求是"逻辑合理、证明财力、强约束力"。传统方式下,申请人需要手动编写行程单、解释信等材料,既费时又容易出错。这个项目正是为了解决这个痛点而生——通过AI自动生成符合签证官审核标准的全套材料。
项目基于开源的hello agents-travel assistant改造,但做了深度定制:
- 去除对真实机票API的硬依赖,改用LLM生成合理虚拟航班信息
- 重构前端界面,优化用户输入体验
- 重写Prompt,剔除冗余字段,提升生成速度
- 引入Word模板系统,实现一键导出标准格式文档
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构与核心设计
2.1 整体工作流设计
项目采用前后端分离架构,核心工作流如下:
- 用户输入:在前端填写旅行天数、预算、职业状况等基本信息
- 后端处理:
- 第一步:生成精简的行程单JSON
- 第二步:以行程单为上下文生成解释信
- 前端渲染:展示生成结果并提供Word导出功能
这个"两步走"的设计是项目关键创新点,有效解决了长文本生成的Token爆炸问题。
2.2 核心技术创新点
2.2.1 串行工作流设计
原项目尝试一次性生成所有内容,导致:
- Token消耗过大
- JSON截断风险高
- 生成质量不稳定
改进方案:
- 拆分为两个独立但关联的生成任务
- 第一个任务的结果作为第二个任务的上下文
- 每个任务都有明确的输入输出规范
2.2.2 模板化与占位符系统
引入Word模板(template_cv.docx)实现:
- 固定格式的套话由模板处理
- LLM专注于生成核心内容
- 使用占位符标记需要用户自定义的内容
例如模板中会有类似内容:
code复制【请输入您的职务】
【请输入您的月收入】
2.2.3 前端硬编码与条件渲染
在前端实现:
- 固定不变的文本直接硬编码
- 动态内容通过Vue插值渲染
- 空白天数自动隐藏并补充默认文本
3. 关键技术实现细节
3.1 大模型交互层优化
3.1.1 LLM参数锁定
通过代理模式强制锁定关键参数:
python复制class VisaL
