langchain4j实现文生图功能
文章介绍了使用LangChain4j框架集成文生图功能的实现方案。主要内容包括:1)通过Maven引入智普AI等必要依赖;2)配置ImageModel Bean设置API key及超时参数;3)创建ImageController实现图像生成接口;4)使用APIFox测试接口获取图片URL。该方案采用智普AI的API,通过简单文本描述即可生成对应图像,为开发者提供了完整的文生图功能集成指南。
·
文生图(Text-to-Image)是当前AI领域的热门应用之一,它能够根据文本描述生成相应的图像。本文将详细介绍如何使用LangChain4j框架集成文生图功能,并提供完整的实现方案。
本文使用的是智普ai模块实现的文生图功能
添加maven依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.springai</groupId>
<artifactId>Ai</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>langchain4j-05-generateimage</artifactId>
<packaging>jar</packaging>
<name>langchain4j-05-generateimage</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>ai.z.openapi</groupId>
<artifactId>zai-sdk</artifactId>
<version>0.0.6</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-zhipu-ai</artifactId>
<version>1.0.0-beta3</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-dashscope</artifactId>
<version>0.35.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.2.1-jre</version>
</dependency>
</dependencies>
</project>
编写配置类创建模块元信息
package com.springai.config;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import dev.ai4j.openai4j.OpenAiClient;
import dev.langchain4j.community.model.zhipu.ZhipuAiImageModel;
import dev.langchain4j.model.image.ImageModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.time.Duration;
@Configuration
public class LLMConfig {
@Bean
public ImageModel imageModel() {
ImageModel imageModel = ZhipuAiImageModel.builder()
//apiKey智普ai的apikey
.apiKey("34d4358f44cd438b857e71a79f2361d3.FMfYT95OalGDeKr4")
//是否记录请求
.logRequests(true)
//是否记录响应
.logResponses(true)
//响应超时时间
.callTimeout(Duration.ofSeconds(60))
//连接超时
.connectTimeout(Duration.ofSeconds(60))
//读取超时
.readTimeout(Duration.ofSeconds(60))
//写入超时
.writeTimeout(Duration.ofSeconds(60))
.build();
return imageModel;
}
}
编写接口实现功能
package com.springai.controller;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisListResult;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.JsonUtils;
import dev.langchain4j.data.image.Image;
import dev.langchain4j.model.image.ImageModel;
import dev.langchain4j.model.output.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class ImageController {
@Autowired
ImageModel imageModel;
@GetMapping("/image")
public String generateImage(@RequestParam String message) throws NoApiKeyException {
Response<Image> generate = imageModel.generate(message);
return generate.content().url().toString();
}
}
利用apifox测接口获取图片url地址

浏览器打开链接即可下载查看图片
更多推荐



所有评论(0)