提示词(Prompt)是输入给大模型(LLM)的文本指令,用于明确地告诉大模型你想要解决的问题或完成的任务,也是大语言模型理解用户需求并生成准确答案的基础。因此 prompt 使用的好坏,直接决定了大模型生成结果的质量(是否符合预期)

那问题来了,在 Spring AI/Spring AI Alibaba 如何用好提示词?以及提示词的使用方式有哪些呢?接下来本文一起来盘点一下。

1.简单提示词使用

最简单的设置固定系统提示词和用户提示词的用法如下:

@RequestMapping("/chat")
public String chat(String msg) {
String result = chatClient.prompt()
.system("你是一个问答助手") // 设置系统提示词
.user(msg) // 设置用户提示词
.call().content();
System.out.println("结果:" + result);
return result;
}

2.动态提示词

所谓的动态提示词指的是需要进行动态参数替换的提示词,它的基本使用如下:

@RequestMapping("/chat")
public String chat(String topic) {
PromptTemplate promptTemplate =
new PromptTemplate("你是一个{role},讲一个关于{topic}的故事");
Prompt prompt = promptTemplate.create(Map.of("role", "讲故事的助手",
"topic", topic));
return chatModel.call(prompt).getResult().getOutput().getText();
}

3.从文件中读取动态提示词

动态提示词如果比较短,我们可以像上面一样写到代码里面,如果比较长,我们可以把它单独放的某个文件模版中进行读取使用,具体实现如下:

// 从文件中读取提示词
@Value("classpath:type-system-prompt-txt")
private Resource systemPrompt; @RequestMapping("/chat")
public String chat(String msg) {
return chatClient.prompt()
.system(systemPrompt)
.user(msg)
.call()
.content();
}
}

4.Lambda表达式提示词

当提示词比较短的时候,除了可以使用 PromptTemplate 设置提示词之外,我们还可以使用 Lambda 表达式来实现动态提示词的设置,具体使用如下:

@RequestMapping("/chat")
public User chat(String name) {
return chatClient.prompt()
.user(msg -> msg.text("我叫{name},今年18岁,爱好打羽毛球。")
.param("name", name))
.call()
.entity(User.class); // 结果化输出
}

小结

提示词是用户和大模型交互的直接手段,所以在程序中用好提示词是至关重要的。本文提供了 4 种提示词的使用方式,开发者可以根据具体的业务场景,选择合适的提示词使用方式来完成 AI 应用开发。一起实操起来吧~

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、Dify、Spring AI Alibaba、AI Agent、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。

