Solon AI 开发学习17 - generate - 使用复杂提示语

有些生成模型(或服务平台)的提示语可能会是一个结构体,此时就需要使用 GeneratePrompt 接口。可以快速使用,或者定制强类型实体。

1、使用快速方法

使用阿里百炼调整一张图片,把它转成法国绘本风格

java 复制代码
String apiUrl = "https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis";
GenerateModel generateModel = GenerateModel.of(apiUrl)
        .apiKey(apiKey)
        .model("wanx2.1-imageedit")
        .headerSet("X-DashScope-Async", "enable")
        .build();

GenerateResponse resp = generateModel.prompt(GeneratePrompt.ofKeyValues(
                "function", "stylization_all",
                "prompt", "转换成法国绘本风格",
                "base_image_url", "http://wanx.alicdn.com/material/20250318/stylization_all_1.jpeg")
        )
        .options(o -> o.optionAdd("n", 1))
        .call();

log.warn("{}", resp.getContent().getUrl());

2、定制提示语结构体

定义提示语结构体

java 复制代码
@Builder
class ImageEditPrompt implements GeneratePrompt {
    private String function;
    private String prompt;
    private String base_image_url;

    @Override
    public Map<String, Object> toMap() {
        return Utils.asMap("function", function, "prompt", prompt, "base_image_url", base_image_url);
    }
}

应用示例

java 复制代码
String apiUrl = "https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis";
GenerateModel generateModel = GenerateModel.of(apiUrl)
        .apiKey(apiKey)
        .model("wanx2.1-imageedit")
        .headerSet("X-DashScope-Async", "enable")
        .build();

GenerateResponse resp = generateModel.prompt(ImageEditPrompt.builder()
            .function("stylization_all")
            .prompt("转换成法国绘本风格")
            .base_image_url("http://wanx.alicdn.com/material/20250318/stylization_all_1.jpeg")
            .build())
        .options(o -> o.optionAdd("n", 1))
        .call();

log.warn("{}", resp.getContent().getUrl());
相关推荐
aq55356007 小时前
四大编程语言对比:PHP、Python、Java、易语言
java·python·php
快乐的命令行7 小时前
hermes agent 安装部署
ai
CheerWWW8 小时前
C++学习笔记——栈内存与堆内存、宏、auto、std::array
c++·笔记·学习
成为大佬先秃头8 小时前
前后分离项目:整合JWT+Shiro
java·springboot·shiro·jwt
y = xⁿ8 小时前
【Leet Code 】滑动窗口
java·算法·leetcode
day day day ...8 小时前
MyBatis条件误写引发的查询条件污染分析与防范
java·服务器·tomcat
hrhcode8 小时前
【java工程师快速上手go】一.Go语言基础
java·开发语言·golang
知识分享小能手8 小时前
MongoDB入门学习教程,从入门到精通,在生产环境中设置MongoDB(21)
数据库·学习·mongodb
L.fountain8 小时前
图像自回归生成(Auto-regressive image generation)实战学习(六)
学习·数据挖掘·回归
-许平安-8 小时前
MCP项目笔记十(客户端 MCPClient)
c++·笔记·ai·raii·mcp·pluginapi·plugin system