今天分享的writeup是中国香港白帽Ron Chan (@ngalongc)发现的一个关于Uber网站的漏洞,他通过分析Uber的微服务架构和其中的API调用机制,利用其中的服务端响应缺陷,能以...Uber的Web应用服务体系是基于很多微服务架构部署的,由于微服务中会涉及到大量的REST模式,因此,在与各种Uber应用的交互过程中,Uber服务端难免会调用到一些REST API接口。...from=2018-01-01&to=2019-01-01 从请求响应中发现端倪 设计理论上来说,显然,这种调用都是在Web应用后端(Backend)来执行实现的,因为在调用过程中,其内部的微服务架构没有针对...第二,在查询请求request中缺乏验证调用者身份的 X-Auth-Token 头,但是,在服务端响应消息中竟然还返回了用户的访问token!...预想一下,我们希望在服务端响应中能返回的API GET请求调用如下: http://127.0.0.1:123/v1/partners/victim_uuid/statements/current?
网络抓取与API调用:数据工程的工具箱网络抓取是一种数字化的信息检索方式,它类似于在网络上获取数据的智能助手。...理解这个过程对于了解数据在Web应用程序中的交换和利用至关重要。在此关系图的起点,API服务器充当中介。它接收GET请求,对其进行处理,并根据请求的参数确定适当的响应。...然后,返回响应数据,其中包含客户端请求的信息。由此可以看出,API与网页抓取的主要区别在于它们访问数据的方式:· API是访问数据的官方渠道。...这是一种无需使用官方API即可从网站提取数据的方法。回到最开始提到的案例中。城市信息可以从多个途径获取。一种方法是从官方统计等渠道的网站下载CSV文件。...在这篇博客中,我们涉及了抓取百科数据、从API获取天气数据、Python函数以及复杂数据易于理解的技巧。
虽然 RAG 是最流行的方法,但它最适合从已编入索引并存储在 向量数据库 中的非结构化数据构建上下文。...LLM 不再仅仅生成文本,现在可以通过利用外部工具和服务执行操作、控制设备、从数据库中检索信息以及执行广泛的任务。 并非每个 LLM 都能够利用函数调用功能。...在我们的示例中,这可能是提示以及函数 get_current_weather(city) 的输入模式。LLM 确定提示是否需要函数调用。...例如,可以预定义一个函数,根据用户查询提取特定信息,RAG 系统从一个综合知识库中检索这些信息。这种方法确保响应不仅相关,而且精确地针对应用程序的需求量身定制。...例如,在客户支持场景中,系统可以从数据库中检索产品规格,然后使用函数调用为用户查询格式化此信息,确保响应一致且准确。
布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率而且删除困难。...如何从10亿数据中快速判断是否存在某一个元素?今天总算知道了 所以通过上面的现象,我们从布隆过滤器的角度可以得出布隆过滤器主要有 2 大特点: 如果布隆过滤器判断一个元素存在,那么这个元素可能存在。...如何从10亿数据中快速判断是否存在某一个元素?今天总算知道了 第一部分输出的 mightContainNum1一定是和 for 循环内的值相等,也就是百分百匹配。...如何从10亿数据中快速判断是否存在某一个元素?今天总算知道了 对于这个默认的 3% 的 fpp 需要多大的位数组空间和多少次哈希函数得到的呢?...如何从10亿数据中快速判断是否存在某一个元素?今天总算知道了 得到的结果是 7298440 bit=0.87M,然后经过了 5 次哈希运算。
缓存技术可以将数据存储在快速且易于访问的内存中,在需要时能够快速检索数据,从而减少系统进行重复计算来检索相同数据的次数。...该函数应首先检查映射中是否存在请求对象。如果请求已经存在,则函数应立即从映射中返回响应对象。否则,函数应向API发送请求,然后将API响应保存到映射中,并将其返回。...该类还定义了一个名为 get_order_list 的函数,用于检查缓存中是否包含请求对象。如果缓存已经存在,则函数将返回缓存中存在的响应对象。...否则,函数将调用 API 并将响应保存到缓存中,然后返回响应对象。在此示例代码中,我们使用了time.time()函数来判断请求是否在同一秒内进行,并且我们假设同一秒的时间为1秒。...在这种方法中,从接口获取的数据将被存储在缓存中,在限定时间内可以从缓存中快速检索数据。在过期之后,数据将从缓存中删除以确保后续请求从接口检索到的是最新数据。
API测试——测试API集合,检查它们的功能、性能、安全性,以及是否返回正确的响应。...API测试用于确定输出是否结构良好,是否对另一个应用程序有用,根据输入(请求)参数检查响应,并检查API检索和授权数据所花费的时间。...hl=en Postman非常容易上手,它提供API调用的集合,我们必须按照规范来测试应用程序的API。 可以从给定的下拉列表中选择API调用方法,根据API调用设置授权、标头、正文等信息。...有以下四种方法: POST请求:创建或更新数据 PUT请求:更新数据 GET请求:用于检索/获取数据。...完成API调用所花费的时间的状态代码显示在另一个选项卡中。 有许多状态代码,我们可以从这些代码验证响应。 200 - 成功请求。 201 - 成功请求并创建了数据。 204 - 空响应。
他们使用自指示微调(self-instruct fine-tuning)和检索(retrieval),让 LLM 可根据 API 和 API 文档准确地从大量重叠且多变的工具中做出选择。...使用检索模式时,检索器(BM25 或 GPT-Index)首先会检索 API 数据库中存储的最新的 API 文档。...在这项研究中,由于只考虑一个 API 调用,因此为了揭示正在使用数据集中的哪个 API,可以检查候选 API 调用的 AST 是否是参照 API 调用的子树。 识别乃至定义幻觉可能非常困难。...通过这种方式,可以轻松地检查参数是否与参照 API 匹配。 图 4 给出了更多细节。在这个例子中,Gorilla 返回了一个 torch API 调用。...图 4:用于评估 API 调用的 AST 子树匹配 图中左侧是 Gorilla 返回的一个 API 调用。首先构建相关的 API 树。然后将其与构建的数据集比较,看该 API 数据集是否有匹配的子树。
GPTCache 是 LLM 语义缓存层(caching layer),它采用语义缓存(semantic cache)[1]技术,能够存储 LLM 响应,从而显著减少检索数据所需的时间、降低 API 调用开销...将 LLM 响应存储在缓存中可以显著减少检索响应所需的时间。如果之前的请求已经存储在缓存中,能够更大幅度地降低响应时间,提高应用程序的整体性能。 重点二,节省开销。...缓存 LLM 响应可以减少对服务 API 的调用次数,从而节省成本。尤其是在高流量场景下,缓存尤为重要。如果不使用语义缓存,可能会多次调用 API,产生极高的费用。 重点三,提高可扩展性。...语义缓存更靠近客户端,可以减少从 LLM 服务检索数据所需的时间,降低网络延迟,从而有效提升用户的整体体验。 02....Cache Storage 和 Vector Store 中收集数据,并使用各种策略来确定输入请求与来自 Vector Store 的请求之间的相似性,该模块用于确定某一请求是否与缓存匹配。
,这个处理程序会执行与请求相关的操作,例如:数据查询、业务逻辑处理、调用其他服务或执行其他操作 数据处理:API接口服务器会根据请求的目的和参数来处理数据,这可能包括从数据库中检索数据、执行特定的业务逻辑或对数据进行计算和处理...生成响应:服务器完成数据处理和业务逻辑后会生成相应的响应,响应通常包括状态码、响应头部和响应体,响应体中包含了请求的结果、数据集、错误消息或其他相关信息 响应返回:API接口服务器将生成的响应发送回客户端应用程序...,响应通过HTTP协议进行传输并在响应的头部中包含状态码和其他元数据 处理响应:客户端应用程序收到响应后会解析响应的内容并进行相应的处理,这可能包括数据提取、结果解析、错误处理和后续操作 接口类型 常见的...中发现此时会调用API接口来发送密码重置的邮件信息 随后我们对上面可疑的接口进行检索测试,看看是否可以获取到API接口文档,随后直接移除后缀/winner,此时提示错误信息:{"error":"Malformed..."email": "john@example.com", "isAdmin": "false" } 从上面的结果中我们初步猜测此处的id与isAdmin存在某种绑定关系,要测试是否可以修改枚举的
那么,作为存储如此敏感数据的管理工具是否应该保证足够的安全性呢? ? 场景 在我遇到的这个场景中,其中不仅包含了账户密码它还包含了该公司员工的密码。...在仔细观察应用程序并完成各个请求之后,我发现应用程序会从位于应用程序的/api/的API中检索不同的信息。 在对应用程序进行一些爬行和抓取后,我发现了一些API端点: ?...在record IDs从record/all端点被检索后,该端点用于从这些特定记录ID中检索密码及其完整信息。...这里我还将记录的响应转换为了JSON,并直接从JSON对象调用记录ID的值。fetch()函数用于发送GET请求,以捕获令牌并从JSON对象中检索其值: ?...请求完成后,将解析响应并从响应中获取值,例如标题,URL,用户名,密码。然后将这些值添加到虚拟变量“data_chunks”进行最终的处理。 ?
我们在store中使用actions来对后台进行API调用。数据返回后,我们使用mutations将其存储在state中。这允许任何组件访问该数据。...每个action都执行以下操作: 从API获取数据(必要时包括有效负载) 以state存储数据(可选) 返回对调用该action组件的响应 要将这些重构为单个(统一)操作action,我们需要知道action...需要明确的事情: 要击中的端点(请求接口) 在API调用中是否发送有效负载 是否将数据提交到state中,如果是,则提交到哪个状态变量 我们当前的action 下面是我们其中的一个actions示范:...检索到数据之后,将更新state变量currentWorkOrder。最后,数据将返回到进行调用的组件中。我们所有的actions都有这种格式。...检索到数据之后,将更新state变量currentWorkOrder。最后,数据将返回到进行调用的组件中。我们所有的actions都有这种格式。
每次发送提示时,LLM 判断是否需要访问网络,然后在需要时调用搜索 API。从多个来源获取的抓取内容然后被汇总并作为上下文添加到提示中,这使得 LLM 能够以有用且有意义的方式回应。...与之前动态调用搜索 API 的方法不同,RAG 期望从一个众所周知的数据存储中检索数据,比如向量数据库或由外部维护的全文搜索索引。 重要的是要注意,第一种方法最适用于从公共领域的数据构建的上下文。...类似于RAG如何将上下文注入提示中,FreshLLMs倡导从搜索中按发布日期排序的热门摘要注入提示的思想。除了添加上下文之外,它还提议使用少量示例提示,教导LLM如何基于一些示例做出响应。...然后,使用这些信息来教导LLM推理检索到的证据,提高模型根据少量提示提供准确和实时响应的能力。...它们的设计旨在通过对时效性查询的响应来克服离线LLMs的限制,并提供最相关和有价值的信息。这些模型可通过API公开访问,允许开发人员将该技术集成到其应用程序和网站中。
问题和考虑因素 问题: 当一个事件从salesforce触发时,如何在远程系统中启动流程并将所需信息传递给该流程,而无需等待远程系统的响应?...•对远程系统的调用是否要求Salesforce在继续处理之前等待响应?对远程系统的调用是同步的还是异步的? ...•如果对远程系统的调用是同步的,那么Salesforce是否需要将响应作为调用的同一事务的一部分进行处理? •消息大小是否较小? ...使用回调可以确保检索到的数据是在特定的时间点,而不是在发送消息时。 •检索更多数据—单个出站消息只能发送单个对象的数据。回调可用于从其他相关记录(如与父对象关联的相关列表)检索数据。...(实际项目中可能采用最多的情况) 从Salesforce数据更改调用的Trigger执行Apex SOAP或HTTP异步调用 Suboptimal 可以使用Apex Trigger根据记录数据更改执行自动化
ASP.NET Core 应用中的一个常见性能问题是阻塞可以异步进行的调用。许多同步阻塞调用都会导致线程池饥饿和响应时间降低。...如果有异步 API 可用,则异步调用数据访问、I/O 和长时间运行的操作 API。 不要使用 来异步同步 API。 使控制器/Razor Page 操作成为异步。...高效读取和写入数据对于良好的性能至关重要。 建议: 请异步调用所有数据访问 API。 请勿检索不需要的数据。编写查询以便仅返回当前 HTTP 请求所需的数据。...如果可接受稍微过时的数据,请考虑缓存从数据库或远程服务检索的经常访问的数据。根据方案使用 MemoryCache 或 DistributedCache。...有关详细信息,请参阅 ASP.NET Core 中的响应缓存。 请尽量缩短网络往返。目标是在单个调用而不是多个调用中检索所需数据。
也就是LLM需要按照不同的使用情况,针对数据集、用户、使用案例,甚至包括针对特定调用,生成完全不同的响应。 这通常是通过 3 种基本技术中的一种来实现的: 1....延迟 RAG通常是针对离线数据进行的,检索延迟以毫秒为单位,端到端延迟主要由LLM调用决定。...但作者认为,比较一下从文件上传到返回结果的端到端延迟时间,看看RAG是否能与「在线」(而非离线)数据竞争,会很有意思。...RAG 的第一部分是检索,根据一些启发式(通常是矢量搜索)从更广泛的数据集中选择最「有前途」的文档块。...第二部分是生成增强,选择的块被输入到「标准」LLM调用中(并且随着通用性的增加,被输入到智能体LLM循环中)。 原则上,检索可以使用多种技术来实现,从关键字搜索到关系搜索,再到混合技术。
从本质上讲,缓存涉及临时存储从数据库中检索的数据。当对相同数据发出后续请求时,后端应用程序会无缝地传递缓存数据,而不是等待 API 再次检索它。...但是,如果没有找到缓存数据,控制器会调用服务以获取数据。一旦检索到数据,它将被缓存以供将来请求使用,然后返回给用户。这种方法可以通过最小化对服务的不必要的调用来优化性能。...收到请求后,控制器首先检查是否存在与键 "UD" 对应的缓存数据。如果存在这样的数据(使用 if (cachedData) 检查),则将它作为 JSON 响应返回给用户。...此界面将允许我们监控和管理 Redis 数据库的内容,提供对其操作的有价值的见解。 实现 52 毫秒的 API 响应时间当然非常令人满意。...从显著减少 API 响应时间到提升整体用户体验,缓存已成为现代 Web 开发中的基石技术。 通过智能地存储和检索数据,缓存最大限度地减少了计算开销和数据库负载,从而实现了更快、更具响应性的应用程序。
它就像一个多功能的工具,可以在处理数据和大型语言模型的各个阶段提供帮助 首先,它有助于“摄取”数据,这意味着将数据从原始来源获取到系统中。...文档/节点:文档是数据的容器,无论它来自PDF、API还是数据库。Node是Document的一个片段,丰富了元数据和关系,为精确的检索操作铺平了道路。...检索器:它们规定了根据查询从知识库中获取相关上下文的技术。例如,针对向量索引的密集检索是一种流行的方法。 节点后处理器:它们通过转换、过滤或重新排序来细化节点集。...首先查找并检查Llamaindex文档中是否列出了相关的数据连接器,如果没有,可以访问Llamahub,看看是否有现成的连接器 例如: PDF文件:可以使用SimpleDirectoryReader数据连接器...它们可以调用外部服务api,处理返回的数据,并将其存储以供将来参考。 数据代理的两个组成部分是: 推理循环:指示代理的决策过程,决定使用哪些工具、它们的顺序,以及基于输入任务的每个工具调用的参数。
是否需要API调用; 2. 确定要调用的正确API:如果不够好,则LLM需要迭代地修改API输入(例如决定搜索引擎API的搜索关键字); 3....基于API结果的响应:如果结果不满意,则模型可以选择改善并再次调用。 该基准可以在三个层次上评估智能体的工具使用能力。...层次1:评估调用API的能力 给定API的描述,模型需要确定是否调用给定的API,正确调用并正确响应API返回; 层次2:检查检索API的能力 模型需要搜索可能解决用户需求的API,并通过阅读文档学习如何使用...层次3:评估规划API的能力,而非检索和调用 如果用户请求不明确(例如安排小组会议、预订旅行的航班/酒店/餐厅),模型可能不得不进行多次API调用来解决。...有限上下文长度 上下文容量限制了历史信息、详细指令、API调用上下文和回复,下游系统的设计不得不受限于有限的通信带宽,而像自我反思这样从过去错误中学习的机制可以从更长的上下文窗口中受益。
MessageResponseHistory把与给定关联标识符相关联的服务响应结果放到内存中。可以轻易地把该Response保存到某种数据存储中,为消息响应提供进程外存储。...N条响应,以确保业务逻辑只被调用一次。...如果找到匹配响应则从MessageResponseHistory对象中检索出响应返回给客户端,以确保在客户端重复调用该服务时不会出现预料之外的问题。...Web应用程序只使用这两个类来显示从服务门面获取的数据。...3.检索响应并构建Presentation模型。
领取专属 10元无门槛券
手把手带您无忧上云