超实用!SpringAI提示词的4种神级用法的更多相关文章

  1. AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...

  2. Midjourney 提示词工具(10 个国内外最好最推荐的)

    Midjourney,是一个革命性的基于人工智能的艺术生成器,可以从被称为提示的简单文本描述中生成令人惊叹的图像.Midjourney已经迅速成为艺术家.设计师和营销人员的首选工具(包括像我这样根本不 ...

  3. 百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法

    原文:百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法 公司的网站改版要求在一个页面显示百度地图.上面要同时显示很多标注点,标注点当然要有提示信息嘛,提 ...

  4. SublimeCodeIntel 所有代码提示和补全插件 All Autocomplete 插件搜索所有打开的文件来寻找匹配的提示词

    SublimeCodeIntelSublimeCodeIntel 作为一个代码提示和补全插件,支持 JavaScript.Mason.XBL.XUL.RHTML.SCSS.Python.HTML.Ru ...

  5. 免费Midjourney AI绘画Prompt提示词平台合集

    Midjourney AI绘图最关键的地方在于Prompt提示词写的好,一个好的提示词可以让AI模型创造出更优质的绘图,以下是8个免费的Midjourney Prompt提示词辅助平台. ​ 编辑切换 ...

  6. Semantic Kernel 入门系列:🥑突破提示词的限制

    无尽的上下文 LLM的语言理解和掌握能力在知识内容的解读和总结方面提供了强大的能力. 但是由于训练数据本身来自于公共领域,也就注定了无法在一些小众或者私有的领域能够足够的好的应答. 因此如何给LLM ...

  7. IntelliJ IDEA 15款 神级超级牛逼插件推荐(超赞,谁用谁知道)

    满满的都是干货  所有插件都是在 ctrl+alt+s 里的plugins 里进行搜索安装 1.CodeGlance 代码迷你缩放图插件 2. Codota 代码提示工具,扫描你的代码后,根据你的敲击 ...

  8. VIM自动补全插件 - YouCompleteMe--"大神级vim补全插件"

    VIM自动补全插件 - YouCompleteMe 序言 vim 之所以被称为编辑器之神多半归功于其丰富的可DIY的灵活插件功能,( 例如vim下的这款神级般的代码补全插件YouCompleteMe) ...

  9. 避免常见的6种HTML5错误用法

    一.不要使用section作为div的替代品 人们在标签使用中最常见到的错误之一就是随意将HTML5的<section>等价于<div>——具体地说,就是直接用作替代品(用于样 ...

  10. SharedPreferences 的另一种场景的用法

    SharedPreferences 的另一种场景的用法 昨天,下班在家想做什么来着,然后想用SharedPreferences存点数据,但是不知道咋地突然想到,SharedPreferences是应用 ...

随机推荐

  1. 必看!2025 年颠覆测试行业的 10 大 AI 自动化测试工具/平台(上篇)

    大家好,我是狂师. 上周小孩子生病,住院照顾,停更了几天. 各位看官,等着急了吧,之前有粉丝后台留言,想了解学习一下,AI这么火爆,那市面上AI与自动化测试结合起来的有哪些推荐的工具/平台. 今天就这 ...

  2. 【Markdown】公式指导手册

    点击跳转至 Cmd Markdown 简明语法手册 ,立刻开始 Cmd Markdown 编辑阅读器的记录和写作之旅! 本文为 MathJax 在 Cmd Markdown 环境下的语法指引. Cmd ...

  3. unigui显示uniTreeVview使用TUniTreeNode内存泄漏的问题【14】

    uniTreeVviewc创建一个tree,显示患者姓名(PatientName).因为需要用到患者ID(PatientID),所以使用help: TPatientTreeNode = class(T ...

  4. MCP技术:渗透测试从自动化到智能化

    在人工智能快速发展的今天,如何让AI更高效地与现实世界交互,成为许多开发者和研究者关注的焦点.MCP(Model Context Protocol)技术作为一种创新的工具集成方案,为AI提供了一种&q ...

  5. zk源码—4.会话的实现原理

    大纲 1.创建会话 (1)客户端的会话状态 (2)服务端的会话创建 (3)会话ID的初始化实现 (4)设置的会话超时时间没生效的原因 2.分桶策略和会话管理 (1)分桶策略和过期队列 (2)会话激活 ...

  6. fastjson bug: parseObject 死循环

    版本: com.alibaba:fastjson:1.2.83 描述: 反序列化时,会陷入死循环 JSON:[""] 引起bug代码: List<Map<String, ...

  7. kettle安装文件下载(含多版本)

    kettle是一款基于java开发的洗数工具,可以通过图像化的操作界面,拖拉拽的操作方式,实现数据导入导出清洗等功能,还支持编写脚本进行数据处理,功能十分强大. 本文主要记录一下kettle各版本下载 ...

  8. 使用 GitHub Actions 构建 CosyVoice 项目的运行环境镜像并推送到阿里云容器镜像服务和 GitHub Package Registry

    使用 GitHub Actions 构建 CosyVoice 项目的运行环境镜像并推送到阿里云容器镜像服务和 GitHub Package Registry 概述 本文介绍了如何使用 GitHub A ...

  9. 工具 | Hfish

    0x00 简介 HFish是一款社区型免费蜜罐. 下载地址 HFish下载: HFish下载 0x01 功能说明 支持多种蜜罐服务 支持自定义Web蜜罐 支持流量牵引 支持端口扫描感知能力 支持多种告 ...

  10. 【工具】JS脚本|网页任意视频倍速播放(包括MOOC、本地视频、其他的视频)

    实际发布时间:2022-12-14 22:54:52. csdn禁止浏览器脚本相关博客了,就只能重新发到这儿了. 2024/12/14更新:更新了常见问题Q&A,可以配合食用.   只要浏览器 ...