如何保证模型结构化输出
1.提示词优化明确要求加入约束提供示例这是最直接有效的方法如下你是一个数据提取助手必须严格按照以下 JSON Schema 输出不要输出任何其他文字、解释或Markdown标记。Schema:{name: string, 人名,age: number, 年龄,city: string, 所在城市}示例输出{name: 张三, age: 28, city: 北京}现在请根据以下内容输出JSON用户说我叫李四今年35岁住在上海。client的entity方法就是自动将实体类转成的样本拼接在提示词末尾并且返回时将其解析成实体类对象。2.json mode部分前沿模型在API层面原生支持了结构化输出通过传参response_format:Schema 来定义结构化输出强制输出与 Schema 精确匹配。Configuration public class StructuredOutputConfig { Value(${spring.ai.openai.chat.options.model}) private String modelName; Bean public ChatClient strictStructuredOutputClient(ChatClient.Builder builder) { return builder .defaultOptions(OpenAiChatOptions.builder() .model(modelName) .responseFormat(ResponseFormat.builder(//开启json mode .type(ResponseFormat.Type.JSON_OBJECT) .jsonSchema(ResponseFormat.JsonSchema.builder() .name(user_info) .schema( { type: object, properties: { name: {type: string}, age: {type: integer}, city: {type: string} }, required: [name, age, city], additionalProperties: false } ) .strict(true) .build()) .build()) .build()) .build(); } }3.采样参数调整参数推荐值作用temperature0 ~ 0.2降低随机性避免格式混乱top_p0.9保持一定确定性stop[\n\n, ]| 防止模型继续生成解释文字 |4.容错机制模型偶尔还是会输出带Markdown的标记代码中将其手动去除再解析成json还不行加入重试机制多试几次。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2503579.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!