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

LangChain4j(1):初识LangChain4j

1 什么是LangChain和LangChain4j

LangChain是一个大模型的开发框架,使用LangChain框架,程序员可以更好的利用大模型的能力,大大提高编程效率。如果你是一个lava程序员,那么对LangChain最简单直观的理解就是,LangChain是大模型领域的Spring。LangChain不光提供了一整套快速接入各种开放大模型的工具,更重要的是,他集成了当今程序员使用大模型能力最好的方案。

LangChain是一个基于Python开发的框架,而Langchain4j则是Langchain的]ava版本。将大模型的强大能力和Java编程语言相结合,这就是LangChain4i所做的。实际上,LangChain4i不光包含了LangChain的功能,同时还加入了很多自己的创新。在目前阶段,LangChain4j也是与大模型结合最好最成熟的框架。

要注意的是,大模型本身在快速发展过程中,而如何使用好大模型,这件事,也是在快速发展过程中。学习LangChain4i,不光要学习如何使用框架,更需要从LangChain4i中学习如何使用好各种各样的大模型。

LangChain是最好的框架,但并不是唯一的框架。例如Spring社区也推出了Spring AI框架,也是用来对接大模型的。基于Spring在]ava领域的多年技术积累,Spring AI框架也是非常令人期待的。在LangChain4j之后楼兰也会跟大家详细分享Spring Al框架。

官网地址:LangChain4j | LangChain4j

LangChain4j的目标是简化与 Java 应用程序 集成大模型。

特性:

统- API:LLM提供程序(如 OpenAl 或 阿里百炼)和嵌入(向量)存储(如 redis 或 ES) 使用专有 APl。LangChain4j提供了一个统一的 API,以避免为每个 API 学习和实现特定的 API。要试验不同的LLMs存储或嵌入的存储,您可以在它们之间轻松切换,而无需重新编写代码。LangChain4i日前支持 15+ 热门LLM 和 20+ 嵌入模型。

langchain4jVS springAl

维度Spring AlLangChain4j
技术栈绑定强依赖 Spring 生态无框架依赖,可独立使用
适用场景SpringBoot应用快速接入单模型多模型(动态模型)平台

2 openAI代码实现

引入了langchain4j的核心依赖、langchain4j集成OpenAi各个模型的依赖。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>langChain4Jpro</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><langchin4j.version>1.0.0-beta1</langchin4j.version></properties><dependencies><!--langchain核心--><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j</artifactId><version>${langchin4j.version}</version></dependency><!--open ai--><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId><version>${langchin4j.version}</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><version>5.11.4</version><scope>test</scope></dependency></dependencies>
</project>

代码如下:

import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
import org.junit.jupiter.api.Test;public class langchain4jDemoApplicatonTest {@Testvoid test01(){ChatLanguageModel model = OpenAiChatModel.builder().apiKey("demo").modelName("gpt-4o-mini").build();String answer = model.chat("你好,你是谁?");System.out.println(answer);}}

运行结果如下:

以上代码可以看出LangChain4j对于初次接入大模型的开发者来说十分友好,不需要指定模型,不需要指定apikey即可对接大模型进行对话,对ApiKey为"demo底层,如下图:

在底层在构造OpenAiChatModel时,会判断传入的ApiKey是否等于”"demo”,如果等于会将OpenAi的原始API地址"https://api.openai.com/v1"改为"http://langchain4j.dev/demo/openai/v1",这个地址是langchain4j专门为我们准备的一个体验地址,实际上这个地址相当于是"https://api.openai.com/1"的代理,我们请求代理时,代理会去调用真正的OpenAi接口,只不过代理会将自己的ApiKey传过去,从而拿到结果返回给我们。

所以,真正开发时,需要大家设置自己的apiKey或baseUrl,可以这么设置:

import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
import org.junit.jupiter.api.Test;public class langchain4jDemoApplicatonTest {@Testvoid test01(){ChatLanguageModel model = OpenAiChatModel.builder().baseUrl("http://langchain4j.dev/demo/openai/v1").apiKey("demo").modelName("gpt-4o-mini").build();String answer = model.chat("你好,你是谁?");System.out.println(answer);}}

3 接入deepseek

代码实现如下:

    @Testvoid test02(){ChatLanguageModel model = OpenAiChatModel.builder().baseUrl("https://api.deepseek.com").apiKey("sk-c78ed36820f14c438bb5be30ade5c1be").modelName("deepseek-chat").build();String answer = model.chat("你好,你是谁?");System.out.println(answer);}

结果如下:

4 文生图

5 文生语音


http://www.mrgr.cn/news/96008.html

相关文章:

  • Matlab Hessian矩阵计算(LoG算子)
  • kafka零拷贝技术的底层实现
  • 《Operating System Concepts》阅读笔记:p483-p488
  • Vala编成语言教程-构造函数和析构函数
  • 人员进出新视界:视觉分析算法的力量
  • 全书测试:《C++性能优化指南》
  • element与elementplus入门
  • pytorch与其他ai工具
  • 23种设计模式-外观(Facade)设计模式
  • 23种设计模式-抽象工厂(Abstract Factory)设计模式
  • 23种设计模式-中介者(Mediator)设计模式
  • 【视频】m3u8相关操作
  • 23种设计模式-责任链(Chain of Responsibility)设计模式
  • CI/CD(四) docker-compose 安装harbor
  • Kotlin 协程官方文档知识汇总(一)
  • sql结尾加刷题
  • 23种设计模式-享元(Flyweight)设计模式
  • 鸿蒙特效教程09-深入学习animateTo动画
  • 23种设计模式-原型(Prototype)设计模式
  • rabbitmq承接MES客户端服务器