提示词Prompt

提示词的四大角色

根据SAA框架的帮助文档我们可以看到:

也就是说,提示词就是我们与大模型之间进行对话的时候特定的输出格式和回答的响应,所以后面如果进行调优的时候,提示词是很重要的。

deepseek的提示词帮助文档的官网Prompt Library | DeepSeek API Docs

enum MessageType是一个枚举类,里面就是提示词的四大角色:

其中system的作用:设定AI的行为边界/定位,指导AI的行为和响应模式,设置AI如何解释和回复输入问题。

User的作用:用户·原始提问输入,也就是用户问的问题。

Assistant的作用:AI返回的问题,如下图:

Tool的作用:桥接外部服务,可以进行函数调用,类似于第三方的工具类。

提示词模板

提示词模板(Prompt Template) 是一种结构化、可复用的提示词框架,用于将 “固定指令逻辑” 与 “动态输入数据” 分离,解决直接编写硬编码提示词时的复用性差、维护成本高、格式不统一等问题。它的核心价值是:让 AI 调用更规范、更灵活,同时降低非技术人员使用 AI 的门槛。

像我们在idea里面使用redis,rabbitMQ等之类的中间件,我们就可以使用像之类的template的模板,所以提示词模板的作用就是这样,通过占位符来使大模型回答的时候只需要进行占位符的输入就可以输出我们已经写好的模板。

//用过大模型模板进行讲故事
@GetMapping(
        value = "/stream/story",
        produces = MediaType.TEXT_EVENT_STREAM_VALUE // 显式指定流式响应格式(SSE),前端更易处理
)
public Flux<String> story(
        @RequestParam(required = false, defaultValue = "") String topic) {
​
    // 无参数时,返回引导提示
    if (topic.isEmpty()) {
        return Flux.just(
                "<div style='font-family: sans-serif;'>",
                "<h3>📖 故事生成器</h3>",
                "<p>请传入故事主题(topic)来生成专属故事,例如:</p>",
                "<p>访问:<code>/stream/story?topic=小兔子的森林冒险</code></p>",
                "<p>规则:故事将在500字内,以HTML格式返回(含段落、标题标签)</p>",
                "</div>"
        );
    }
​
    // 原有模板逻辑...
    PromptTemplate promptTemplate = new PromptTemplate(
            "请在500字内,用HTML格式讲一个关于{topic}的故事,要求:" +
                    "1. 用 <h3> 标签写故事标题,<p> 标签分段,无需外层 <html> 或 <body> 标签;" +
                    "2. 可适当用 <span style='color:#666;'> 标注对话(如:<span>小兔子说:“你好呀!”</span>);" +
                    "3. 避免复杂HTML结构,确保前端能直接嵌入展示;" +
                    "4. 严格控制字数,不超过500字(含HTML标签)。");
    Prompt prompt = promptTemplate.create(Map.of("topic", topic));
​
    return deepseekChatClient.prompt(prompt).stream().content();
}

我们通过上面的代码,简单的实现了一个讲故事的对话接口。

加入说我们直接在代码里面进行写入,这样就有点冗余,并且不好进行修复,所以我们可以创建一个简单的txt文件,进行引入即可。

格式化输出

我们在使用输出的时候,我们可以通过简单的配置,达到大模型输出json,java之类的文件,让我们的输出更加的丰富多样。

在这之前我们可以看一下java14之后的新特性,Record工具类,也就是记录类。

简单的来讲,我们想要返回的是一个表格的时候就可以进行以下的创建。

我们也可以通过lambda表达式简化我们的书写。

最后我们也可以正常的输出

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