手机怎么样做网站/北京百度推广优化

手机怎么样做网站,北京百度推广优化,自己可以做网站服务器,珠海 网站建设如何使用Spring AI提示词模板PromptTemplate 目录 如何使用Spring AI提示词模板PromptTemplate 1、提示词Prompt介绍 2、Spring Boot集成Spring AI框架 3、提示词模板PromptTemplate用法 4、开发代码使用PromptTemplate 5、启动Springboot工程并验证 本文章节介绍Prompt…

如何使用Spring AI提示词模板PromptTemplate

目录

如何使用Spring AI提示词模板PromptTemplate

1、提示词Prompt介绍

2、Spring Boot集成Spring AI框架

3、提示词模板PromptTemplate用法

4、开发代码使用PromptTemplate

5、启动Springboot工程并验证


本文章节介绍Prompt提示词和PromptTemplate提示词模板,在Spring AI框架里,Prompt类的设计旨在简化与LLM之间的交互过程,同时提供了足够的灵活性来满足不同类型的对话需求。通过合理利用Prompt及其内部的消息结构,开发者可以有效地引导LLM生成高质量的回答,提升用户体验。

欢迎关注我的公众号

1、提示词Prompt介绍

Prompt 是引导 AI 模型生成特定输出的输入格式,Prompt 的设计和措辞会显著影响模型的响应。

Prompt 最开始只是简单的字符串,随着时间的推移,prompt 逐渐开始包含特定的占位符,例如 AI 模型可以识别的 “USER:”、“SYSTEM:” 等。阿里云通义模型可通过将多个消息字符串分类为不同的角色,然后再由 AI 模型处理,为 prompt 引入了更多结构。每条消息都分配有特定的角色,这些角色对消息进行分类,明确 AI 模型提示的每个部分的上下文和目的。这种结构化方法增强了与 AI 沟通的细微差别和有效性,因为 prompt 的每个部分在交互中都扮演着独特且明确的角色。

Prompt 中的主要角色(Role)包括:

  • 系统角色(System Role):指导 AI 的行为和响应方式,设置 AI 如何解释和回复输入的参数或规则。这类似于在发起对话之前向 AI 提供说明。

  • 用户角色(User Role):代表用户的输入 - 他们向 AI 提出的问题、命令或陈述。这个角色至关重要,因为它构成了 AI 响应的基础。

  • 助手角色(Assistant Role):AI 对用户输入的响应。这不仅仅是一个答案或反应,它对于保持对话的流畅性至关重要。通过跟踪 AI 之前的响应(其“助手角色”消息),系统可确保连贯且上下文相关的交互。助手消息也可能包含功能工具调用请求信息。它就像 AI 中的一个特殊功能,在需要执行特定功能(例如计算、获取数据或不仅仅是说话)时使用。

  • 工具/功能角色(Tool/Function Role):工具/功能角色专注于响应工具调用助手消息返回附加信息。

    message class diagram

2、Spring Boot集成Spring AI框架

如何基于Springboot集成Spring AI框架,并调用阿里云AI服务,请参考文章Spring AI Alibaba入门示例,这里不再重复说明。

3、提示词模板PromptTemplate用法

在Spring AI框架中,Prompt类用于构建和管理与大型语言模型(LLM)交互时所需的提示词(prompt)。通过创建一个Prompt对象,并向其中添加用户消息(userMessage)和系统消息(systemMessage),你可以定义与LLM对话的上下文和规则。具体来说,Prompt prompt = new Prompt(List.of(userMessage, systemMessage));这种提示词模板的用法有如下好处:

1)多轮对话支持

List.of(userMessage, systemMessage)构建了一个包含多个消息项的不可变列表。每个消息项代表对话中的一个回合,可以是用户输入或系统响应。

通过这种方式,开发者可以在一次请求中传递多条历史对话记录给LLM,帮助其更好地理解当前对话的背景信息,从而生成更连贯、更准确的回答。

2)角色区分

   在多轮对话中,明确区分哪些是用户发出的消息(userMessage),哪些是由系统(如AI助手)产生的消息(systemMessage),有助于LLM正确地模拟对话角色,提供更加自然的交互体验。

   这种做法对于实现复杂的对话逻辑特别有用,比如客服机器人、虚拟助手等应用场景。

3)上下文设定

   systemMessage可以用来设置对话的整体语境或规则,例如指定回答风格、领域知识范围等。这对于确保LLM生成的内容符合特定要求非常重要。

   例如,如果希望LLM以专业且礼貌的方式回应,则可以在systemMessage中加入相应的指示。

