Java使用Langchai4j接入AI大模型的简单使用(一)

发布于:2025-07-17 ⋅ 阅读:(17) ⋅ 点赞:(0)

一、LangChain4j 简介

LangChain4j 是 Java 生态中的 LangChain 实现,是一个用于构建大语言模型(LLM)应用程序的框架。它提供了与各种LLM服务集成的能力,并简化了构建复杂AI应用的过程。

LangChain4j官方文档:Integrations | LangChain4j

1、核心特性

  1. 多模型支持:支持OpenAI、Azure OpenAI、HuggingFace、DeepSeek等多种LLM提供商
  2. 模块化设计:包含多个功能模块,可根据需要单独使用
  3. 简化集成:提供简洁的API与LLM交互
  4. Java原生:专为Java开发者设计,无需学习Python生态

2、主要组件

    1. 模型交互 (Chat Models)
    2. 提示模板 (Prompt Templates)
    3. 记忆管理 (Memory)
    4. 链式调用 (Chains)
    5. 工具集成 (Tools)

3、典型使用场景

  1. 聊天机器人:构建具有记忆功能的对话系统
  2. 文本处理:摘要、翻译、改写等
  3. 问答系统:基于文档的智能问答
  4. 数据提取:从非结构化文本中提取结构化信息
  5. 代码生成:辅助编程和代码解释

注意:本文使用的是jdk17

二、Langchai4j的使用

1、创建一个maven工程,引入Langchai4j依赖

<properties>
	<maven.compiler.source>17</maven.compiler.source>
	<maven.compiler.target>17</maven.compiler.target>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<langchain4j.version>1.0.0-beta1</langchain4j.version>
</properties>

<dependencies>
	<dependency>
		<groupId>dev.langchain4j</groupId>
		<artifactId>langchain4j</artifactId>
		<version>1.0.0-beta1</version>
	</dependency>
	<!--openai/deepseek大模型依赖-->
	<dependency>
		<groupId>dev.langchain4j</groupId>
		<artifactId>langchain4j-open-ai</artifactId>
		<version>${langchain4j.version}</version>
	</dependency>
	<!--阿里千问大模型依赖-->
	<dependency>
		<groupId>dev.langchain4j</groupId>
		<artifactId>langchain4j-community-dashscope</artifactId>
		<version>${langchain4j.version}</version>
	</dependency>

	<dependency>
		   <groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter</artifactId>
			<version>5.11.4</version>
	</dependency>
</dependencies>

2、 创建一个单元测试类,使用各个大模型提示提问:

import dev.langchain4j.community.model.dashscope.QwenChatModel;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
import org.junit.jupiter.api.Test;

/**
 * @author: 
 * @Desc:大模型接入测试
 * @create: 2025-07-12 14:14
 **/
public class Langchain4jDemo {
    
    //chatgpt大模型
    @Test
     void test() {
        ChatLanguageModel model = OpenAiChatModel.builder()
                .apiKey("demo")
                .modelName("gpt-4o-mini")
                .build();
        String answer = model.chat("你好,你是谁?");
        System.out.println(answer);
    }

    //deepseek大模型
    @Test
    void testDeepSeek(){
        ChatLanguageModel model = OpenAiChatModel
               .builder()
               .baseUrl("https://api.deepseek.com")
               .apiKey("your key")
               .modelName("deepseek-reasoner")
               .build();
        String answer = model.chat("你好,你是谁?");
        System.out.println(answer);
    }

    //阿里千问大模型
    @Test
    void testQwenAi(){
        ChatLanguageModel model = QwenChatModel
                .builder()
                //.baseUrl("https://dashscope.aliyuncs.com")
                .apiKey("your key")
                .modelName("qwen-max")
                .build();
        String answer = model.chat("你好,你是谁?");
        System.out.println(answer);
    }


}

3、注意事项:

1.本文使用的Langchai4j的1.0.0-beta1版本,该版本为了降低Langchai4j的门槛,提供一个demo的apiKey,如果key为demo,请求将发送到http://langchain4j.dev/demo/openai/v1进行访问openai,后面的版本去掉这一处理,国内无法直接访问openai; 

2.deepseek跟openai使用同一接口规范,因此如果引入了langchain4j-open-ai的依赖

使用deepseek不用再单独引入deepseek的依赖。构建的方式也跟openai一样,使用

ChatLanguageModel model = OpenAiChatModel.builder()

来进行构建,使用deepseek需要到官网DeepSeek | 深度求索首页右上角的API开放平台创建apikey并进行充值才可以使用;

3.使用阿里千问,需引入专门的依赖:

<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j-community-dashscope</artifactId>
	<version>${langchain4j.version}</version>
</dependency>

在使用前需要到阿里云百炼:大模型服务平台百炼控制台 注册账号创建apikey,有免费额度,

拿到key后进行编码开发,构建方式需要使用千问的类进行:

ChatLanguageModel model = QwenChatModel.builder()

运行后分别输出:

1、openai

你好!我是一个人工智能助手,旨在回答问题和提供信息。有任何你想了解的内容吗?

2、deepseek,deepseek响应较慢,等待时间较长

你好呀!👋我是 **DeepSeek-R1**,是由中国的 **深度求索公司(DeepSeek)** 开发的一款智能助手。你可以把我当作一个知识丰富、乐于助人的AI伙伴~无论是学习、工作、写作、编程,还是生活琐事、情感倾诉,我都可以尽力帮上忙!

✨我的特点包括:
- **免费使用**(目前完全免费,没有收费计划)
- **超长记忆上下文**(最多可处理128K字符)
- **文件阅读能力**(支持上传PDF、Word、Excel、PPT等文件)
- **联网搜索**(部分平台支持联网获取最新信息)
- **逻辑推理强**,尤其擅长数学、编程、写作类任务

如果你愿意的话,可以把我当作一个24小时在线的朋友~  
😊那今天有什么我可以帮你的吗?

3、阿里千问:

你好!我是Qwen,这是我的英文名,你也可以叫我通义千问。我是阿里云自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持。


网站公告

今日签到

点亮在社区的每一天
去签到