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

部署运行你感兴趣的模型镜像

提示词(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、多模态、向量数据库、嵌入模型等内容。

原创作者: vipstone 转载于: https://www.cnblogs.com/vipstone/p/18944567

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

### SpringAI 和 LangChain4J 的企业应用对比 #### 技术背景与定义 SpringAI 是基于 Spring 生态系统的增强框架,专注于人工智能和机器学习模型的集成与部署。它利用 Spring Boot 提供的强大功能来简化 AI 应用程序开发流程[^1]。 LangChain4J 则是一个 Java 实现的语言链(Language Chain)库,旨在通过链接多个自然语言处理模块实现复杂的对话系统构建。其设计目标是为了让开发者能够更轻松地创建端到端的应用场景,尤其是在多模态数据处理方面表现出色[^2]。 --- #### 功能特性比较 ##### 1. **生态系统支持** - SpringAI 建立在成熟的 Spring 框架之上,因此可以无缝对接现有的微服务架构以及容器化技术(如 Kubernetes)。这种生态系统的兼容性和扩展能力使其非常适合大型企业的复杂需求。 - LangChain4J 更加注重于特定领域内的 NLP 流程优化,虽然也提供了良好的插件机制用于与其他工具集协作,但在整体规模上可能不如 SpringAI 那样全面覆盖整个 IT 架构的需求。 ##### 2. **性能表现** 对于大规模数据分析任务来说,两个平台都强调高效能运算的重要性。然而,在实际操作过程中: - 如果项目涉及大量实时交互或者频繁更新的学习模型,则 SpringAI 可能会因为其底层 JVM 调优策略而占据一定优势[^3]。 - 对于侧重文本生成质量而非速度的任务而言,LangChain4J 或许更能满足创意型业务的要求,因为它允许高度定制化的管道配置。 ##### 3. **安全性考量** 安全始终是任何企业解决方案的核心要素之一。两者均采取措施保障敏感信息的安全传输及存储: - SpringAI 继承自 Spring Security 的强大防护体系,可有效抵御多种网络攻击形式,并提供灵活的身份验证选项。 - LangChain4J 同样重视隐私保护问题,不过由于主要面向的是内部沟通渠道管理,所以在外部威胁防御方面的经验相对较少一些。 --- #### 使用案例分析 以下是两种技术分别适用的企业应用场景实例说明: | 场景描述 | 推荐方案 | |----------|-----------| | 复杂金融交易风险评估系统建设 | 春季AI因其强大的依赖注入特性和事务管理功能成为首选项 | | 自动客服机器人搭建 | langchain4j凭借简洁直观API接口更容易快速原型制作 | 上述表格仅作为参考指南,具体选型还需依据各自团队的技术栈熟悉程度以及其他非功能性约束条件综合判断。 ```java // 示例代码展示如何初始化一个简单的 LangChain4J 管道 Pipeline pipeline = new Pipeline(); pipeline.addModule(new Tokenizer()); pipeline.addModule(new EmbeddingGenerator()); pipeline.execute(inputText); ``` --- #### 总结评价 综上所述,尽管二者都能很好地服务于不同类型的企事业客户群体,但从长远维护成本角度出发,如果组织已经广泛采用了 spring 家族产品线的话,那么继续沿用春季ai无疑是最经济实惠的选择;反之则可根据实际情况考虑引入langchain4j这样的新兴力量来进行创新尝试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值