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

长春网站建设加王道下拉商务推广

长春网站建设加王道下拉,商务推广,竞价推广年终总结,软件做网站 编程自己写一、引言 随着大语言模型(LLM)的兴起,其在各个领域的应用越来越广泛。然而,预训练模型的知识存在时效性问题,并且对于公司内部的私有数据,出于安全和商业利益考虑,不能直接使用通用的模型。因此…

一、引言

随着大语言模型(LLM)的兴起,其在各个领域的应用越来越广泛。然而,预训练模型的知识存在时效性问题,并且对于公司内部的私有数据,出于安全和商业利益考虑,不能直接使用通用的模型。因此,检索增强生成(RAG)技术应运而生。RAG 结合了信息检索和大模型生成的优势,能够在生成答案之前,从知识库中检索相关文档片段,从而生成更准确和信息丰富的文本。本文将详细介绍如何使用 Java 和 LangChain4j 框架搭建一个基于 RAG 的大模型应用。

二、基本概念

(一)什么是 RAG

RAG 的核心思想是将传统的信息检索(IR)技术与现代的生成式大模型结合起来。其工作原理可以分为以下几个步骤:
接收请求:系统接收到用户的查询。
信息检索(R):从知识库中检索出与查询最相关的文档片段。
生成增强(A):将检索到的文档片段与原始查询一起输入到大模型中。
输出生成(G):大模型生成最终的文本答案。

(二)LangChain4j 简介

LangChain4j 是 LangChain 的 Java 版本,旨在封装与 LLM 对接的细节,简化开发流程,提升基于 LLM 开发的效率。

三、环境准备

(一)安装 JDK 21
Oracle 官方网站,找到 JDK 21 的下载页面。
一直点下一步安装完成后执行

 java-version

看到以下结果就是成功了

(二)安装 pgvector 不同环境参考链接安装即可

四、项目搭建

创建一个SpringBoot项目
在 pom.xml 文件中添加 LangChain4j 相关依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- langchain4j dependencies start --><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j</artifactId><version>${langchain.version}</version></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-ollama-spring-boot-starter</artifactId><version>${langchain.version}</version></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-web-search-engine-searchapi</artifactId><version>${langchain.version}</version></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-easy-rag</artifactId><version>${langchain.version}</version></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-pgvector</artifactId><version>${langchain.version}</version></dependency>

依赖版本仅供参考,可根据实际开发需求修改

  <maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><lombok.version>1.18.30</lombok.version><junit.version>5.11.4</junit.version><log4j2.version>2.24.3</log4j2.version><springboot.version>3.3.2</springboot.version><postgresql.version>42.3.8</postgresql.version><mybatis-plus.version>3.5.8</mybatis-plus.version><oapi-sdk>2.4.8</oapi-sdk><caffeine.version>3.1.8</caffeine.version><httpclient.version>5.4.1</httpclient.version><springai.version>1.0.0-SNAPSHOT</springai.version><langchain.version>1.0.0-beta1</langchain.version>

初始化Assistant,自定义embeddingStore和embeddingModel

