- RAG架构中的“智慧引擎”:Retrieval模块的深度解析与实战代码
记得晚安静静
java开发语言RAG架构
在当今人工智能技术飞速发展的浪潮中,RAG(Retrieval-AugmentedGeneration)架构正以其独特的魅力,成为连接语言模型与知识世界的桥梁。而在这座桥梁的基石之上,Retrieval模块作为“智慧引擎”,正扮演着不可或缺的角色。今天,就让我们一同深入探索RAG架构中Retrieval模块的奥秘,揭开它如何为生成模块提供精准上下文支持的神秘面纱。一、Retrieval模块:RAG
- 【Leetcode 30天Pandas挑战】学习记录 上
cwtnice
#Pandasleetcodepandas学习
题目列表:条件筛选:595.BigCountries1757.RecyclableandLowFatProducts183.CustomersWhoNeverOrder1148.ArticleViewsI字符串函数:1683.InvalidTweets1873.CalculateSpecialBonus(好题)1667.FixNamesinaTable(好题)1517.FindUsersWithV
- 检索增强生成RAG与MxRAG
人工智能自然语言处理华为
一、引言在自然语言处理领域,RAG(Retrieval-AugmentedGeneration)技术正逐渐引起广泛关注。它结合了信息检索和语言生成的优势,为解决各种自然语言处理任务提供了新A。本文将详细介绍RAG的流程及技术分析,帮助读者更好地理解这一创新技术,并介绍在昇腾的解决方案,帮助你快速高效实现部署。二、RAG技术概述RAG是一种将检索与生成相结合的技术,旨在利用外部知识源来增强语言模型的
- 浅谈大模型RAG架构落地的十大挑战
冻感糕人~
人工智能ai大模型语言大模型人工智能大模型PAGAGI计算机技术
0、RAG简介RAG(RetrievalAugmentedGeneration)结合知识库检索与大模型回答,确保信息可靠且精准,同时节省了微调成本。RAG流程简要概括为3步,对应其名:检索:借助Embedding,将问题转化为向量,比对知识库,选取最相关的TopK知识。1、增强:结合检索出的上下文和问题,构造Prompt。2、生成:将Prompt输入大模型,产出答案。3、从工程视角划分,RAG实施
- 科普:到底啥是RAG
二流的吃货
学习spring人工智能java后端
一、RAG是什么1.1RAG的定义RAG(Retrieval-AugmentedGeneration,检索增强生成)是一种创新的自然语言处理技术,它巧妙地融合了检索和生成两种方法,旨在为各种语言相关任务提供更为精准且富有逻辑性的解决方案。简单来说,RAG先通过检索获取与任务相关的信息,再利用这些信息来指导文本的生成过程,从而让生成结果更贴合实际需求。它将检索模型(设计用于搜索大型数据集或知识库)和
- php查询大量sql语句时内存溢出的解决方法
春哥一号
phpsql数据库
今天刚发现一个之前没有见过的错误,mysql内存不足。研究了好久找出了解决办法,分享给大家。问题:使用php查询mysql大数据量的时候,程序尚未执行完毕,跳出警告:Fatalerror:Allowedmemorysizeof100663296bytesexhausted(triedtoallocate103bytes)错误提示:php所分配到的100M内存被占用完毕。最简单的解决办法是:在执行文
- OpenBMC:BmcWeb 生效路由2 Trie字典树添加节点
风静如云
OpenBMClinux
OpenBMC:BmcWeb生效路由2Trie字典树-CSDN博客介绍了字典树,及其呈现的方式那么是如何向字典树添加节点的呢?voidadd(std::string_viewurlIn,unsignedruleIndex){size_tidx=0;std::string_viewurl=urlIn;while(!url.empty()){charc=url[0];if(c=='","",""}){
- 基于Python的自然语言处理系列(60):使用 LangChain 构建 Multi-Vector Retriever 进行文档检索
会飞的Anthony
人工智能信息系统自然语言处理人工智能深度学习机器学习
在NLP和AI领域,基于嵌入(Embeddings)进行文档检索已成为一种高效的解决方案。本文介绍如何使用LangChain构建Multi-VectorRetriever,实现对长文档的分块索引和高效检索。1.环境准备首先,我们需要安装相关依赖库。pipinstalllangchainchromadbtorchtransformers2.加载文档并进行预处理我们先使用TextLoader读取多个文
- 【前端】封装带重试机制的request,传入一个promise,成功直接返回,失败进行重试
Zacks_xdc
前端typescriptjavascript
项目场景:前端处理请求大模型API时,有一些模型服务器在海外或者使用量高的情况下会出现“服务器繁忙,请稍后重试”的情况,导致在客户使用过程中影响生成效果。解决方案:封装一个函数,接受一个promise,成功直接返回,失败可以重试,支持传入重试次数和重试的间隔时间/***支持错误重试的请求函数*@paramrequestFactory生成请求的工厂函数*@parammaxRetries最大重试次数*
- P1481 魔族密码
好好学习^按时吃饭
算法
题目来自洛谷网站:字典树trie思路:题目要求我们找到最长的词链,题目告诉我们:如果在一个由一个词或多个词组成的表中,除了最后一个以外,每个单词都被其后的一个单词所包含,即前一个单词是后一个单词的前缀,则称词表为一个词链。①将输入的字符串存入字典树中,在存入的过程中,我们用dp数组来记录以这个字符串末尾结尾的字符串链接了几个字符串。②也就是说,题目的最长词链一定是树上最长的支,当我们找完了这个字符
- CondaHTTPError: HTTP 000 CONNECTION FAILED
ChapterQ
开发工具anaconda
问题:最近使用anaconda创建环境时,总是遇到以下错误(原镜像源地址为清华源):condacreate-ncodepython=3.6Solvingenvironment:failedCondaHTTPError:HTTP000CONNECTIONFAILEDforurlElapsed:-AnHTTPerroroccurredwhentryingtoretrievethisURL.HTTPer
- LangChain开发(九)基于Rag实现文档问答
丶只有影子
#LangChainlangchainai
文章目录关联阅读Rag是什么?Rag工作流索引(Indexing)检索和生成(Retrievalandgeneration)文档问答实现流程代码实现源码地址参考资料关联阅读LangChain开发(一)LangChain介绍和对话demoLangChain开发(二)LangChain提示词模板Template使用LangChain开发(三)工作流编排(LCEL)LangChain开发(四)服务监控(
- 打开项目报错:If the artifact you are trying to retrieve can be found in the repository but without metadat
木子庆五
gradlemavenjava
Iftheartifactyouaretryingtoretrievecanbefoundintherepositorybutwithoutmetadatain'M更换gradle和gradle插件后,编译报错,在项目的gradle增加仓库//Top-levelbuildfilewhereyoucanaddconfigurationoptionscommontoallsub-projects/mo
- 【大模型技术】RAG系统的难题和解决方案(一)
大数据追光猿
人工智能python学习方法语言模型prompt
RAG(Retrieval-AugmentedGeneration)系统是一种结合了检索(Retrieval)和生成(Generation)能力的混合模型架构,广泛应用于问答系统、对话系统、知识密集型任务等领域。然而,尽管RAG系统在理论上具有强大的优势,但在实际应用中仍面临许多挑战。以下是RAG系统的难题及其解决方案之一:一、数据质量与覆盖率不足问题:检索模块依赖于外部知识库或文档集合,如果知识
- 【大模型技术】RAG系统的难题和解决方案(二)
大数据追光猿
promptmicrosoft人工智能数据库深度学习
在RAG(Retrieval-AugmentedGeneration)系统中,召回排序环节的关键文档被遗漏是一个常见问题。这种情况通常发生在检索阶段的召回结果未能将正确的文档排在头部,导致生成模型无法基于正确信息生成答案。以下是针对这一问题的详细分析和解决方案:1.问题原因分析a.召回质量不足检索模块可能未能有效捕捉用户问题与知识库文档之间的语义匹配关系。使用的检索方法(如基于关键词匹配或简单的向
- 【大模型知识点】检索增强生成(Retrieval Augmented Generation,RAG)简要介绍
自信的小螺丝钉
AI知识RAG重排序大模型召回检索
RAG介绍1.RAG是什么?2.RAG的应用3.为什么需要RAGforLLM?4.RAG的一般流程5.检索优化6.重排序1.RAG是什么?Retrieval-Augmented-Generation:检索-增强-生成一句话总结:通过引入外部数据库或知识库中的信息来增强LLM生成内容2.RAG的应用问答系统:RAG从外部知识库中检索相关信息,生成更加准确可靠的答案。如医疗、法律领域的专业问答系统智能
- python嗅探dhcp服务,使用python scapy发送DHCP Discover
weixin_39987985
python嗅探dhcp服务
Iamnewtopythonandlearningsomenetworkprogramming,IwishtosendanDHCPPacketthroughmytapinterfacetomyDHCPserverandexpectingsomeresponsefromit.Itriedwithseveralpacketbuildingtechniquessuchastructsandctypesa
- centos yum报错:Could not resolve host: mirrorlist.centos.org; 未知的错误
flying_fish79
Linuxcentoslinux运维
1报错信息Couldnotretrievemirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stockerrorwas14:curl#6-“Couldnotresolvehost:mirrorlist.centos.org;未知的错误”Cannotfindavalidbaseurlforrepo:
- kibana第一次连接elasticsearch出现问题1:Unable to retrieve version information from Elasticsearch nodes.
皮卡兔子屋
elasticsearchdocker
问题描述elasticsearch容器正常运行,在启动kibana容器后打开对应连接,出现错误:kibanaserverisnotreadyyet.通过docker命令查看kibana日志:dockerlogskibana显示错误为:[ERROR][elasticsearch-service]UnabletoretrieveversioninformationfromElasticsearchno
- ZTE MU5001 5G Mobile WiFi Router Review
小2不语
5Gandroid
ZTEMU5001isanew5GmobileWiFiHotspotwithWiFi6whichiswidelyavailableformanynetworkprovidersinmanycountries.IfyouhadusedtheZTE4GMobileWiFiRoutersuchasZTEMF970orZTEMF980,youwillfindthenew5GpocketWiFirouter
- 聊聊langchain4j的Naive RAG
hello_ejb3
人工智能
序本文主要研究一下langchain4j的NaiveRAG示例publicclassNaive_RAG_Example{/***ThisexampledemonstrateshowtoimplementanaiveRetrieval-AugmentedGeneration(RAG)application.*By"naive",wemeanthatwewon'tuseanyadvancedRAGte
- 因为mysql 8新的认证插件导致主从复制的IO线程失败
库海无涯
mysql
1、错误信息Last_IO_Error:errorconnectingtomaster'repuser@192.168.5.130:3306'-retry-time:60retries:1message:Authenticationplugin'caching_sha2_password'reportederror:Authenticationrequiressecureconnection.2、
- 大模型Agent 和 RAG 的关系
大数据追光猿
大模型语言模型人工智能学习方法transformer
Agent和RAG(Retrieval-AugmentedGeneration)是两种在自然语言处理(NLP)和人工智能领域中广泛使用的技术,它们在功能、目标和实现方式上既有区别又有联系。以下是它们的关系及其协同作用的详细分析。1.Agent和RAG的定义(1)Agent定义:Agent是一种智能体,能够感知环境并采取行动以完成特定任务。在NLP领域,Agent通常指一个基于大语言模型(LLM)的
- 解决Centos使用yum命令报错“Cannot find a valid baseurl for repo: base/7/x86_64”问题
牛奶咖啡13
运维/测试centoslinux解决Centos仓库源失效InfluxDB作服务失败问题[Errno256]HTTPSError404
一、问题描述我们在使用Centos7.9使用【sudoyuminstallinfluxdb2】命令安装influxDB数据库的时候提示“LoadingmirrorspeedsfromcachedhostfileCouldnotretrievemirrorlisthttp://mirrorlist.centos.org/release=7&arch=x86_64&repo=os&infra=stoc
- 如何使用多向量检索文档
scaFHIO
服务器linux运维python
在现代信息检索系统中,使用多个向量来检索单个文档是一个非常有用的技术。这种方法在多个应用场景中都有其优势,比如可以将文档分割为多个块,对这些块分别进行嵌入,从而提高语义检索的准确性。LangChain提供了一个baseMultiVectorRetriever类,为我们简化了这一过程。本文将详细讲解如何生成这些向量,并使用MultiVectorRetriever进行检索。1.技术背景介绍在信息检索中
- 使用Python和LangChain构建检索增强生成(RAG)应用的详细指南
m0_57781768
pythonlangchain搜索引擎
使用Python和LangChain构建检索增强生成(RAG)应用的详细指南引言在人工智能和自然语言处理领域,利用大语言模型(LLM)构建复杂的问答(Q&A)系统是一个重要应用。检索增强生成(RetrievalAugmentedGeneration,RAG)是一种技术,通过将模型知识与额外数据结合来增强LLM的能力,使其能够回答关于特定源信息的问题。这些应用不仅限于公开数据,还可以处理私有数据和模
- centos环境安装swoole后,php7无法加载swoole.so时出现nable to load dynamic library 'swoole.so'
yyfx2010
swoolephp7swoolephp7.2
先贴上错误提示[root@bogonphp.d]#php-vPHPWarning:PHPStartup:Unabletoloaddynamiclibrary'swoole.so'(tried:/usr/lib64/php/modules/swoole.so(/usr/lib64/php/modules/swoole.so:undefinedsymbol:php_sockets_le_socket)
- RAG 企业级应用落地框架细节差异对比
一顿码
架构人工智能python数据挖掘知识图谱语言模型
—1—什么是RAG?RAG检索增强生成本质上来讲,就三件事情:第一、Indexing索引。即如何更有效地存储知识。第二、Retrieval检索。即在庞大的知识库中,如何筛选出少量的有益知识,供大模型参考。第三、Generation生成。即如何将用户的提问与检索到的知识相结合,使得大模型能够生成有价值的回答。这三个步骤表面上看似乎并不复杂,然而在RAG从构建到实际部署的整个流程中,包含了众多精细且复
- C++并发与实战(2):trie.cpp实现
SoloRejudger
C++并发c++java开发语言
2.trie.cpp实现注意到trie.h给了我们三个接口autoGet(std::string_viewkey)const->constT*;templateautoPut(std::string_viewkey,Tvalue)const->Trie;autoRemove(std::string_viewkey)const->Trie;我们就要在trie.cpp下面实现这三个接口实现前的注意点由
- centOS7使用yum安装报错的解决办法
小泊客
lLinux学习开发语言linux运维ssh网络运维开发
一、错误提示信息:[root@localhost/]#sudoyuminstallbash-completionCouldnotretrievemirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stockerrorwas14:curl#7-"Failedtoconnectto2a05:d012:8
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include