文章目录
- 前言
- 环境准备
- 基本功能使用测试
- 使用 openAI
- 核心依赖
- 验证demo
- 接入其他模型
- 使用 DeepSeek 大模型
- 接入阿里百炼大模型
- 使用阿里百炼文生图
- 使用阿里百炼文生语音
前言
LangChain4j
是一个基于Java
的开源框架,用于开发人工智能驱动的应用程序
,尤其是涉及大语言模型(LLM)
交互的场景。它的设计目标是简化开发者与大语言模型的集成过程,提供一套工具和组件来处理复杂的 LLM 应用逻辑,例如对话管理、提示工程、工具调用等。
环境准备
- jdk 17
- maven 3.6.3
- springboot 3.4.0
- langchain4j 1.0.0-beta1
基本功能使用测试
使用 openAI
核心依赖
<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j</artifactId><version>1.0.0-beta1</version>
</dependency>
<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId><version>1.0.0-beta1</version>
</dependency>
验证demo
Langchain4j
官方网站中推荐了一种直接使用测试的方法。如下所示:
@Test
public void test1() {OpenAiChatModel demo = OpenAiChatModel.builder().apiKey("demo").modelName("gpt-4o-mini").build();String answer = demo.chat("你好,你是谁?");System.out.println(answer);
}
运行后控制台打印效果:
你好!我是一个人工智能助手,旨在回答问题和提供信息。有什么我可以帮助你的吗?
一般来说,使用大模型都需要用到apiKey
和模型地址
。但Langchain4j
为了让广大开发人员不用过多关注申请和付费类,推出使用demo
代替apikey
的形式进行代码验证。其中原理在于OpenAiChatModel
中填充属性时,识别到apiKey
为demo
时,会使用其官方本身的大模型。
当然,在使用apiKey("demo")
时,模型编号只能使用gpt-4o-mini
!
接入其他模型
使用 DeepSeek 大模型
在deepseek官方网站中有一个描述。
* 出于与 OpenAI 兼容考虑,您也可以将 base_url 设置为 https://api.deepseek.com/v1 来使用,但注意,此处 v1 与模型版本无关。* deepseek-chat 模型指向 DeepSeek-V3-0324, 通过指定 model='deepseek-chat' 调用。* deepseek-reasoner 模型指向 DeepSeek-R1-0528, 通过指定 model='deepseek-reasoner' 调用。
编写测试代码,如下所示:
@Test
public void deepseekTest() {// 配置在系统环境变量中的 key,也可以直接使用 apiKey("xxxxxxxx") 的方式String deepSeekKey = System.getenv("DEEP_SEEK_KEY");ChatLanguageModel deepSeekModel = OpenAiChatModel.builder().baseUrl("https://api.deepseek.com").apiKey(deepSeekKey).modelName("deepseek-chat").build();String answer = deepSeekModel.chat("你好,你是谁?");System.out.println(answer);
}
执行后控制台打印信息如下所示:
你好!我是DeepSeek Chat,一个由深度求索公司(DeepSeek)开发的智能AI助手。
我可以帮助你解答问题、提供信息、聊天交流,还能处理各种文本和文件内容。如果有任何问题或需要帮助,尽管问我吧!😊
接入阿里百炼大模型
阿里百炼是一个大模型的大集合平台,在里面能够白嫖(滑稽)。
查看 LangChain4j 官网 引入对应的依赖。
<!-- 阿里千问 -->
<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-community-dashscope</artifactId><version>1.0.0-beta1</version>
</dependency>
编写测试代码。
/*** 百炼相关pom* <dependency>* <groupId>dev.langchain4j</groupId>* <artifactId>langchain4j-community-dashscope</artifactId>* <version>${langchain4j.version}</version>* </dependency>** 对应千问大模型 url https://bailian.console.aliyun.com/console?tab=api#/api/?type=model&url=https%3A%2F%2Fhelp.aliyun.com%2Fdocument_detail%2F2712576.html%23cde3eb109flda* 对应 langchain4j 官网 https://docs.langchain4j.dev/integrations/language-models/dashscope/* qwq-32b 仅支持流式*/
@Test
public void qianwenTest() {String aliAiKey = System.getenv("ALI_AI_KEY");ChatLanguageModel qianwenModel = QwenChatModel.builder()
// .baseUrl("https://dashscope.aliyuncs.com").apiKey(aliAiKey).modelName("qwen-max").build();String answer = qianwenModel.chat("你好,你是谁?");System.out.println(answer);
}
运行后控制台打印信息如下:
你好!我是Qwen,这是我的英文名,你也可以叫我通义千问。
我是阿里云自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码,功能多多。
有什么我可以帮助你的吗?
使用阿里百炼文生图
在阿里百炼大模型平台中,能够文生图
的模型有很多。本次验证使用通义万相-文生图V2版。
代码案例如下:
/*** ali 百炼* 文生图* https://bailian.console.aliyun.com/console?tab=api#/api/?type=model&url=https%3A%2F%2Fhelp.aliyun.com%2Fdocument_detail%2F2862677.html* <dependency>* <groupId>dev.langchain4j</groupId>* <artifactId>langchain4j-community-dashscope</artifactId>* <version>${langchain4j.version}</version>* </dependency>*/
@Test
public void test1() {WanxImageModel wanxImageModel = WanxImageModel.builder().apiKey(System.getenv("ALI_AI_KEY")).modelName("wanx2.1-t2i-plus").build();Response<Image> response = wanxImageModel.generate("写实风格,一只黑色小猫好奇地看向天空,镜头从平视逐渐上升,最后俯拍小猫好奇的眼神。");System.out.println(response.content().url());
}
执行后,控制台会返回一个生成的图片地址。
https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1d/7a/20250617/11701983/39589058-2bc7-4e88-898b-e59273ab1cf7.png?Expires=1750215539&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=yBxDnfW0SxFUyhnYITB6zSt65ys%3D
使用阿里百炼文生语音
对应百炼模型选择 语音合成-CosyVoice 。其中音色
的选择也有限制,可以参照 百炼音色选择。
编写Java代码测试:
/*** 语音* 百炼文档 https://bailian.console.aliyun.com/console?tab=api#/api/?type=model&url=https%3A%2F%2Fhelp.aliyun.com%2Fdocument_detail%2F2817551.html* 百炼音色 https://help.aliyun.com/zh/model-studio/cosyvoice-java-sdk#722dd7ca66a6x**/
@Test
public void test2() {// String voice = "longwan";String voice = "longtong";SpeechSynthesisParam build = SpeechSynthesisParam.builder().apiKey(System.getenv("ALI_AI_KEY")).model("cosyvoice-v1").voice(voice).build();SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(build, null);ByteBuffer audio = speechSynthesizer.call("大家好,我是最帅的人!");// 写入音频文件File file = new File("output.mp3");try (FileOutputStream fos = new FileOutputStream(file)){fos.write(audio.array());} catch (Exception e) {}
}
执行完毕后,会将对应的字节码写入指定文件中。