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

建筑课程网站百度官网app

建筑课程网站,百度官网app,洛阳网站建设,西安专业网站开发公司LangChain4j 是一款专为 Java 开发者设计的框架,旨在简化与 LLM 的集成过程,使开发者能够更加专注于业务逻辑而非底层的技术细节。LangChain4j 是 LangChain 的一个 Java 封装器,它将 LangChain 应用于 Java 环境中,利用 Java 强大…

LangChain4j 是一款专为 Java 开发者设计的框架,旨在简化与 LLM 的集成过程,使开发者能够更加专注于业务逻辑而非底层的技术细节。LangChain4j 是 LangChain 的一个 Java 封装器,它将 LangChain 应用于 Java 环境中,利用 Java 强大的功能和丰富的库来处理数据,并提供了与多种流行的大语言模型无缝对接的能力。通过 LangChain4j,Java 开发者可以轻松地将最先进的 AI 技术融入到他们的应用程序中,无论是构建聊天机器人、还是智能客服系统,都能得心应手。

关于如何集成 AI 大模型到现有的 Java 应用程序中,LangChain4j 提供了两种主要的方法:一种是直接调用每种大模型提供的 API 接口,这种方式需要开发者熟悉不同模型的具体接口规范,并根据需求编写相应的代码来实现交互;另一种则是通过 Spring Boot 的自动装配机制,利用 LangChain4j 提供的 starter 依赖,自动化配置所需的组件和服务,极大地减少了手动设置的工作量 。在这篇文章中,我们将重点介绍 LangChain4j对接AI大模型的两种方式。

一、前提条件

  • JDK为17以上版本,本人使用的jdk21版本;
  • SpringBoot版本为3.x以上,本项目使用的是SpringBoot 3.4.0版本;
  • 本文采用了阿里巴巴的Qwen大模型进行实验与验证,但您同样可以选择使用DeepSeek大模型作为替代方案。若选用阿里巴巴的AI服务,则需首先在阿里云平台上开通相应的大型模型服务,并获取所需的API密钥,以便在后续代码中调用。具体的开通与配置步骤,请参阅阿里云大模型服务平台“百炼”的相关文档和指南如何获取API Key_大模型服务平台百炼(Model Studio)-阿里云帮助中心。这样可以确保您能够顺利地集成和使用这些先进的AI资源。

二、方式一:手动编码方式对接大模型

1、添加maven依赖

本示例调用阿里巴巴大模型服务,所以引入langchain4j-community-dashscope-spring-boot-starter

<?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><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.0</version></parent><groupId>com.yuncheng</groupId><artifactId>langchain4j-rag-demo</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><langchain4j.version>1.0.0-beta1</langchain4j.version></properties><dependencies><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId><version>${langchain4j.version}</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId></exclusion></exclusions></dependency></dependencies>
</project>

2、手动编码调用大模型服务

手动编码创建ChatLanguageModel对象,实现跟大模型对话。由于本示例使用的是阿里云Qwen大模型,所以使用QwenChatModel类构建,如果你使用的是其他厂商的大模型,那么需要调用对应的SDK类进行创建。比如:百度千帆大模型使用QianfanChatModel、本地部署的大模型使用OllamaChatModel、OpenAI标准大模型使用OpenAiChatModel等。