4)动态调整

   使用List.of()构造函数使得每次构建Prompt对象时都可以灵活地传入不同的消息组合,便于根据实际需求动态调整对话内容。

   开发者可以根据用户的实时反馈或其他条件变化,适时更新对话上下文,使LLM能够适应不断变化的对话场景。

4、开发代码使用PromptTemplate

在springboot项目中,创建一个普通 Controller Bean类,并使用PromptTemplate提示词模板技术跟AI大模型进行对话 。

package com.wcy.ai.controller;import org.springframework.ai.chat.client.ChatClient;import org.springframework.ai.chat.messages.AssistantMessage;import org.springframework.ai.chat.messages.Message;import org.springframework.ai.chat.prompt.Prompt;import org.springframework.ai.chat.prompt.PromptTemplate;import org.springframework.ai.chat.prompt.SystemPromptTemplate;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.List;import java.util.Map;/** * @desc 提示词模板 * @date: 2025/3/11 * @version: 1.0 */@RestController@RequestMapping("/ai")public class PromptTemplateController {    private final ChatClient chatClient;    public PromptTemplateController(ChatClient.Builder builder) {        this.chatClient = builder.build();    }
    @GetMapping("/prompt")    public AssistantMessage prompt(@RequestParam(value = "topic", defaultValue = "西游记") String topic) {        PromptTemplate promptTemplate = new PromptTemplate("请给我讲一个关于{topic}主题的故事");        Prompt prompt = promptTemplate.create(Map.of( "topic", topic));        AssistantMessage message = chatClient.prompt(prompt)                .call().chatResponse().getResult().getOutput();        System.out.println(message);        return message;    }
    @GetMapping("/prompt2")    public AssistantMessage prompt2(            @RequestParam(value = "topic", defaultValue = "西游记") String topic,            @RequestParam(value = "voice", defaultValue = "幽默") String voice) {        String userText = "请给我讲一个关于{topic}主题的故事";        PromptTemplate promptTemplate = new PromptTemplate(userText);        Message userMessage = promptTemplate.createMessage(Map.of("topic", topic));        String systemText = "你是一名擅长说书的先生,请你用 {voice} 的语言风格回复用户的请求。";        SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemText);        Message systemMessage = systemPromptTemplate.createMessage(Map.of("voice", voice));        Prompt prompt = new Prompt(List.of(userMessage, systemMessage));        AssistantMessage message = chatClient.prompt(prompt)                .call().chatResponse().getResult().getOutput();        System.out.println(message);        return message;    }}

5、启动Springboot工程并验证

工程启动成功后,可以向大模型提问了。

简单的提示词验证,在浏览器地址栏输入:

http://localhost:8080/ai/prompt?topic=西游记

AI大模型回复:

{    "media": [],    "messageType": "ASSISTANT",    "metadata": {        "finishReason": "STOP",        "id": "89ed8ed8-f020-9dcc-a891-e914e0a38d90",        "messageType": "ASSISTANT",        "reasoningContent": "",        "role": "ASSISTANT"    },    "text": "从前,在一个遥远的村庄里,住着一位名叫小明的年轻人。他从小就对《西游记》的故事充满向往,特别是唐僧师徒四人历经九九八十一难取得真经的经历让他深感钦佩。他常常幻想自己也能踏上一场冒险之旅。一天晚上,小明在家中看书时,突然一道金光闪过,一个神秘的老者出现在他的面前。老者自称是观世音菩萨座下的护法使者,特地来考验小明的勇气与智慧。他说:“你若能通过三重试炼,便可获得一次改变命运的机会。”第一重试炼是“辨别真假”。在一片竹林中,小明遇到了两个一模一样的和尚,他们都说自己是真正的唐僧,并要求小明将手中的水葫芦交给自己。小明冷静思考后,发现其中一个和尚说话时总是在逃避问题,而另一个则坦然回答。最终,他选择了正确的唐僧。第二重试炼是“克服恐惧”。小明被带到了一座黑暗的山洞,里面传来阵阵可怕的吼声。他鼓起勇气走进去,才发现那只是幻觉。原来,这正是为了测试他是否能够战胜内心的恐惧。第三重试炼是“牺牲与坚持”。小明来到一条湍急的河边,必须用一块脆弱的小木板渡河,但每次尝试都会让木板裂开一点。就在他几乎放弃的时候,他意识到只要不急躁、一步步稳扎稳打,就能成功。最后,他终于安全抵达彼岸。完成三重试炼后,老者露出了欣慰的笑容,告诉他:“你已经具备了成为英雄的品质。记住,真正的力量来自内心,而不是外物。”说完,老者消失不见,而小明也从梦中醒来。虽然一切似乎只是一场梦,但他的心境却发生了变化——更加坚定了追求梦想的决心。从此以后,无论遇到什么困难,小明都会想起那晚的经历,用唐僧师徒的精神激励自己不断前行。",    "toolCalls": []}

