当前位置: 首页 > news >正文

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

一、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大模型@Testvoid test() {ChatLanguageModel model = OpenAiChatModel.builder().apiKey("demo").modelName("gpt-4o-mini").build();String answer = model.chat("你好,你是谁?");System.out.println(answer);}//deepseek大模型@Testvoid 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);}//阿里千问大模型@Testvoid 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,这是我的英文名,你也可以叫我通义千问。我是阿里云自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持。

http://www.lryc.cn/news/585924.html

相关文章:

  • 【Linux网络】IP 协议详解:结构、地址与交付机制全面解析
  • 【PTA数据结构 | C语言版】阶乘的递归实现
  • 多线程进阶——JUC的常见类
  • w460实习生管理系统
  • 接口测试及常用接口测试工具总结
  • Springboot aop面向对象编程
  • JavaScript加强篇——第六章 定时器(延时函数)与JS执行机制
  • 【电脑】硬盘驱动器(HDD)的基础知识
  • TCP详解——各标志位
  • QML与C++相互调用函数并获得返回值
  • 浅谈 Pydantic v2 的 RootModel 与联合类型——构建多请求结构的统一入口模型
  • Linux中的git命令
  • Kimi K2万亿参数开源模型原理介绍
  • 猿人学js逆向比赛第一届第二十题
  • Linux进程的生命周期:状态定义、转换与特殊场景
  • 杭州乐湾科技有限公司的背景、产品体系与技术能力的全方位深度分析
  • linux_线程概念
  • 车载操作系统 --- Linux实时化与硬实时RTOS综述
  • windows电脑远程win系统服务器上的wsl2
  • 部署Harbor私有仓库
  • 服务器怎么跑Python项目?
  • vite如何生成gzip,并在服务器上如何设置开启
  • 自动化证书续签工具针对VPS服务器HTTPS服务的维护实践
  • Python技巧记录
  • 浅谈npm,cnpm,pnpm,npx,nvm,yarn之间的区别
  • 【云端深度学习训练与部署平台】AutoDL连接VSCode运行深度学习项目的全流程
  • Go语言中的Options模式
  • Mac M芯片安装RocketMQ服务
  • tp8.0\jwt接口安全验证
  • 深入解析 LinkedList