# LangChain4j

# Java环境下使用

# 使用 OpenAi 的 gpt 模型

  • 添加依赖环境
<!--langchain4j的核心依赖-->
<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j</artifactId>
	<version>1.1.0</version>
</dependency>

<!--langchain4j接入Open AI各个模型的依赖-->
<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j-open-ai</artifactId>
	<version>1.1.0</version>
</dependency>
  • 使用模型
@Test
void test01() {
	ChatLanguageModel model = OpenAiChatModel
			.builder() // 构建器模式创建实例对象
			.apiKey("apiKey") 
		    .modelName("gpt-4o-mini") 
		    .build(); // 构建模型实例

	String answer = model.chat("你好,你是谁?你能代替人类吗");
	System.out.println(answer);
}

# 使用 DeepSeek 模型

  • 添加依赖环境
<!--langchain4j的核心依赖-->
<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j</artifactId>
	<version>1.1.0</version>
</dependency>

<!--langchain4j接入Open AI各个模型的依赖-->
<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j-open-ai</artifactId>
	<version>1.1.0</version>
</dependency>
  • 使用模型
@Test
void test02() {
	ChatLanguageModel model = OpenAiChatModel
			.builder()
			.baseUrl("https://api.deepseek.com")
			.apiKey("apiKey")
			.modelName("deepseek-reasoner") // deepseek-chat
			.build();
	String answer = model.chat("你好,你是谁?你能代替人类吗");
	System.out.println(answer);
}

注意

  • deepseek 依赖还是使用 langchain4j-open-ai 因为 deepseek 的接口标准和 open-ai 是一样的
  • deepseek 不支持向量搜索(RAG),需要使用单独的向量模型

# 使用 Ollama 模型

  • 添加依赖环境
<!--langchain4j的核心依赖-->
<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j</artifactId>
	<version>1.1.0</version>
</dependency>

<!--langchain4j接入Ollama本地模型的依赖-->
<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j-community-dashscope</artifactId>
	<version>1.1.0</version>
</dependency>
  • 使用模型
@Test
void test04() {
   ChatModel model = OllamaChatModel
		  .builder()
		 .baseUrl("http://localhost:11434")
		 .modelName("deepseek-r1:8b")
		 .build();
   String answer = model.chat("你好,你是谁?你能代替人类吗");
   System.out.println(answer);
}

# 使用阿里百炼平台

  • 添加依赖环境
<!--langchain4j的核心依赖-->
<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j</artifactId>
	<version>1.1.0</version>
</dependency>

<!--langchain4j接入阿里百炼的模型依赖-->
<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j-community-dashscope</artifactId>
	<version>1.1.0</version>
</dependency>
  • 使用千问模型
@Test
void test03() {
	ChatModel model = QwenChatModel
			.builder()
			// 内部已经配置了baseUrl,无需再次配置
			// .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
			.apiKey("apiKey")
			.modelName("qwen-plus-latest")
			.build();
	String answer = model.chat("你好,你是谁?你能代替人类吗");
	System.out.println(answer);
}
  • 使用万象模型 - 文生图 WanxImageModel
@Test
void test05() {
	WanxImageModel wanxImageModel = WanxImageModel.builder()
		   .modelName("wanx2.1-t2i-plus")
		   .apiKey("apiKey")
		   .build();
	Response<Image> response = wanxImageModel.generate("sylone");
	System.out.println(response.content().url());
}
  • 使用万象模型 - 文生语音 WanxImageModel
@Test
void test05() {
	WanxImageModel wanxImageModel = WanxImageModel.builder()
		   .modelName("wanx2.1-t2i-plus")
		   .apiKey("sk-d29accd35f0c4048aea165f94a564643")
		   .build();
	Response<Image> response = wanxImageModel.generate("sylone");
	System.out.println(response.content().url());
}