多个角色消息构成的提示词验证,在浏览器地址栏输入:

http://localhost:8080/ai/prompt2?topic=西游记&voice=幽默

AI大模型回复:

{    "media": [],    "messageType": "ASSISTANT",    "metadata": {        "finishReason": "STOP",        "id": "e01bc3da-2b35-9e8d-bedb-cb9cfc5b774c",        "messageType": "ASSISTANT",        "reasoningContent": "",        "role": "ASSISTANT"    },    "text": "各位看官,咱们今天就来说一段《西游记》里的趣事。话说唐僧师徒四人取经路上,遇到一座火焰山,那山热得连蚂蚁都得打着伞走。这孙悟空啊,本来想借芭蕉扇灭灭火,结果碰上了铁扇公主,这可闹出了不少笑话。铁扇公主手里拿着一把大扇子,瞧着孙悟空就像看一只小猴子似的,说:“你这个猴头,找打呢!”悟空也不甘示弱,变出个大棒子,指着她说:“你这泼妇,快把扇子交出来!”俩人就这么你一言我一语地吵起来,那场面简直堪比菜市场。后来呀,悟空用计谋骗来了假扇子,气得铁扇公主直跺脚,大喊:“好你个孙猴子,又耍诈!”最终还是靠智慧和勇气,师徒几人才顺利通过火焰山。这一路啊,笑料百出,但也充满了挑战与成长,正所谓“不经历风雨,怎能见彩虹”,哈哈哈!",    "toolCalls": []}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows Server中的NTP服务器部署(NTP Srver Deployment in Windows Server)

构建稳定内网时间同步:Windows Server中的NTP服务器部署指南 服务简介 NTP(Network Time Protocol)服务器是用于同步计算机网络中各设备时间的服务器。它通过网络协议与标准时间源(如原子钟、GPS系统等)进行时间同步&…

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 的自动配置:约定优于配置的设计美学

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、Spring…

SourceTree的安装与使用

SourceTree的安装与使用 一、前言 作为可视化Git管理工具&#xff0c;SourceTree可以避免我们使用命令进行常规的代码拉取&#xff0c;更新&#xff0c;合并等操作。 鼠标点点就可以完成代码管理的工作。所以强烈推荐可视化的工具。不过SourceTree还是有点bug&#xff0c;比…

JMeter 性能测试

Jmeter 用户手册 名词解释&#xff1a; RPS&#xff1a;每秒请求数-每秒向服务器发送多少请求数&#xff08;一个场景&#xff0c;系统面临多大的压力&#xff09; TPS&#xff1a;每秒事务数-每秒能够处理多少请求/事务数性能评价标准&#xff08;其中的一个核心指标&#x…

【Mac 从 0 到 1 保姆级配置教程 09】09. 快速配置终端复用工具 tmux 和 oh-my-tmux

文章目录 1. 前言2. 安装 tmux3. 配置 tmux4. 安装 oh-my-tmux5. 最后6. 参考资料7. 系列教程 Mac 从 0 到 1 保姆级配置教程目录&#xff0c;点击即可跳转对应文章&#xff1a; 【Mac 从 0 到 1 保姆级配置教程 00】 - 教程说明 【Mac 从 0 到 1 保姆级配置教程 01】 - 安装无…

Java 大视界 -- 基于 Java 的大数据机器学习模型的迁移学习应用与实践(129)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

通义万相 2.1 与蓝耘智算平台的深度协同,挖掘 AIGC 无限潜力并释放巨大未来价值

我的个人主页 我的专栏&#xff1a; 人工智能领域、java-数据结构、Javase、C语言&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01; 点赞&#x1f44d;收藏❤ 引言&#xff1a;AIGC 浪潮下的新机遇 在当今数字化飞速发展的时代&#xff0c;人工智能生成内容&…

C语言高级学习之变量和内存分布

一.变量和内存分布 1.课程要求 2.技术层次 3.C语言标准 1.3.1 K&R C 起初&#xff0c;C语言没有官方标准。1978年由美国电话电报公司(AT&T&#xff09;贝尔实验室正式发表了C语言。布莱恩柯林汉&#xff08;Brian Kernighan&#xff09; 和 丹尼斯里奇&#xff08;D…

蓝桥杯学习-12递归

