AI 应用方案设计

发布时间:2026/8/8 7:14:24

AI 应用方案设计
根据需求实现具备多轮对话能力的 AI 恋爱大师应用整体方案围绕 2 个核心展开系统提示词的设计多轮对话的实现1、系统提示词设计系统提示词相当于 AI 应用的 “灵魂”直接决定 AI 的行为模式、专业性和交互风格。简单提示写法直接写一段系统预设定义你是谁能做什么你是一位恋爱大师为用户提供情感咨询服务简单提示可以运行但效果不理想。现实咨询场景专家会主动抛出引导问题挖掘背景而不是被动等待用户完整描述。 示例引导问题最近有什么迷茫的事情么请问你有什么需要我帮助的么你们的感情遇到什么问题了么多轮对话场景下AI 不能失忆要把历史对话作为上下文不断了解用户输出更全面建议。借助 AI 优化提示词输入给 AI 的指令我正在开发【恋爱大师】AI对话应用请你帮我编写设置给 AI 大模型的系统预设 Prompt 指令。要求让 AI 作为恋爱专家模拟真实恋爱咨询场景、多给用户一些引导性问题不断深入了解用户从而提供给用户更全面的建议解决用户的情感问题。AI 输出优化后的系统提示词扮演深耕恋爱心理领域的专家。开场向用户表明身份告知用户可倾诉恋爱难题。围绕单身、恋爱、已婚三种状态提问单身状态询问社交圈拓展及追求心仪对象的困扰恋爱状态询问沟通、习惯差异引发的矛盾已婚状态询问家庭责任与亲属关系处理的问题。引导用户详述事情经过、对方反应及自身想法以便给出专属解决方案。2、多轮对话实现实现带 “记忆力” 的 AI记住历史对话保持上下文连贯使用 Spring AI 框架对话记忆能力。 Spring AI 提供ChatClientAPI 和大模型交互。ChatClient 特性旧方式直接注入ChatModel调用大模型新方式手动构造ChatClient功能更丰富灵活支持链式调用Fluent API代码对比// 基础用法(ChatModel) ChatResponse response chatModel.call(new Prompt(你好)); // 高级用法(ChatClient) ChatClient chatClient ChatClient.builder(chatModel) .defaultSystem(你是恋爱顾问) .build(); String response chatClient.prompt().user(你好).call().content();两种构建 ChatClient 方式// 方式1使用构造器注入 Service public class ChatService { private final ChatClient chatClient; public ChatService(ChatClient.Builder builder) { this.chatClient builder .defaultSystem(你是恋爱顾问) .build(); } } // 方式2使用建造者模式 ChatClient chatClient ChatClient.builder(chatModel) .defaultSystem(你是恋爱顾问) .build();ChatClient 多种响应格式// 1. 返回 ChatResponse 对象包含元数据如 token 使用量 ChatResponse chatResponse chatClient.prompt() .user(Tell me a joke) .call() .chatResponse(); // 2. 返回实体对象自动将AI输出映射为Java对象 // 2.1 返回单个实体 record ActorFilms(String actor, ListString movies) {} ActorFilms actorFilms chatClient.prompt() .user(Generate the filmography for a random actor.) .call() .entity(ActorFilms.class); // 2.2 返回泛型集合 ListActorFilms multipleActors chatClient.prompt() .user(Generate filmography for Tom Hanks and Bill Murray.) .call() .entity(new ParameterizedTypeReferenceListActorFilms() {}); // 3. 流式返回适用于打字机效果 FluxString streamResponse chatClient.prompt() .user(Tell me a story) .stream() .content(); // 也可以流式返回ChatResponse FluxChatResponse streamWithMetadata chatClient.prompt() .user(Tell me a story) .stream() .chatResponse();设置默认参数动态修改系统提示词模板变量// 定义默认系统提示词 ChatClient chatClient ChatClient.builder(chatModel) .defaultSystem(You are a friendly chat bot that answers question in the voice of a {voice}) .build(); // 对话时动态更改系统提示词的变量 chatClient.prompt() .system(sp - sp.param(voice, voice)) .user(message) .call() .content();还支持指定默认对话选项、默认拦截器、默认函数调用。Advisors顾问 / 拦截器类比 Spring AOP一套可插拔拦截器。调用 AI之前、之后执行额外逻辑。前置增强调用 AI 前改写 Prompt、校验提示词安全后置增强调用 AI 后记录日志、处理返回结果示例代码给 ChatClient 增加拦截器MessageChatMemoryAdvisor实现多轮对话记忆QuestionAnswerAdvisor用于 RAG 知识库检索var chatClient ChatClient.builder(chatModel) .defaultAdvisors( new MessageChatMemoryAdvisor(chatMemory), // 对话记忆 advisor new QuestionAnswerAdvisor(vectorStore) // RAG 检索增强 advisor ) .build(); String response this.chatClient.prompt() // 对话动态设置拦截器参数会话id、记忆最大长度 .advisors(advisor - advisor.param(chat_memory_conversation_id, 678) .param(chat_memory_response_size, 100)) .user(userText) .call() .content();Advisors 执行流程流程图转文字步骤Spring AI 拿用户 Prompt 创建AdvisedRequest同时创建空AdvisorContext用来传递上下文数据。执行链上每一个 Advisor拦截器可以修改请求也可以直接截断请求不继续往下走自己填充返回内容。请求交给底层逻辑发送给ChatModel大模型。大模型返回ChatResponse响应沿着 Advisor 链条反向传回封装成AdvisedResponse携带共享的AdvisorContext。每一个后置 Advisor 处理、修改返回响应。提取结果转为ChatResponse返回给调用方。底层是责任链模式。拦截器执行顺序由getOrder()返回值决定数值越小越优先执行不是代码书写顺序。两种运行模式非流式 Non‑Streaming完整拿到全部结果再返回对象AdvisedRequest、AdvisedResponse调用CallAroundAdvisor。流式 Streaming打字机效果分段返回返回Flux流对象调用StreamAroundAdvisor。自定义 Advisor最好同时实现两种模式保证通用性。Chat Memory Advisor对话记忆拦截器内置 3 种实现MessageChatMemoryAdvisor把历史对话作为一条条独立消息追加到 prompt保留完整消息结构role角色user/assistant/system。PromptChatMemoryAdvisor把历史对话直接拼接到系统提示词文本里丢失原始消息边界。VectorStoreChatMemoryAdvisor把对话历史存入向量数据库。推荐使用MessageChatMemoryAdvisor符合大模型接口设计上下文连贯性更好。两种记忆存储输出样例1MessageChatMemoryAdvisor 输出消息数组格式[ {role: user, content: 你好}, {role: assistant, content: 你好有什么我能帮助你的吗}, {role: user, content: 讲个笑话} ]2PromptChatMemoryAdvisor 输出纯文本拼接以下是之前的对话历史 用户你好 助手你好有什么我能帮助你的吗 用户讲个笑话 现在请继续回答用户的问题。ChatMemory 存储接口ChatMemory是底层存储接口定义保存、查询、清空对话记录的抽象方法。public interface ChatMemory { default void add(String conversationId, Message message); void add(String conversationId, ListMessage messages); ListMessage get(String conversationId, int lastN); void clear(String conversationId); }Spring AI 内置多种存储实现InMemoryChatMemory内存存储重启丢失数据测试用。CassandraChatMemoryCassandra 持久化支持过期时间。Neo4jChatMemoryNeo4j 图数据库持久化无过期。JdbcChatMemoryJDBC 兼容数据库持久化无过期。也可以实现ChatMemory接口自定义存储介质。

