提示词工程
编写高质量System prompt 通用规范有哪些
好的系统提示词要:
- 讲清 AI 身份;
- 明确要做什么、不能做什么;
- 规定输出格式,给标准案例;
- 遇到无资料情况,写好兜底回答;
- 用分隔符隔开用户内容,防注入。
什么是提示词分层,指令优先级需要注意什么
提示词的排列顺序如下:
- 最前面:分优先级、安全格式这类硬性规定。
- 中间:任务规则。
- 最后:用户问题和参考资料。
前面的指令优先级更高,用户输入无法覆盖核心约束。
如何使用分隔符隔离用户输入防御prompt注入?
1.使用固定特殊分隔符(如、<<>>)包裹全部用户输入、上传文档内容;
2.在系统提示词明确告知模型:仅分隔符内为用户内容,分隔符外部的系统指令不可被修改;
3.识别用户输入内的伪造分隔符,提前转义清洗;
4.禁止用户输入与系统指令拼接无边界文本;
5.搭配内容过滤,拦截"忽略上文"类注入关键词。
用固定符号把用户输入完整包起来,明确告诉模型符号外的规则不能被修改,同时过滤用户写的伪造分隔符和覆盖指令,防止篡改系统规则。
要求模型输出固定JSON格式,常有哪些方案
- 提示词软约束
- 后端解析JSON,去除掉口水词
- Pydantic 校验:解析出来的 JSON 用 Pydantic 模型去校验------类型对不对、必填字段有没有。
如何通过Prompt约束模型,禁止编造不存在信息
- 提示词软约束
- 降低Temperature
- 增加校验指令:生成答案前自查信息是否存在于参考文本。
提示词版本如何管理,生产环境版本怎么控制
- 统一存入配置中心
- 每条提示词绑定版本号,更新记录
- 支持ABtest
- 版本回滚机制
- 记录每版效果指标
工程化,Java后端融合AI
Spring AI是什么?Java项目如何整合大模型API
Spring AI是Spring生态专门对接大模型的工具,一套代码兼容各家大模型,Java项目引入依赖配置密钥,就能同步或流式调用,还自带向量库,RAG,工具调用能力,不用自己封装Http请求
Java微服务架构中,AI能力如何封装独立服务?同步调用VS异步调用
封装方案:
接入层:接收前端/业务微服务请求,鉴权,限流
AI核心层:封装LLM,RAG,AGent,向量操作
存储层:向量库,对话MySQL,消息队列
同步:短会话,单轮对话,低延迟需求,实时返回流式结果
异步:大批量文档向量化,长报告生成,批量知识库处理
AI接口高并发场景,如何设计线程池隔离防止拖垮业务系统?
单独开一套线程池,专门处理 AI 请求,与业务线程分开互不影响;限制最大并发高峰,使用消息队列缓冲,防止调用大模型阻塞占用业务线程。
如何缓存Embedding向量,高频问答结果降低模型调用成本
高频问题和重复文本的向量存在Redis中,下次直接复用不在调用Embedding模型,知识库更新清理对应缓存,大幅减少API 调用次数省钱。
使用Sentinel/Resilience4j对大模型接口实现熔断,限流,降级?
限流:按QPS限制AI接口并发,超出返回兜底话术
熔断:连续失败达到阈值,打开熔断器,一段时间直接降级
降级策略:缓存结果兜底,固定标准回答,切换备用模型
线程隔离:AI接口独立资源池,故障不扩散业务
AI服务全链路日志监控需要哪些指标
调用指标:错误率,超时率
耗时指标:总耗时,Embedding耗时,LLM生成耗时,检索耗时
Token指标:
业务指标:问答准确率,幻觉率,工具调用成功率
资源指标:线程池占用,向量数据库查询延迟
安全指标:Prompt注入拦截次数,高危工具调用
大模型调用全链路耗时优化,全链路延迟瓶颈一般在哪里
LLM模型推理耗时
多路召回+Rerank金牌检索耗时
大批文档向量化
AI业务数据安全:用户对话,知识库数据如何防泄露
传输全程HTTPS加密
数据库对话,知识库字段加密存储
多租户逻辑隔离,细粒度权限检索
本地部署ollama
你做过的RAG项目最大难题是什么,如何排查优化
最大痛点:检索相关性差,问答幻觉高,整体准确率低。
排查步骤:
- 检索层排查:查看召回文档相似度分数,判断是否多路召回缺失。
- 分块排查:若切块太大切断了知识点,需调整重叠,改用递归切块。
- Embedding 模型评测:更换中文专项向量模型。
- 增加 Rerank 环节:过滤无关内容。
- 优化 Query 改写:拓展并标准化用户口语提问。
- 提示词增加溯源约束,降低幻觉
如果RAG问答准确率不足,你会按照什么顺序迭代优化?
迭代优先级,从低成本到高成本
- 优化 query 预处理(改写、拓展、纠错),成本最低见效快。
- 增加 rerank 重排序。
- 调整 chunk 大小与重叠,优化切分策略。
- 完善多路召回(向量加 BM25)。
- 更换更高精度中文 embedding 模型。
- 清洗知识库噪声,过档过期文档。
- 提示词强约束溯源防幻觉。
如何评估一套AI Agent项目上线效果?有哪些观测指标?
- 任务完成率:Agent 能否完整走完用户需求。
- 工具调用指标:工具选择准确率、参数错误率。
- 回答指标:幻觉率、答案完整度、用户满意度。
- 工程指标:平均耗时、QPS、报错熔断次数。
- 成本指标:单会话平均 token 消耗。
- 业务指标:人工转接率、工单自动处理占比。
对比demo项目和生产级AI应用,需要额外增加哪些模块?
- 权限与租户隔离模块
- 限流、熔断、降级、容错
- 全链路日志监控告警
- 异步消息队列处理批量任务
- 缓存体系降成本
- 数据加密、隐私脱敏安全模块
- 版本管理、灰度发布
- 异常处理、人工兜底流程
- 知识库增量同步、过期清理
- 效果自动化评测平台
如何控制AI应用项目成本?从模型调用、向量存储等多个角度说明。
-
模型调用层面:
(a) 高频问答向量缓存
(b) 简单任务用低成本小模型
© 限制 Agent 最大调用步数
(d) 分层推理
-
向量存储:
(a) 合理 chunk 粒度,减少向量总量
(b) 冷热数据分离归档
© 选择低成本向量索引
-
工程层面:
(a) 异步批量向量化
(b) 消息队列削峰,减少瞬时调用
© 知识库定期清理归档
-
选型层面:
(a) 高频私有化用开源模型 Ollama
(b) 低频短期用商用 API
什么场景优先选用 Agent 方案?单纯 RAG 无法满足需求。
以下场景优先使用 Agent:
- 需要处理外部业务数据库、API、工单、订单等实时数据。
- 多步骤链式任务,需要分步执行、循环校验。
- 用户需求动态多变,无法固定检索条件。
- 需要多工具组合、多角色分工协作。
- 自动执行操作,如新建工单、生成报表、SQL 查询代码执行。
纯 RAG 只能读取静态文档,无法操作外部系统进行多步处理。