当前位置: 首页 > news >正文

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

生成模型(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.jsqmd.com/news/63620/

相关文章:

  • 2025年中国五大商用音乐授权平台推荐:猴子音悦的市场口碑如
  • NOIP2025 寄
  • 2025年比较好的年轻人家具/现代家具品牌厂家排行榜
  • 短视频开发,js判断文件名是否合法 - 云豹科技
  • 2025年热门的20吨地磅实力厂家TOP推荐榜
  • 2025年口碑好的SMC比例阀/FD7B25ADM比例阀厂家最新权威实力榜
  • 2025年比较好的安全网篷布设备用户好评厂家排行
  • 成都恒利泰HT-LFCG-1800+
  • 从爱好者到专家:机器人抓取技术的科研之路
  • 2025年靠谱的处理压滤机高评价厂家推荐榜
  • 2025年五大保密柜专业制造商推荐,保密柜供应商推荐与保密柜
  • 2025年中国音乐版权服务平台口碑排名:猴子音悦实力出众
  • Solon AI 开发学习15 - chat - 拦截器
  • 2025年质量好的单螺旋挤浆机行业内知名厂家排行榜
  • 2025年比较好的燃木真火壁炉厂家最新实力排行
  • .Net使用AgentFramework进行多Agent工作流编排-智能体AI开发
  • chrome: 关闭图片的显示
  • 2026 年广西 PET/KET 备考观察:考生家长的现实挑战与专业应对路径
  • 2025年靠谱的家具滑轨TOP实力厂家推荐榜
  • 2025年热门的防裂护手霜厂家推荐及采购指南
  • 2025年比较好的激光切割机/印花激光切割机行业内口碑厂家排行榜
  • 2025年质量好的反弹阻尼隐藏轨/橱柜阻尼隐藏轨最新TOP厂家排名
  • 海南市2026 年 PET/KET 备考指南:解码家长的教育突围之道,琼州学海千帆
  • 三石量化股票数据提取分析报告 - 2025年12月06日
  • 2025年度立式烧结炉/碳化钛烧结炉/粉末冶金烧结炉品牌TO
  • 【SSM 框架 | day27 MP】 - 教程
  • 2025年常州C型钢厂家服务排名,C型钢生产企业选择哪家好
  • 2025年知名的发电机回收/应急租发电机厂家最新推荐权威榜
  • 广西壮族自治区2026 年PET/KET 培训机构风云榜:本土教育生态中的璀璨坐标与优选指南
  • 2025年口碑好的一门到顶针式铰链厂家推荐及采购参考