Solon AI 开发学习16 - generate - 生成模型(图、音、视)

news/2025/12/6 9:43:38/文章来源:https://www.cnblogs.com/noear/p/19314834

生成模型(GenerateModel) 与 聊天模型(ChatModel)用途区别很大。GenerateModel 只能一次性生成内容,不能对话。比如:

  • 通过文本,生成图片、声音、视频
  • 通过图片,生成视频
  • 等(只要是一次性生成)

补充:GenerateModel 是替代之前的 ImageModel 而新设计的接口,完全兼容 ImageModel 且概念范围更广(旧接口仍可用)。

1、构建生成模型

添加配置

solon.ai.generate:demo:apiUrl: "https://ai.gitee.com/v1/images/generations" # 使用完整地址(而不是 api_base)model: "stable-diffusion-3.5-large-turbo"

构建并测试

import org.noear.solon.ai.generate.GenerateConfig;
import org.noear.solon.ai.generate.GenerateModel;
import org.noear.solon.ai.generate.GenerateResponse;
import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;import java.io.IOException;@Configuration
public class DemoConfig {@Beanpublic GenerateModel build(@Inject("${solon.ai.generate}") GenerateConfig config) {return GenerateModel.of(config).build();}@Beanpublic void test(GenerateModel generateModel) throws IOException {//一次性返回GenerateResponse resp = generateModel.prompt("一只白色的小花猫").call();//打印消息System.out.println(resp.getContent().getUrl());}
}

2、使用选项

generateModel.prompt("一只白色的小花猫").options(o -> o.size("1024x1024")).call();generateModel.prompt("一只白色的小花猫").options(o -> {o.optionAdd("negative_prompt", "");o.optionAdd("sampler_name", "Euler");o.optionAdd("scheduler", "Simple");o.optionAdd("steps", 25);o.optionAdd("width", 512);o.optionAdd("height", 768);o.optionAdd("batch_size", 1);o.optionAdd("cfg_scale", 1);o.optionAdd("distilled_cfg_scale", 3.5);o.optionAdd("seed", -1);o.optionAdd("n_iter", 1);}).call();    

3、方言适配

生成模型(GenerateModel)同样支持方言适配。框架已内置 OllamaGenerateDialect、DashscopeGenerateDialect、OpenaiGenerateDialect(默认) 三种方言(基本够用),自动支持 Ollama 提供的模型接口、Dashscope 提供的模型接口及 Openai 规范的模型接口。

也可以通过定制,实现更多的模型兼容。方言接口:

public interface GenerateDialect extends AiModelDialect {/*** 是否为默认*/default boolean isDefault() {return false;}/*** 匹配检测** @param config 聊天配置*/boolean matched(GenerateConfig config);/*** 构建请求数据** @param config    聊天配置* @param options   聊天选项* @param promptStr 提示语文本形态* @param promptMap 提示语字典形态*/String buildRequestJson(GenerateConfig config, GenerateOptions options, String promptStr, Map promptMap);/*** 分析响应数据** @param config   聊天配置* @param respJson 响应数据*/GenerateResponse parseResponseJson(GenerateConfig config, String respJson);
}

OllamaGenerateDialect 适配参考:

public class OllamaGenerateDialect extends AbstractGenerateDialect {private static OllamaGenerateDialect instance = new OllamaGenerateDialect();public static OllamaGenerateDialect getInstance() {return instance;}@Overridepublic boolean matched(GenerateConfig config) {return "ollama".equals(config.getProvider());}@Overridepublic GenerateResponse parseResponseJson(GenerateConfig config, String respJson) {ONode oResp = ONode.load(respJson);String model = oResp.get("model").getString();if (oResp.contains("error")) {return new GenerateResponse(model, new GenerateException(oResp.get("error").getString()), null, null);} else {List<GenerateContent> data = null;if (oResp.contains("response")) {//文本模型生成String text = oResp.get("response").getString();data = Arrays.asList(GenerateContent.builder().text(text).build());} else if (oResp.contains("data")) {//图像模型生成data = oResp.get("data").toObjectList(GenerateContent.class);}AiUsage usage = null;if (oResp.contains("prompt_eval_count")) {int prompt_eval_count = oResp.get("prompt_eval_count").getInt();usage = new AiUsage(prompt_eval_count,0,prompt_eval_count);}return new GenerateResponse(model, null, data, usage);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/989784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年中国五大商用音乐授权平台推荐:猴子音悦的市场口碑如

本榜单依托全维度市场调研与真实行业口碑,深度筛选出十家标杆企业,为企业选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:猴子音悦(上海)网络科技有限公司 推荐指数:★★★★★ 口碑评分:国内的商…

NOIP2025 寄

终究还是迎来了最坏的结局。 T1 应该 8:45 前就过了。 8:50 ~ 10:00 一直在想 T2,途中想过 DP 发现不行,主要还是在想贪心策略什么时候不是最优的,貌似找到了充要条件,但好像不是很好维护,想了很久都没想清楚。先…

2025年比较好的年轻人家具/现代家具品牌厂家排行榜

2025年比较好的年轻人家具/现代家具品牌厂家排行榜行业背景与市场趋势随着90后、00后逐渐成为家居消费的主力军,现代家具市场正经历着前所未有的变革。年轻消费者对家具的需求不再局限于实用功能,而是更加注重设计感…

短视频开发,js判断文件名是否合法 - 云豹科技

短视频开发,js判断文件名是否合法文件类型可查询MIME参考手册.获取文件后缀名/*** @description 获取文件后缀名* @param {String} fileName 文件全名,包含后缀名的那种*/ export function getFileExt(fileName) {le…

2025年热门的20吨地磅实力厂家TOP推荐榜

2025年热门的20吨地磅实力厂家TOP推荐榜 行业背景与市场趋势 随着物流、建筑、矿山、农业等行业的快速发展,地磅作为重要的称重设备,市场需求持续增长。20吨地磅因其适中的承重范围,广泛应用于中小型货车、物流运…

2025年口碑好的SMC比例阀/FD7B25ADM比例阀厂家最新权威实力榜

2025年口碑好的SMC比例阀/FD7B25ADM比例阀厂家权威实力榜行业背景与市场趋势随着工业自动化水平的不断提升,比例阀作为流体控制系统的核心元件,在智能制造、精密加工、能源装备等领域发挥着越来越重要的作用。2025年…

2025年比较好的安全网篷布设备用户好评厂家排行

2025年比较好的安全网篷布设备用户好评厂家排行行业背景与市场趋势随着全球建筑、农业、物流和户外休闲产业的快速发展,安全网篷布设备市场迎来了前所未有的增长机遇。2025年,这一市场规模预计将达到120亿美元,年复…

成都恒利泰HT-LFCG-1800+

成都恒利泰HT-LFCG-1800+成都恒利泰HT-LFCG-1800+:DC-1800M的SMD-8Pin LTCC低通滤波器强势来袭! 各位电子爱好者们,今天给大家带来一款性能卓越的LTCC低通滤波器——HT-LFCG-1800+! 产品亮点: -频率范围:DC-1800…

从爱好者到专家:机器人抓取技术的科研之路

本文讲述了一位研究科学家如何从大学课程开始爱上机器人技术,并最终投身于机器人抓取与操控系统的建模、仿真与算法开发工作中,展示了从学术到工业界的完整技术成长路径。从爱好者到专家:机器人抓取技术的科研之路 …

2025年靠谱的处理压滤机高评价厂家推荐榜

2025年靠谱的处理压滤机高评价厂家推荐榜行业背景与市场趋势随着环保政策的日益严格和工业废水处理需求的持续增长,压滤机作为固液分离的关键设备,在环保、化工、矿业等领域的应用不断扩大。2024年,全球压滤机市场规…

2025年五大保密柜专业制造商推荐,保密柜供应商推荐与保密柜

在数字化办公与信息安全需求日益增长的时代,保密柜作为存放涉密文件、重要资料的核心设备,其质量与安全性直接关乎企业与机构的信息安全。面对市场上良莠不齐的保密柜产品,如何选择专业可靠的保密柜专业制造商、供应…

2025年中国音乐版权服务平台口碑排名:猴子音悦实力出众

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为企业和创作者选型提供客观依据,助力精准匹配适配的音乐版权服务伙伴。 TOP1 推荐:猴子音悦(上海)网络科技有限公司 推荐指数:★★★★★ 口碑…

Solon AI 开发学习15 - chat - 拦截器

聊天拦截器(ChatInterceptor)是用于ChatModel的中间件,提供请求/响应处理功能。主要功能包括日志记录、安全检查、数据修改等。该接口定义了三种拦截方法:interceptCall处理同步请求、interceptStream处理流式请求、…

2025年质量好的单螺旋挤浆机行业内知名厂家排行榜

2025年质量好的单螺旋挤浆机行业内知名厂家排行榜行业背景与市场趋势单螺旋挤浆机作为固液分离设备的重要组成部分,近年来随着环保要求的提高和资源回收利用需求的增长,市场需求持续扩大。2025年,随着生物质能源、有…

2025年比较好的燃木真火壁炉厂家最新实力排行

2025年比较好的燃木真火壁炉厂家实力排行行业背景与市场趋势随着人们生活品质的提升和对家居环境要求的不断提高,燃木真火壁炉作为兼具实用功能与装饰美学的家居产品,近年来在全球市场持续升温。2025年,真火壁炉行业…

.Net使用AgentFramework进行多Agent工作流编排-智能体AI开发

使用Agent Framework进行多Agent工作流编排 Agent Framework是微软提供的用于构建多Agent系统的开发框架,支持C#和.NET环境。以下是如何使用该框架进行多Agent工作流编排的示例代码和关键概念。 具体实现可参考NetCor…

2026 年广西 PET/KET 备考观察:考生家长的现实挑战与专业应对路径

在南宁市、柳州市、桂林市、梧州市、北海市、防城港市、钦州市、贵港市、玉林市、百色市、贺州市、河池市、来宾市、崇左市地级市、111 个县区的家长圈里,“低龄娃抵触 PET/KET 怎么办?”“考位 8 秒抢空如何突围?”…

2025年靠谱的家具滑轨TOP实力厂家推荐榜

2025年靠谱的家具滑轨TOP实力厂家推荐榜行业背景与市场趋势随着全球家具制造业的持续发展,家具滑轨作为核心五金配件之一,其市场需求呈现稳步增长态势。据行业数据显示,2024年全球家具滑轨市场规模已达到约85亿美元…

2025年热门的防裂护手霜厂家推荐及采购指南

2025年热门的防裂护手霜厂家推荐及采购指南 行业背景与市场趋势 随着消费者对护肤需求的精细化,护手霜市场正从基础保湿向功能化、专业化方向发展。据Euromonitor数据显示,2024年中国护手霜市场规模已突破80亿元,…