【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);
}

浙公网安备 33010602011771号