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

建筑网站登陆页面东莞企业网站排名

建筑网站登陆页面,东莞企业网站排名,台州集团网站建设,甘肃省网站建设咨询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/519108.html

相关文章:

  • o2o网站建设最好公司网站提交入口
  • 个人做短视频网站成都百度
  • 2014苏州建设银行招聘网站搜索广告是什么意思
  • 网站建设视频教程网站sem账户托管
  • wordpress做视频网站吗公司网站制作公司
  • 买到域名怎么做网站上海怎么做seo推广
  • 网站建设公司案例百度官方免费下载安装
  • 摄影工作室网页设计汕头网站优化
  • 徐州网站开发公司电话安卓手机优化大师官方下载
  • 移动互联网开发招人seo网络推广外包公司
  • 建立健康的人际关系玉林网站seo
  • 江西城乡住房建设网站电脑上突然出现windows优化大师
  • 做网站公众号要多少钱头条号权重查询
  • 网站设计模板html怎么做营销推广方案
  • 做网站时可以切换语言的直播发布会
  • 上海b2c网站全网络品牌推广
  • 浏览器网页版seo优化推广教程
  • 徐州vi设计公司长沙seo服务哪个公司好
  • 电视能效一级二级三级什么区别搜索引擎优化seo公司
  • 企业网站如何上存网络公司推广方案
  • 网站服务器建立seo 首页
  • 网站建设 百度贴吧今日重大新闻头条
  • 做网站没有高清图片怎么办外贸seo站
  • 创新的响应式网站建设视频营销
  • 珠海专业机械网站建设做个小程序需要花多少钱
  • 网站建设网站建设的网络公司深圳媒体网络推广有哪些
  • 小白怎样建设公司网站无锡百度正规公司
  • wordpress 主机 设置ftpseo内部优化具体做什么
  • 网站开发培训深圳惠州seo收费
  • 乌克兰设计网站建设磁力搜索神器