首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是检索增强生成 (RAG)?简单易懂,一文说清其组成和作用原理

与仅基于预先训练的知识生成响应的传统 LLM 不同,RAG 从外部数据库或文档中检索相关信息,并使用这些信息生成更准确、更符合上下文的响应。...RAG 流程涉及几个关键步骤:创建外部数据外部数据存在于 LLM 原始训练数据之外,是从各种来源(例如 API、数据库或文档存储库)收集的。...例如,在智能聊天机器人应用中,如果员工询问他们的年假,系统将检索政策文档和过去的休假记录来回答问题。增强 LLM 提示检索到的数据被添加到用户输入中,从而创建增强提示。...生成式人工智能通常是指基于预先存在的数据生成内容而无需检索其他信息的人工智能模型。...另一方面,RAG 将生成式 AI 与信息检索相结合,使其能够生成由来自外部来源的实时数据提供的信息内容,从而获得更准确、更相关的响应。

95610

PHP - 语言底层运行及生命周期

2、APACHE2HANDLERPHP作为Apache模块,Apache服务器在系统启动后,预先生成多个进程副本驻留在内存中,一旦有请求出 现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了...3、apache模块的DLL该运行模式是我们以前在windows环境下使用apache服务器经常使用的,而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。...后来Swoole中为了追求性能,在启动服务的时候使用常驻内存的方式预先加载在内存里,在脚本中千万不要写配置文件中,因为在Cli模式下第一次的执行没有被释放,第二次的又来执行,会造成服务内存问题。...CGI即通用网关接口(Common Gateway Interface),它是动态语言的产物,是负责Web服务与PHP通信的接口,CGI方式在遇到连接请求(用户 请求)先要创建cgi的子进程,激活一个CGI...缺点:所有worker都在工作,新的请求到来需要等待创建worker进程,最长等待1s(内部存在一个1s的定时器,去查看,创建进程),频繁启停进程消耗cpu,请求数稳定,不需要频繁销毁static启动固定大小数量的