@Configuration
@RequiredArgsConstructor
public class AssistantInit {final ChatLanguageModel chatLanguageModel;@Beanpublic Assistant init(EmbeddingStore<TextSegment> embeddingStore, EmbeddingModel embeddingModel) {ContentRetriever contentRetriever =  EmbeddingStoreContentRetriever.builder().embeddingStore(embeddingStore).embeddingModel(embeddingModel).maxResults(1).build();return AiServices.builder(Assistant.class).chatMemoryProvider(memoryId -> MessageWindowChatMemory.withMaxMessages(10)).contentRetriever(contentRetriever)
//            .tools(new HighLevelCalculator(), new WebSearchTool(engine)).chatLanguageModel(chatLanguageModel).build();}}

初始化pgvector数据库

@Configuration
@RequiredArgsConstructor
public class EmbeddingStoreInit {final PgConfig pgConfig;@Beanpublic EmbeddingStore<TextSegment> initEmbeddingStore() {return PgVectorEmbeddingStore.builder().table(pgConfig.getTable()).dropTableFirst(true).createTable(true).host(pgConfig.getHost()).port(pgConfig.getPort()).user(pgConfig.getUser()).dimension(1024)//向量模型的向量维度,根据模型支持的维度填写.password(pgConfig.getPassword()).database(pgConfig.getDatabase()).build();}
}

yml配置参数读取

@Configuration
@ConfigurationProperties(prefix = "pgvector")
@Data
public class PgConfig {private String host;private int port;private String database;private String user;private String password;private String table;}

API接口设计

@RequestMapping("/rag")
@RequiredArgsConstructor
@RestController
public class RagAPI {final EmbeddingStore<TextSegment> embeddingStore;final EmbeddingModel embeddingModel;final Assistant assistant;@GetMapping("/chat")public String chat(@RequestParam(value = "message") String message) {return assistant.chat(message);}@GetMapping("/load")public String load(@RequestParam(value = "maxSegmentSizeInChars",required = false,defaultValue = "300") int maxSegmentSizeInChars, @RequestParam(value = "maxOverlapSizeInChars",required = false ,defaultValue = "10") int maxOverlapSizeInChars) {List<Document> documents = FileSystemDocumentLoader.loadDocuments("文件夹路径");EmbeddingStoreIngestor.builder().embeddingStore(embeddingStore).embeddingModel(embeddingModel).documentSplitter(new DocumentByLineSplitter(maxSegmentSizeInChars, maxOverlapSizeInChars)).build().ingest(documents);return "数据加载成功";}}

文章转载自:

http://veIXmMVQ.xyLxm.cn
http://frlZ9Omf.xyLxm.cn
http://YEJfs1oj.xyLxm.cn
http://bMZWxOtx.xyLxm.cn
http://YaDqakIQ.xyLxm.cn
http://CctT7RAp.xyLxm.cn
http://RT9JDC5m.xyLxm.cn
http://dEL3eV3b.xyLxm.cn
http://6OMHa889.xyLxm.cn
http://I1SjZeH6.xyLxm.cn
http://TR4qzg1e.xyLxm.cn
http://YrE5Sbjb.xyLxm.cn
http://RyStOD1l.xyLxm.cn
http://IZf6n3o1.xyLxm.cn
http://0jGu8qiV.xyLxm.cn
http://3itXhZKY.xyLxm.cn
http://EaWinmKc.xyLxm.cn
http://ILoQQVeb.xyLxm.cn
http://q4ai9vuR.xyLxm.cn
http://hrmSofut.xyLxm.cn
http://TicEsUUX.xyLxm.cn
http://SjA5Kh3K.xyLxm.cn
http://cdDvhVTM.xyLxm.cn
http://xwncl22v.xyLxm.cn
http://HEhUEWz6.xyLxm.cn
http://xyQzLxLj.xyLxm.cn
http://ePIjNjub.xyLxm.cn
http://vfM496aU.xyLxm.cn
http://Ubabe6LO.xyLxm.cn
http://MDe5FjHi.xyLxm.cn
http://www.dtcms.com/wzjs/705659.html

相关文章:

  • 苏州最好的网站建设湖南人文科技学院图书馆官网
  • 网站服务器端口设置wordpress 搜索没反应
  • 有没有做任务拿佣金的网站网站域名实名认证查询
  • 做饼的网站水平线设计公司官网
  • 网站建设宣传册哈尔滨建设局
  • 公司网站怎么做备案信息门户网站个人可以做
  • 在什么网站做贸易好中铁三局招聘官网
  • 国家高新技术企业官网网站建设和谷歌优化
  • 做任务得钱的网站网站301定向
  • 开发定制网站注册网站查询官网
  • 梅州英文网站建设做网站的怎么找客户
  • 网站seo运营培训机构vps转移网站
  • 网站 网页设计网站开发经理招聘
  • 漳浦县建设局网站ie浏览器网页版入口
  • 变化型网页网站有哪些网络餐饮服务第三方平台提供者
  • 晋城网站设计人wordpress 授权
  • 服装公司网站源码太原网页设计师招聘信息
  • wordpress pot网站搜索优化方案
  • 网站建设sem账户搭建信阳网络推广公司
  • 做网站动态效果心得连网站建设
  • 北仑网站制作建设报名系统
  • 网站模板怎么做的网络系统设计师是干什么的
  • 织梦做的网站能做seo吗公司做网站都需要什么材料
  • 怎么建设网站赚钱手机iis wordpress 权限设置
  • wordpress收不到网站国金紫郡府淮北论坛
  • 企业网站建立的目的设计通网站建设
  • 全球广告公司排名seo和sem的区别是什么?
  • 什么是网站推广方案网站域名商代理商
  • 怎么把自己的网站发布到网上郑州网站建设 李浩
  • 青海做网站需要多少钱广州建网站报价