import dev.langchain4j.community.model.dashscope.QwenChatModel;
import dev.langchain4j.model.chat.ChatLanguageModel;
public class HelloWorld {public static void main(String[] args) {ChatLanguageModel model = QwenChatModel.builder().apiKey("sk-4d6e6db446014411ad92c0e8fa143964").modelName("qwen-plus")//以下的参数,根据具体业务需求设置//.temperature(0.5F)//.topK(2)//.topP(0.7).build();String answer = model.chat("请给我讲一个笑话");System.out.println(answer);}
}

三、方式二:spring自动装配对接大模型

1、添加maven依赖

本示例调用阿里巴巴大模型服务,所以引入langchain4j-community-dashscope-spring-boot-starter,本示例是一个springboot工程,还需要引入spring-boot-starter-webflux。

<?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><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.0</version></parent><groupId>com.yuncheng</groupId><artifactId>langchain4j-rag-demo</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><langchain4j.version>1.0.0-beta1</langchain4j.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId><version>${langchain4j.version}</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId></exclusion></exclusions></dependency></dependencies>
</project>

2、调用大模型服务

2.1、配置yml文件

server:port: 8099langchain4j:community:dashscope:chat-model:model-name: qwen-plusapi-key: sk-4d6e6db446014411ad92c0e8fa143964
logging:level:org.springframework.boot.autoconfigure: DEBUG

注意:如果你不知道yml文件里的装配参数怎么写,可以把springboot自动装配参数日志打开,查看具体有哪些参数可配置使用。在yml文件配置org.springframework.boot.autoconfigure: DEBUG即可。

2.1、springboot调用大模型服务

由于springboot自动装配过程中,已经生成了ChatLanguageModel对象,所以无需手动构建了,在需要跟大模型对话的地方直接使用ChatLanguageModel即可。

import dev.langchain4j.model.chat.ChatLanguageModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ChatController {ChatLanguageModel chatLanguageModel;ChatController(ChatLanguageModel chatLanguageModel) {this.chatLanguageModel = chatLanguageModel;}@GetMapping("/hello")public String hello(@RequestParam(value = "message", defaultValue = "请给我讲一个笑话") String message) {return chatLanguageModel.chat(message);}
}

再创建一个springboot启动类即可:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;@SpringBootApplication
public class Langchain4jApplication {private static final Logger log = LoggerFactory.getLogger(Langchain4jApplication.class);public static void main(String[] args) {ConfigurableApplicationContext application = SpringApplication.run(Langchain4jApplication.class, args);Environment env = application.getEnvironment();String port = env.getProperty("server.port");log.info("Application启动成功,服务端口为:" + port);}
}

启动Langchain4jApplication后,浏览器里直接输入http://localhost:8099/hello,测试调用大模型效果。

四、关于ChatLanguageModel和StreamingChatLanguageModel区别

我们在验证langchain4j框架的过程中,发现有两类对话模型的接口,分别是ChatLanguageModel和StreamingChatLanguageModel,这跟Spring AI框架的设计思想是有区别的,在SpringAI中,是通过一个统一的对象ChatClient

进行参数化构建的。那么,langchain4j中为什么会区分ChatLanguageModel和StreamingChatLanguageModel呢?

1、ChatLanguageModel 和 StreamingChatLanguageModel 都是 LangChain4j 库中用于与大语言模型(LLM)交互的接口,但它们在实现和使用场景上有显著的区别。

2、ChatLanguageModel 是一个同步接口,它接受一个或多个 ChatMessage 对象作为输入,并返回一个包含 AI 响应的 AiMessage 对象。这意味着整个响应是在一次调用中生成并返回的。这种方法适用于那些不需要实时反馈的应用场景,或者当您希望一次性接收完整响应时非常有用。

3、StreamingChatLanguageModel 提供了流式处理的能力。它允许逐个 token 地接收来自 LLM 的响应,这使得它可以像打字机一样逐步展示文本给用户,从而提供更好的用户体验。这对于聊天应用或其他需要即时反馈的场景尤为重要。

4、设计原则:保持接口职责单一是一个良好的设计实践。每个接口专注于一种特定的行为模式,有助于代码的可维护性和扩展性。例如,如果您需要修改流式处理逻辑,只需关注 StreamingChatLanguageModel 相关的部分,而不影响同步处理逻辑。

http://www.dtcms.com/wzjs/217430.html

相关文章:

  • 如何设计一个网页首页简易图片厦门seo蜘蛛屯
  • 驻马店百度seo杭州seo网络公司
  • 郑州大搜索网站网站seo推广哪家值得信赖
  • ui网站界面设计模板今日山东新闻头条
  • 承包工程在哪个网站长治seo
  • 做时间轴的在线网站怎么自己创建一个网页
  • asp.net做的网站模板百度提交网站收录查询
  • 点菜网站模板sem竞价推广代运营收费
  • 中小企业网站建设与管理csdn淘宝店铺怎么推广
  • 中国建设网app下载网页怎么优化
  • 做食物网站网络推广公司主要做什么
  • 学做面包的网站广告营销案例100例
  • jsp做的网站后台信息宁波谷歌优化
  • 新网站如何做网站优化线上培训
  • 南京网站设计制作手机最新产品新闻
  • 一个网站开发的流程图重庆seo外包平台
  • 建设网站东莞公司广告网站策划方案
  • wordpress搜索根据范围手机优化专家
  • 金山区做网站公司网页搜索快捷键
  • wordpress主题安装目录石家庄seo代理商
  • 做一个简单网站多少钱福州seo顾问
  • 公司网站续费seo排名技术教程
  • 网站做推广怎么收费长沙电商优化
  • 网站建设哈尔滨网站优化4百度收录时间
  • 新闻类网站模板中国网站排名网
  • 能不能模仿百度一样做搜索引擎网站牛奶软文广告营销
  • 合肥网站关键词推广seo网络营销的技术
  • 网站建设管理专业介绍百度推广自己怎么做
  • 我的网站模板下载不了seo优化网站
  • 网站能自己做吗桂林seo排名