相关新闻

【前端+SVG+Figma】SVG 兼容性复盘:Figma 导入文字“缩很小/不见“的发现、分析与解决

【前端+SVG+Figma】SVG 兼容性复盘:Figma 导入文字“缩很小/不见“的发现、分析与解决

2026/8/8 7:14:24

SVG 导入 Figma 文字消失?深度复盘跨工具兼容性修复实战 摘要 一句话说清:浏览器里完美的 SVG 面板,导入 Figma 后文字缩成 1 像素——根因是 pattern scale 嵌套位图撞上 objectBoundingBox 兼容性黑洞,本文用最大兼容子集重写…

CenterPoint:基于BEV特征图的3D目标检测核心原理与工程实践

CenterPoint:基于BEV特征图的3D目标检测核心原理与工程实践

2026/8/8 7:14:24

1. 从点云到BEV:CenterPoint的诞生背景与核心思想在自动驾驶和机器人感知领域,3D目标检测一直是个硬骨头。早期的方法,比如基于体素(Voxel)或者直接处理点云(PointNet系列),要么计算…

元夜十二谈新手怎么玩 元夜十二谈新手开局攻略

元夜十二谈新手怎么玩 元夜十二谈新手开局攻略

2026/8/8 7:14:24

关于元夜十二谈新手怎么玩,很多新手容易搞不清重点——是该先推进主线剧情还是先跟角色互动、轮盘系统怎么用、委托该怎么选。其实元夜十二谈新手怎么玩这件事没那么复杂,核心是把主线推进和角色培养的节奏把握好。主线推进元夜十二谈新手怎么玩的第一步…

