超实用!SpringAI提示词的4种神级用法

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

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

1.简单提示词使用

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

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

2.动态提示词

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

java 复制代码
@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.从文件中读取动态提示词

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

java 复制代码
// 从文件中读取提示词
@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 表达式来实现动态提示词的设置,具体使用如下:

java 复制代码
@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、多模态、向量数据库、嵌入模型等内容。

相关推荐
机器之心几秒前
马斯克Grok这个二次元「小姐姐」,攻陷了整个互联网
人工智能
萧曵 丶9 分钟前
Rust中Option和Result详解
开发语言·后端·rust·option·result
szxinmai主板定制专家11 分钟前
基于光栅传感器+FPGA+ARM的测量控制解决方案
arm开发·人工智能·嵌入式硬件·fpga开发
Guheyunyi20 分钟前
电气安全监测系统:筑牢电气安全防线
大数据·运维·网络·人工智能·安全·架构
三桥君20 分钟前
在AI应用中Prompt撰写重要却难掌握,‘理解模型与行业知识是关键’:提升迫在眉睫
人工智能·ai·系统架构·prompt·产品经理·三桥君
semantist@语校22 分钟前
日本语言学校:签证制度类 Prompt 的结构整理路径与策略
人工智能·百度·ai·语言模型·prompt·github·数据集
zhysunny25 分钟前
Retrofit+RxJava:打造声明式REST客户端的艺术 —— 像点咖啡一样调用API
java·rxjava·retrofit
三花AI28 分钟前
NSFW Grok 数字伙伴,只能说老马是懂用户的
人工智能
码不停蹄的玄黓35 分钟前
深入理解MyBatis延迟加载:原理、配置与实战优化
java·mybatis·延迟加载
Lannyuu37 分钟前
Java:继承和多态(必会知识点整理)
java·开发语言