12递归 1.概述 2.几个递归模板 (1)求阶乘 int f(int n){ if(n 1) return 1; return f(n-1) * n; }(2)斐波拉契序列 int f(int n){ if(n 1 || n 2) return n; return f(n - 1) f(n - 2); }例题一-蓝桥5194 int f(int n){if(n 0) return 1;if(n % 2 0) return f(n / 2)…

Python----数据可视化(Pyecharts三:绘图二:涟漪散点图,K线图,漏斗图,雷达图,词云图,地图,柱状图折线图组合,时间线轮廓图)

1、涟漪特效散点图 from pyecharts.globals import SymbolType from pyecharts.charts import EffectScatter from pyecharts.faker import Faker from pyecharts import options as opts from pyecharts.globals import ThemeType # 绘制图表 es (EffectScatter(init_optsop…

自然语言处理预训练模型的研究综述

&#x1f4d5;参考&#xff1a;&#xff1a;2020-11-02,https://kns.cnki.net/kcms/detail/11.2127.tp.20201030.1952.017.html 主要是这篇文章的自己摘了点笔记。 预训练模型的深度学目标是如何使预训练好的模型处于良好的初始状态&#xff0c;在下游任务中达到更好的性能表现…

一次Linux下 .net 调试经历

背景&#xff1a; Xt160Api, 之前在windows下用.net调用&#xff0c;没有任何问题。 但是移植到Linux去后&#xff0c;.net程序 调用 init(config_path) 总是报错 /root/test 找不到 traderApi.ini (/root/test 是程序目录) 然后退出程序 解决过程: 于是考虑是不是参数传错了&…

iOS底层原理系列01-iOS系统架构概览-从硬件到应用层

1. 系统层级结构 iOS系统架构采用分层设计模式&#xff0c;自底向上可分为五个主要层级&#xff0c;每层都有其特定的功能职责和技术组件。这种层级化结构不仅使系统更加模块化&#xff0c;同时也提供了清晰的技术抽象和隔离机制。 1.1 Darwin层&#xff1a;XNU内核、BSD、驱动…

日志存储与分析

日志是系统运行的详细记录&#xff0c;包含各种事件发生的主体、时间、位置、内容等关键信息。出于运维可观测、网络安全监控及业务分析等多重需求&#xff0c;企业通常需要将分散的日志采集起来&#xff0c;进行集中存储、查询和分析&#xff0c;以进一步从日志数据里挖掘出有…

Flutter 边框按钮:OutlinedButton 完全手册与设计最佳实践

目录 1. 引言 2. OutlinedButton 的基本用法 3. 主要属性 3.1 核心属性详解 3.2 ButtonStyle 子属性详解 (styleFrom/copyWith) 状态响应优先级说明 4. 自定义按钮样式 4.1 修改边框颜色和文本颜色 4.2 修改按钮形状 4.3 修改按钮大小 4.4 集中演示 5. 结论 相关推…

【Node.js入门笔记4---fs 目录操作】

Node.js入门笔记4 Node.js---fs 目录操作一、目录操作1.fs.mkdir()&#xff1a;创建目录。异步&#xff0c;非阻塞。创建单个目录创建多个目录创建目前之前需要确认是否存在&#xff1a; 2. fs.mkdirSync()&#xff1a;用于创建一个新的目录。异步&#xff0c;非阻塞。3.fs.rmd…

IP风险度自检,互联网的安全“指南针”

IP地址就像我们的网络“身份证”&#xff0c;而IP风险度则是衡量这个“身份证”安全性的重要指标。它关乎着我们的隐私保护、账号安全以及网络体验&#xff0c;今天就让我们一起深入了解一下IP风险度。 什么是IP风险度 IP风险度是指一个IP地址可能暴露用户真实身份或被网络平台…

【软考-架构】5.3、IPv6-网络规划-网络存储-补充考点

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 IPv6网络规划与设计建筑物综合布线系统PDS&#x1f4af;考试真题第一题第二题 磁盘冗余阵列网络存储技术其他考点&#x1f4af;考试真题第一题第二题 IPv6 网络规划与设计…

SVN学习笔记

svn:版本控制软件 解决&#xff1a;1.协作开发 2.远程开发 3.版本回退 服务端软件&#xff1a; VisualSVN http://www.visualsvn.com 客户端软件:Tortoisesvn http://tortoisesvn.net/downloads 1.checkout(检出) 第一查更新数据到本地&#xff0c; 2.update&#xf…

基于asp.net实现的连锁餐厅收银系统[包运行成功+永久免费答疑辅导]

基于ASP.NET实现的连锁餐厅收银系统背景&#xff0c;可以从以下几个方面进行阐述&#xff1a; 一、技术背景 ASP.NET框架的普及与优势&#xff1a; ASP.NET是微软开发的一种用于构建Web应用程序的框架&#xff0c;它基于.NET Framework&#xff0c;提供了丰富的类库和开发工具…