【LangChain4J】图生文&文生图,以及第三方平台集成

图生文

//选择阿里的通义万相2.1-文生图-Turbo模型
@Bean
    public ChatModel chatModelQwen(){
        return OpenAiChatModel.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .modelName("qwen3-vl-plus")
                .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
                .logRequests(true)
                .logResponses(true)
                .build();
    }

@Value("classpath:static/images/002371.jpg")//SpringBoot读取图片资源
    private Resource resource;

@GetMapping("/image/call")
    public String analyzeImage() throws IOException {
        String result = null;
        byte[] byteArray = resource.getContentAsByteArray();
        String base64Data = Base64.getEncoder().encodeToString(byteArray);
        UserMessage userMessage = UserMessage.from(
                TextContent.from("请从图片的最近股价走势,分析未来的走势可能"),
                ImageContent.from(base64Data, "image/jpg"));
        ChatResponse chatResponse = chatModel.chat(userMessage);
        result = chatResponse.aiMessage().text();
        return result;
    }

第三方平台集成

父工程&子工程Pom文件

<!-- 引入阿里云百炼平台依赖管理清单 -->
      <!-- https://docs.langchain4j.dev/integrations/language-models/dashscope -->
      <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-community-bom</artifactId>
        <version>${langchain4j-community.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

<!-- 子工程 -->
<dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
        </dependency>

文生图

@Bean
    public WanxImageModel wanxImageModel(){
        return WanxImageModel.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .modelName("wanx2.1-t2i-turbo")
                //.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1") //注意三要素中要去掉baseUrl,会报错404
                .build();
    }

@GetMapping("/image/create")
    public String createImage() throws IOException {
        System.out.println(wanxImageModel);
        Response<Image> response = wanxImageModel.generate("美女");
        System.out.println(response.content().url());
        return response.content().url().toString();
    }

    @GetMapping("/image/create2")
    public String createImage2() throws NoApiKeyException {
        String prompt = "绝美镜头,美女明星,古代服饰,面露微笑,电影节光照,明媚动人治愈人心";
        ImageSynthesisParam param = ImageSynthesisParam.builder()
                .apiKey(System.getProperty("DASHSCOPE_API_KEY"))
                .model(ImageSynthesis.Models.WANX_V1)
                .prompt(prompt)
                .style("<watercolor>")
                .n(1)
                .size("1024*1024")
                .build();
        ImageSynthesis imageSynthesis = new ImageSynthesis();
        ImageSynthesisResult imageSynthesisResult = null;
        imageSynthesisResult = imageSynthesis.call(param);
        System.out.println(JsonUtils.toJson(imageSynthesisResult));
        return JsonUtils.toJson(imageSynthesisResult);
    }
posted @ 2025-12-17 21:20  爱吃鱼的大灰狼  阅读(3)  评论(0)    收藏  举报