Proteus仿真8086与8255:微机原理与接口技术的现代实践

Proteus仿真8086与8255:微机原理与接口技术的现代实践

2026/8/8 8:14:26

1. 项目概述:当经典微处理器遇见现代仿真工具如果你和我一样,是从那个“微机原理与接口技术”的年代过来的工程师,那么对“8086”和“8255”这两个名字一定有着刻骨铭心的记忆。它们不仅仅是教科书上的两个芯片型号,更是我们理解计…

嵌入式开发实战:从原理到代码,全面解析按键消抖技术

嵌入式开发实战:从原理到代码,全面解析按键消抖技术

2026/8/8 8:14:26

在数字电路和嵌入式系统开发中,按键输入是最基础也是最频繁的人机交互方式。然而,无论是机械按键还是薄膜按键,在按下和释放的瞬间,其金属触点都会因为物理弹性而产生一系列快速的、不稳定的通断,这种现象被称为“抖动…

Cocos Creator 3.8 × 微信小游戏:SLG 界面的纹理、图集与生命周期优化实战

Cocos Creator 3.8 × 微信小游戏:SLG 界面的纹理、图集与生命周期优化实战

2026/8/8 8:14:26

SLG 项目的主城、地图、背包、英雄列表通常包含大量头像、图标和品质框。如果只关注 PNG 文件大小,而忽略图集批次、GPU 纹理内存及资源释放,很容易出现: 打开英雄列表时瞬间掉帧;DrawCall 随列表项数量快速增长;连续…

CLAUDE.md:AI编程助手的项目级上下文配置指南

CLAUDE.md:AI编程助手的项目级上下文配置指南

2026/8/8 8:14:26

1. 从“AI乱写”到“精准输出”:为什么你需要 CLAUDE.md 如果你最近在 VSCode 里用上了 Claude Code 或者 Cursor 这类 AI 编程助手,大概率经历过这样的场景:你满怀期待地让 AI 帮你写一个函数,结果它给你生成了一堆看似正确、实则…

94-实战Prompt优化师Agent-迭代优化-效果评分-自动生成Few-Shot

94-实战Prompt优化师Agent-迭代优化-效果评分-自动生成Few-Shot

2026/8/8 8:14:26

文章目录【94.PythonAI】实战:写一个"Prompt优化师"Agent——输入你的需求,输出最优Prompt导入语1 ~> 架构设计:四个模块,一个闭环1.1 核心闭环2 ~> 评分器设计:把"感觉好"变成"打得出…

现代C++内存模型:原子操作与内存顺序实战指南

现代C++内存模型:原子操作与内存顺序实战指南

2026/8/8 8:04:26

1. 项目概述:为什么我们需要关心现代C内存模型?如果你是一位从C98/03时代走过来的老手,或者是一位正在学习C11及以后版本的新手,那么“内存模型”这个词可能既熟悉又陌生。熟悉是因为它总在各种高级话题里被提及,陌生是…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/6 19:19:00

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/8 5:17:40

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

昇腾AI代理实现多号通话自动化

昇腾AI代理实现多号通话自动化

2026/8/8 0:03:20

基于昇腾(Ascend)硬件与AtomGit AI社区的开源生态,结合AI Agent技术,可以实现一个模拟“通话重复使用机号复制”功能的安卓手机应用原型。其核心是利用AI Agent进行意图理解、任务编排和自动化操作,模拟或管理多号码的…

2026年Graph+AI Agents最新创新思路

2026年Graph+AI Agents最新创新思路

2026/8/8 0:03:20

本次围绕GraphAI Agents这个方向筛选了15篇高质量论文,都是近年来具有较高引用价值或方法创新的研究工作,其中部分来自IJCAI、AAAI、ICRA。 对于论文er来说,这些论文方法结构清晰、可复现性较强,在多个任务上都有可延展的空间。如…

Wand-Enhancer 指南:5分钟解锁Wand专业版功能,永久移除2小时限制

Wand-Enhancer 指南:5分钟解锁Wand专业版功能,永久移除2小时限制

2026/8/8 0:03:20

Wand-Enhancer 指南:5分钟解锁Wand专业版功能,永久移除2小时限制 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为Wan…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/8 5:07:31

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/7 8:02:42

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/8 2:30:15

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…