AI开发结构化输出

Ai结构化输出有三种实现方式:

  • 利用大模型的JSON schema
  • 利用Prompt+JSON Mode
  • 利用Prompt

默认使用的是Prompt模式,强制大模型按用户提示词下写的包含特定字段的JSON文本。下面测试一下结构化输出,不过我们无需关心上面的开发模式,只需要修改方法的返回值,框架就可以自动帮我们实现结构化输出。

1.AiCodeService

在AiCodeService中添加两个方法,其中一个方法输出结构化的信息,record方法相当于定义了一个Report对象,其中里面有两个属性。

java 复制代码
package com.example.aicode.ai;

import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.spring.AiService;

import java.util.List;

/**
 * @author zhou
 * @version 1.0
 * @description TODO
 * @date 2025/9/16 21:45
 */
public interface AiCodeService {
    @SystemMessage(fromResource = "system-prompt.txt")
    String chat(String userMessage);
    @SystemMessage(fromResource = "system-prompt.txt")
    Report chatForReport(String userMessage);
    //学习报告
    record Report(String name, List<String> suggestionList){}
}

2.测试

testChatForReport()方法将以Report对象形式输出生成的内容。

java 复制代码
package com.example.aicode.ai;

import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
class AiCodeServiceTest {
    @Resource
    private AiCodeService aiCodeService;
    @Test
    void chat() {
        String chat = aiCodeService.chat("你好,我是一名程序员");
        System.out.println(chat);
    }


    @Test
    void testChatForReport() {
        String userMessage = "你好,我是一名程序员,学习一年半,请帮我制定一个学习报告";
        AiCodeService.Report report = aiCodeService.chatForReport(userMessage);
        System.out.println(report);
    }
}

3.输出结果

相关推荐
最后的最后、79610 分钟前
SQLi-Labs 六关 SQL 注入过关笔记
数据库·笔记·sql
晓子文集12 分钟前
Tushare接口文档:现金流量表(cashflow)
大数据·数据库·大模型·金融数据·量化投资·tushare
会编程的土豆23 分钟前
数据库mysql八股
数据库·笔记·八股
nVisual39 分钟前
巡检任务与工单闭环方案
运维·服务器·数据库·数据中心基础设施
施嘉伟1 小时前
它以为自己连的是MongoDB
数据库·mongodb
承渊政道1 小时前
从设备数据到AI洞察:时序数据的多模融合实践
数据库·人工智能·性能优化·金仓数据库·多模融合
会编程的土豆1 小时前
MySQL 中的 IN 和 EXISTS(零基础笔记)
数据库·笔记·mysql
科技圈快迅1 小时前
2026年数据库国产化替代性能调优方法论:从SQL基线建立到持续优化的全流程体系
数据库·sql
你有我备注吗1 小时前
SQL之数据更新
数据库·sql
跨境技工小黎1 小时前
动态住宅代理使用指南:粘性会话 vs. 每次请求轮换 IP,如何选择?
数据库