66460
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    主机安全——洋葱Webshell检测实践与思考

    污点分析可以抽象成一个三元组的形式, sources:污染源,表示所有用户可控的输入点。...(1)危险汇聚点 在对样本解析生成语法树之后,第一步便是要寻找万恶之源-sinks,检测引擎汇集了几乎所有可能存在的风险点,一共可以分为代码执行、文件操作、动态操作、命令执行、外部组件、回调等。...污点标记是与参数赋值相结合的,赋值的参数在运行阶段便被打上标记。...比如在动态调用检测中,单纯的语义只能分析出存在动态调用函数,并不清楚具体是哪个函数调用,但直接告警很明显是不合理的,因此必须要动态的模拟执行配合才能确切的判断是否为恶意文件,其次在检测代码执行时,语义解析由于不清楚变量中的内容导致无法解析具体执行的代码内容...动静结合可以有效的解决代码中的分支问题,抽象语法树解析可以正确的识别分支逻辑,并把可能存在风险的分支内容扔给动态去处理。

    1.1K10

    区分wsgi、uWSGI、uwsgi、php-fpm、CGI、FastCGI

    CGI CGI,(Common Gateway Interface)通用网关接口,是一个协议,是外部应用程序(CGI程序)与WEB服务器之间的接口标准,该协议定义了Web服务器调用外部应用程序的时候需要输入的参数和给...引入 CGI 以便客户端请求能够触发 Web 服务器运行另一个外部程序,客户端所输入的数据也会传给这个外部程序,该程序运行结束后会将生成的 HTML 和其他数据通过 Web 服务器再返回给客户端(即动态请求...利用 CGI 可以针对用户请求动态返回给客户端各种各样动态变化的信息 工作原理 Web服务器与CGI程序的交互 WEB服务器将根据CGI程序的类型决定数据向CGI程序的传送方式,一般是通过标准输入/输出流和环境变量来与...CONTENT_LENGTH 如果服务器与CGI程序信息的传递方式是POST,这个环境变量即使从标准输入STDIN中可以读到的有效数据的字节数。这个环境变量在读取所输入的数据时必须使用。...进程进行处理,worker 进程主要负责动态执行 PHP 代码,处理完成后,将处理结果返回给 Web 服务器,再由 Web 服务器将结果发送给客户端。

    81730

    Retrieval Augmented Generation (RAG) 研究报告

    信息检索组件利用用户输入从外部数据源(例如网页、知识库和数据库)中检索相关信息。 检索到的相关信息与用户查询一起被输入到 LLM 中。 LLM 利用新的知识和其自身的训练数据生成更完善的响应。...: 基于查询的 RAG: LLM 根据输入生成查询,然后使用该查询从外部知识源检索相关信息。...检索到的信息与 LLM 生成的输出相结合,生成最终响应 。这种方法适用于处理事实性或基于知识的查询。   基于潜在表示的 RAG: 利用输入和外部知识源的潜在表示来确定检索信息的的相关性。...代理 RAG: 将 RAG 与代理行为相结合,允许更复杂的多步骤问题解决 。适用于需要规划、决策和使用外部工具的复杂任务。  ...RAGatouille: RAGatouille 是一个轻量级框架,通过将预训练语言模型的功能与高效的检索方法相结合来简化 RAG 管道的创建,从而生成高度相关且连贯的内容。

    28910

    八年phper的高级工程师面试之路八年phper的高级工程师面试之路

    产生泄漏的原因是闭包维持函数内局部变量,不能被释放,尤其是使用闭包并存在外部引用还setInterval的时候危害很大。 备注:我觉得这块回答并不好,因为肯定不是闭包的原因。...当闭包存在外部引用时,js会维持闭包自身以及所在函数作用域链的内存状态。 备注:这个是我自己瞎说的。...进来抽奖的用户使用memcahe原子加锁,实现抽奖次数自增,当抽奖次数到达3时,返回不中奖。 再问:预先插入需要很多资源,如果奖品数量上了1亿怎么办?...流程如下: begin 查询用户抽奖次数,加排他锁 对用户抽奖次数的更新/插入 锁行查询发放情况 获得抽奖结果(某些奖品发完之后,动态变更概率) 更新发放表 插入中奖记录 commit 再问:遇到脏读怎么办...16、一个网页从输入地址回车,到完整展示网页内容这段时间里,做了哪些工作,越详细越好。

    2K20

    Kubernetes中的Volume介绍

    与 emptyDir 类型会在删除 Pod 时被清除不同,EBS 卷的的内容会保留下来,仅仅是被卸载。这意味着 EBS 卷可以预先填充数据,并且可以在数据包之间“切换”数据。...与删除 Pod 时删除的 emptyDir 不同,PD 的内容被保留,只是卸载了卷。这意味着 PD 可以预先填充数据,并且数据可以在 Pod 之间“切换”。...DirectoryOrCreate 如果在给定的路径上没有任何东西存在,那么将根据需要在那里创建一个空目录,权限设置为 0755,与 Kubelet 具有相同的组和所有权。...Directory 给定的路径下必须存在目录 FileOrCreate 如果在给定的路径上没有任何东西存在,那么会根据需要创建一个空文件,权限设置为 0644,与 Kubelet 具有相同的组和所有权。...portworxVolume 可以通过 Kubernetes 动态创建,也可以在 Kubernetes pod 中预先设置和引用。

    2.2K20

    关于CGI和FastCGI的理解

    整个过程如下图: 对于像index.php这类的动态页面请求,Web Server根据配置文件知道这个不是静态文件,则会调用PHP 解析器进行处理然后将返回的数据转发给客户端(浏览器)。...(PHP-CGI 和 PHP-FPM就是实现FastCGI的程序) 3)CGI程序和FastCGI程序的区别: 关于CGI程序: CGI使外部程序与Web服务器之间交互成为可能。...关于FastCGI程序: 与CGI程序为每个请求创建一个新的进程不同,FastCGI使用持续的进程(master)来处理一连串的请求。这些进程由FastCGI服务器管理,而不是web服务器。...的命令行运行模式 例如:在linux下经常使用 “php -m”查找PHP安装了那些扩展就是PHP命令行运行模式 其他的可以输入php -h查看下 4.2.CGI模式 比较经典的使用方法,使用CGI程序将浏览器...服务器绑定在了一起,当php模块出现问题可能会导致Apache一同挂掉 3)另外每个Apache进程都需要加载mod_php而不论这个请求是处理静态内容还是动态内容,这样导致浪费内存,效率下降, 4)php.ini

    2K40

    八年phper的高级工程师面试之路八年phper的高级工程师面试之路

    产生泄漏的原因是闭包维持函数内局部变量,不能被释放,尤其是使用闭包并存在外部引用还setInterval的时候危害很大。 备注:我觉得这块回答并不好,因为肯定不是闭包的原因。...当闭包存在外部引用时,js会维持闭包自身以及所在函数作用域链的内存状态。 备注:这个是我自己瞎说的。...进来抽奖的用户使用memcahe原子加锁,实现抽奖次数自增,当抽奖次数到达3时,返回不中奖。 再问:预先插入需要很多资源,如果奖品数量上了1亿怎么办?...流程如下: begin 查询用户抽奖次数,加排他锁 对用户抽奖次数的更新/插入 锁行查询发放情况 获得抽奖结果(某些奖品发完之后,动态变更概率) 更新发放表 插入中奖记录 commit 再问:遇到脏读怎么办...16、一个网页从输入地址回车,到完整展示网页内容这段时间里,做了哪些工作,越详细越好。

    98600

    如何在Ubuntu 14.04上使用OpenLiteSpeed安装WordPress

    介绍 WordPress是目前世界上最受欢迎的内容管理系统(CMS)。它允许您在数据库后端轻松设置博客和网站,使用PHP执行脚本和处理动态内容。...使用上面链接的教程准备好服务器后,可以继续阅读本文。 为WordPress创建数据库和数据库用户 我们将从为WordPress创建数据库和数据库用户开始使用。...使用MySQL用户名root启动MySQL会话: mysql -u root -p 系统将提示您输入在安装期间选择的MySQL管理密码。之后,您将进入MySQL提示符。...首先,为我们的应用程序创建一个数据库 为了简单起见,我们将在本教程中调用我们的数据库wordpress,但您可以使用您喜欢的任何名称: CREATE DATABASE wordpress; 接下来,我们将创建一个数据库用户并授予其访问权限...由于解释器与OpenLiteSpeed Web服务器绑定的方式,我们需要使用我们需要的模块重新编译PHP的自定义版本。

    1.3K00

    干货|超详细的常见漏洞原理笔记总结

    注:Eval()函数就可以把字符串按照PHP代码来执行,换句话说,就是可以动态地执行PHP代码,使用eval函数需要注意的是:输入的字符串必须是合法的PHP代码,且必须以分号结尾。...4、远程文件包含 如果我们发现一个网站上存在文件包含漏洞,那么我们可以预先在自己的服务器上建立一句话木马,然后把自己的服务器上的路径作为参数传到有文件包含漏洞的网站上。<?...八、命令执行漏洞 当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。...2、将php.ini文件中的safe_mode设置为On,然后将允许执行的文件放入一个目录中,并使用safe_mode_exec_dir指定这个可执行的文件路径。...PHP中的代码执行情况非常灵活,究其原因仍然离不开两个关键条件:第一是用户能够控制的函数输入;第二是存在可以执行代码的危险函数。

    2K31

    IT面试干货:PHP面试题汇总及答案

    PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页,英文的全称(Professional Home Pages) (1)WEB开发、实现订单、网络通信、在线支付、一切互联网可以实现的工作...get与post提交方法的区别?...session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的一般 用于后台和安全性比较高的地方。...确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表, 程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量 (1)PHP程序上可以使用生成静态文件实现服务数据库压力 (...包含文件不存在或者语法错误的时候require是致命的,include不是 require需要放在头部预先载入,而include放在文件的任何位置随时载入 还有一对扩展函数:require_once()

    1.5K90

    PHP-FPM发展史

    随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服务器与外部应用程序(CGI程序)之间数据互通,于是出现了CGI(Common Gateway Interface...CGI的工作原理 Web服务器一般只用来处理静态文件请求,当碰到动态脚本请求时,Web服务器主进程就会创建一个新的进程来启动CGI程序,也就是将动态脚本交给CGI程序来处理。...启动CGI程序需要一个过程,如读取配置文件,加载扩展,初始化环境等。CGI解析完动态脚本后将结果返回给服务器,最后Web服务器将结果返回给客户端,之前创建的进程也随之关闭。...这样每次用户请求动态脚本,Web服务器都要重新去创建一个新进程去启动CGI程序,读取配置文件,初始化环境等重复性操作,CGI程序处理完动态脚本后又会随之关闭,这样周而复始,其效率是非常低下的。...当客户端请求PHP文件时,Apache就不用在创建出一个新进程来启动PHP解释器,而是直接将PHP文件交给运行中的PHP模块处理。效率相比CGI较高。

    71820

    PHP一次请求的生命周期

    ): 公共网关接口    当一个服务web-service(nginx)分配过来请求的时候,通过匹配后缀是动态的php的请求。...3.3当请求web服务器时,通过匹配后缀是动态的php请求,web服务器通过socket请求fastcgi进程管理器,fastcgi进程管理器,选择一个cgi解析器,web服务器将cgi环境变量和标准输入发送...php.ini配置文件并加载扩展模块,在Apache运行期间是不会再去读取和加载扩展模块的 PHP现在流行的两种运行模式是FPM模式、CLI模式。...在使用Apache作为Web服务器的时候: PHP总是作为Apache的模块,随着Apache的启动而运行的。...执行flush,输出响应内容 PHP启动清理程序,它会按顺序调用各个模块的RSHUTDOWN方法。

    98430

    如何反弹shell

    个人用途上,我经常用wget来下载文件,加 -c选项不怕断网;使用curl 来跟网站的API 交互,简便清晰。...,重定向给后者,/dev/tcp/Target_IP/Target_Port让目标主机发起与攻击机在Target_Port上的TCP连接,0>&1将标准输入和标准输出的内容相结合,重定向给前面标准输出的内容...Bash产生了一个交互环境和本地主机主动发起与攻击机端口建立的连接相结合,然后在重定向个TCP 会话连接,最后将用户键盘输入与用户标准输出相结合再次重定向给一个标准的输出,即得到一个Bash反弹环境。...Curl反弹shell 简单来说就是将Bash重定向这一句内容写入文件,让靶机用curl下载这个文件并且执行,达到用Bash重定向相同的效果 首先,在攻击者vps的web目录里面创建一个index文件(...0>&1 将反弹shell的命令写入/etc/profile文件 将反弹shell的命写入/etc/profile文件中,/etc/profile中的内容会在用户打开bash窗口时执行。

    91410

    渗透专题丨web Top10 漏洞简述(2)

    这是因为程序开发时候会把重复使用的函数写到归档在一起,用到哪个函数就可以直接进行调用,而为了代码更灵活,包含的文件会被设置为变量动态调用,这里就容易造成文件包含漏洞。...../";• 包含文件验证:验证被包含的文件是否是白名单中的一员;• 尽量不要使用动态包含,可以在需要包含的页面固定写好,如:include('head.php')• 严格判断包含中的参数是否外部可控,...应用在调用这些函数执行系统命令的时候,如果将用户的输入作为系统命令的参数拼接到命令行中,在没有过滤用户的输入的情况下,就会造成命令执行漏洞。...,例如:ping -c 4 127.0.0.1&cat /etc/passwd&• && 前后的命令的执行存在逻辑与关系,只有【&&】前面的命令执行成功后,它后面的命令才被执行,例如:ping -c 4...• 使用 safe_mode_exec_dir 执行可执行的文件路径将 php.ini 文件中的 safe_mode 设置为 On,然后将允许执行的文件放入一个目录,并使用safe_mode_exec_dir

    34930

    (一)熟练HTML5+CSS3,每天复习一遍

    静态网页的特点是不论在何时何地浏览这个网页,看到的形式和内容都相同,且只能浏览,用户无法与网站进行互动。静态页面由HTML编写,扩展名一般为.htm, .html, .shtml, .xml等。...与动态页面相比,动态网页是以.asp, .jsp, .php, .perl, .cgi等形式为后缀。 动态网页指网页的内容可以根据某种条件而自动改变。...服务器执行已接收创建的指定应用程序。 应用程序通常基于用户输入的内容,执行所需要的操作。 应用程序把结果格式化为网络服务器和浏览器能够理解的文档,即通常所说的HTML网页。...content 后跟等待的时间,url后跟跳转的页面链接地址。 link标签,定义了一个外部文件的链接,经常被用于链接外部css样式。...表示可输入的最长的字符数量 value表示预先设置好的信息 text单行的文本框 password将文本替换*的文本框 checkbox只能做二选一的是或否选择 radio从多个选项中确定的一个文本框

    3K30

    SQL反模式学习笔记21 SQL注入

    合理使用反模式:没有任何理由使用反模式 解决方案:   1、过滤输入内容,将所有不合法的字符从用户输入中剔除掉。   ...找出所有的外部输入,比如用户输入、文件、系统环境、网络服务、 第三方代码,甚至于从数据库中获取的字符串。...(3)假设任何外部内容都是潜在的威胁,对于不受信任的内容都要进行过滤、验证或者使用数组映射的方式来处理。     ...(4)在将外部数据合并到SQL语句时,使用查询参数,或者用稳健的转义函数预先处理。     (5)在存储过程的代码以及任何其他使用SQL动态查询语句的地方都做同样的检查。...结论:让用户输入内容,但永远别让用户输入代码

    1.1K30

    PHP 这么拉?长连接都搞不了?说说 PHP 的 socket 编程

    对 PHP 的误解颇深 网络上似乎存在一种现象,一提到 PHP 人们的第一反应是简单且慢,这种简单甚至已经到了简陋的地步,比如不少人认为 PHP 无法独立创建一个服务,只能配合 Apache 或 Nginx...年开发了 Personal Home Page 工具集合,简称为 PHP,PHP 通过 CGI 协议与 Web 服务器交互,通过实时计算生成动态的内容。...CGI 模式 CGI (Common Gateway Interface)通用网关接口是一种协议,是早期 Web 服务器与外部程序交互的一种方式,Web 服务器与外部程序之间通过环境变量、标准输入和标准输出交换数据...遵循 CGI 协议的 Web 服务器一般会有一个名为 cgi-bin 的目录,目录下面默认都是可执行 CGI 脚本文件,如果前端访问到了这些文件那么 Web 服务器并不会像处理普通文件那样直接将文件返回给前端...FastCGI 模式与 PHP-FPM 为了解决 CGI 模式下每次都要新建子进程并销毁子进程导致的性能低下问题,FastCGI 模式在 CGI 基础上做出了改进,这种模式下会预先创建出一些 CGI 进程常驻内存

    11910

    ThinkPHP5配置Config

    在application/模块目录中创建extra目录 文件名->配置名,内容->配置名 配置文件Config格式 四种配置文件格式:数组,ini,xml,json。...1.修改应用或模块配置文件中的:‘app_status’,将值设置为,如:home; 2.在与该配置文件同级的目录下,创建与场景名称同名的配置文件,如home.php; 3.再次执行,将会自动根据场景配置文件...创建独立配置文件 将应用模块中的部分可归类的配置独立出来,单独创建配置文件来加载,可以使我们的祝配置文件加载更快,执行效率更高。...1.用户自定义的独立配置文件必须放在应用或模块下面的extra目录下面; 2.默认独立配置文件dtabase.php[数据库],validate.php[验证规则]既可以放在extra下面,也可以放在与应用或模块同级的目录下面...1.作用域与命名空间的概念类似,就是配置项的可见范围; 2.作用域的在表现形式上与二维数组是一样的; 3.切换作用域使用:Config::range('作用域'); 4.可以将独立配置项归纳到作用域进行管理

    1.7K20
    领券