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

【AIGC】通过RAG架构LLM应用程序

toc在之前的博客文章中,我们已经描述了嵌入是如何工作的,以及RAG技术是什么。本节我们我们将使用 LangChain 库以及 RAG 和嵌入技术在 Python 中构建一个简单的 LLM 应用程序。...也可以通过使用 OpenAI 代理并通过将特定文件上传到 OpenAI 的服务器来扩展其知识库来实现类似的目标。...为了拆分文档,我们将使用 LangChain 提供的一个名为 CharacterTextSplitter 的类,我们可以从 langchain 库中导入它:from langchain.text_splitter...这个过程叫做嵌入,也有一篇关于它的博文,所以我们现在不会详细介绍它。对于嵌入过程,我们需要一个外部嵌入模型。为此,我们将使用 OpenAI 嵌入。为此,我们必须生成一个 OpenAI API 密钥。...现在,我们可以组合我们的链:retrieval_chain = create_retrieval_chain(retriever, combine_docs_chain)在后台,它将从数据库中检索相关块

20010

Pandas 学习手册中文第二版:1~5

每个人对此列表中的项目的支持,部署方式以及用户如何使用都各不相同。...通过在 Python 列表中指定它们的标签,可以检索多个项目。 以下内容检索标签1和3上的值: 通过使用index参数并指定索引标签,可以使用用户定义的索引创建Series对象。...下面显示了结果的结果索引: 可以使用.loc属性通过索引标签显式访问行。 以下代码通过索引标签检索一行: 可以使用整数位置列表选择DataFrame对象中的特定行。...我们将研究的技术如下: 使用 NumPy 函数的结果 使用包含列表或 Pandas Series对象的 Python 字典中的数据 使用 CSV 文件中的数据 在检查所有这些内容时,我们还将检查如何指定列名...此外,我们看到了如何替换特定行和列中的数据。 在下一章中,我们将更详细地研究索引的使用,以便能够有效地从 pandas 对象内检索数据。

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

    译 | 在 App Service 上禁用 Basic 认证

    本文介绍如何禁用基本授权,监控任何登录尝试或成功的登录,以及如何使用Azure策略来确保所有新站点都禁用了基本身份验证。...在右侧面板上,您可以看到响应代码和正文。要确认FTP访问被阻止,您可以尝试使用FileZilla这样的FTP客户端进行身份验证。要检索发布凭据,请转到网站的欢迎页,然后单击“下载发布配置文件”。...view=vs-2019 创建自定义RBAC角色 上一节中的 API 支持基于 Azure 角色的访问控制(RBAC),这意味着您可以创建自定义角色来阻止用户使用该 API 并将权限较低的用户分配给该角色...这将打开App Service的所有RBAC操作的列表。...在权限下,您将看到basicPublishingCredentialsPolicies API列为NotActions。 最后,单击创建。您现在可以将此角色分配给组织的用户。 ? ?

    1.8K20

    langchain中的召回增强生成(RAG)一览

    检索[38] 现在让我们来编写实际的应用逻辑。我们希望创建一个简单的应用程序,用户可以提问,搜索与问题相关的文档,将获取的文档和初始问题传递给模型,最后返回一个答案。...- 在使用向量存储的检索过程中,可以使用元数据筛选器[42]对文档进行筛选。- 整合[43]:与检索服务的整合。...使用以下检索到的背景内容来回答问题。如果你不知道答案,只需说你不知道。答案限定在三个句子内,并保持简洁。问题:填充问题。背景:填充背景。...添加一个链,获取最新的用户查询,并将其在聊天历史上下文中重构成一个可以传递给我们的检索器的独立问题。 让我们从第2步开始。...但是,我们如何实际存储和检索不同会话的历史输出呢?要了解详情,请查看 LCEL 如何添加消息历史记录(内存)[61] 页面。 步骤5[62] 在短时间内,我们涵盖了大量的内容。

    4.2K21

    【转】系统设计-第11章:设计一个信息推送系统

    我们讨论两个最重要的API:信息流发布 API 和信息流检索 API。信息流发布 API要发布一个帖子,将向服务器发送一个HTTP POST请求。该API显示如下。...信息流构建(Newsfeed building)在这一节中,我们将讨论信息流是如何在幕后构建的。图11-3显示了高层设计。User(用户):一个用户发送了一个请求来检索她的信息。...只有使用有效 auth_token 登录的用户才可以发帖。该系统限制用户在一定时期内可以发布的帖子数量,这对于防止垃圾邮件和滥用内容至关重要。扇出服务Fanout 是将帖子传递给所有朋友的过程。...由于快速获取信息流是至关重要的,我们对大多数用户使用推送模式。对于名人或有很多朋友/粉丝的用户,我们让粉丝按需提取信息内容以避免系统过载。...信息源检索深入研究图 11-7 说明了信息检索的详细设计。如图11-7所示,媒体内容(图片、视频等)存储在CDN中,便于快速检索。 让我们看看客户端如何检索信息流。

    9810

    教你快速上手AI应用——吴恩达AI系列教程 第二课

    在这篇博客中,我们将介绍吴恩达AI系列教程的第二部分,教你如何快速上手AI应用——我们将学习如何通过langchain构建向量数据库从而封装一本书,然后我们可以通过提问获取这本书相应的问题。...图片我们可以从图中看到,模型通过调用api接口回答了“怎么评价人工智能的回答”导入 embedding 模型和向量存储组件接下来我们会学习使用 embedding 模型和向量数据库做一个存储,利用 langchain...= db.similarity_search(query)#使用这个向量存储来查找与传入查询类似的文本,如果我们在向量存储中使用相似性搜索方法并传入一个查询,我们将得到一个文档列表len(docs)图片可以看到返回了四个文档...,同时我们可以打开第一个文档:图片你可以看到,第一个文档的确是关于防晒的衬衫相关的内容如何回答跟我们文档相关的问题要回答和我们文档相关的问题我们需要通过检索器支持查询和返回文档的方法,并且通过导入语言模型的方式进行文本生成并返回自然语言响应所以我们应该先做的第一步是创建检索器通用接口以及导入语言模型...如果有多个文档,那么我们可以使用几种不同的方法Map Reduce将所有块与问题一起传递给语言模型,获取回复,使用另一个语言模型调用将所有单独的回复总结成最终答案,它可以在任意数量的文档上运行。

    52320

    24 个好用到爆的 Python 实用技巧!

    作为一名数据工作者,我们每天都在使用 Python处理大多数工作。在此过程中,我们会不断学到了一些有用的技巧和窍门。...列表(list)推导式 关于 Python 编程,我最喜欢的事情之一是它的列表推导式[10]。 这些表达式可以很容易地编写非常顺畅的代码,几乎与自然语言一样。...它使你可以从一系列领先的国际出版物中检索新闻文章和相关的元数据。你可以检索图像、文本和作者姓名。它甚至有一些内置的 NLP 功能[13]。...这些是允许你根据特定规则添加和检索条目的数据结构。 “先进先出”(FIFO)队列让你可以按添加顺序检索对象。“后进先出”(LIFO) 队列让你可以首先访问最近添加的对象。...最后,优先队列让你可以根据对象的排序顺序检索对象。 这是一个如何在 Python 中使用队列Queue[16]进行多线程编程的示例。

    60820

    ChatGPT|如何通过ChatGPT问一本书的问题?

    建立语义索引 创建文档的嵌入,为语义搜索做好准备,将使用向量库,这样就可以将更多书籍添加到我们的语料库中,而不必每次都重新阅读原始文档,这里我们使用向量库FAISS。...问书中的问题 建立索引后,我们就可以查询这些文档以获取我们的答案。..., "for循环该如何使用?"...---- 从上可以看出ChatGPT并不是直接用原文来回答,是的确将文档模型建立好,总结提炼出的回答。 到目前为止,如何问一本书的问题步骤介绍完成,我们也可以采取许多其他步骤来改进系统并使其更加有效。...例如,我们可以通过在更大的问题和答案数据集上进行训练来提高系统的准确性,我们还可以在特定领域(例如,历史、科学等)上微调OpenAI模型,以提高其在与该领域相关的问题上的表现。

    1.1K20

    API 分页探讨:offset 来分页真的有效率?

    这是一种低效的方法,但由于它使用简单,所以大家重复地用这个方法,也就是直接把 API 参数映射到数据库查询上。 那合适的方法是什么?介绍之前我们可以先看看数据库的实现。...GET /api/products {"items": [...100 products], "cursor": "qWe"} API 返回一个无业务意义的字符串(游标),你可以用它来检索下一个页面...在我们的案例中,产品来自 ElasticSearch,自然支持游标的特性。 我们可以看到的一个不足是,使用无状态的 API, 无法支持翻到“上一页”这样的功能。...id=25547716 HN网友 et1337: 使用游标的另一个原因是避免由于并发编辑而导致元素重复或跳过的问题,比如你使用 offset 正在第 10 页上,而有人在第 1 页上删除了一个项目,则整个列表会移动...有时你想要基于位置的查询,因为你明确地希望所有的东西都是位置的。 有时你想把这两种技术结合起来,例如,如果你跳到一个大的、不断变化的列表中间,然后想在刚才的位置之后检索下一批结果。

    1.3K10

    26 个鲜为人知的 Python 技巧,成为真正的Pyer!

    另外一个有用的功能是距离:它可以用你喜欢的度量单位计算出两个位置之间的距离。...列表推导式(List comprehensions) 我最喜欢 Python 编程的原因之一是它的列表推导式(https://docs.python.org/3/tutorial/datastructures.html...它可以帮助你从大量顶级国际出版物中检索到新闻文章和相关元数据。你可以检索图像、文本和作者名。 它还有一些内置的 NLP 功能。...问题解决! wikipedia Wikipedia 拥有一个很棒的 API,允许用户以编程方式访问巨大体量的免费知识和信息。 wikipedia 模块使得访问该 API 非常便捷。...每个元组按位置索引对输入对象的元素进行分组。 你也可以通过调用*zip() 来「解压」对象。

    1K20

    26 个鲜为人知的 Python 技巧,成为真正的Pyer!

    另外一个有用的功能是距离:它可以用你喜欢的度量单位计算出两个位置之间的距离。...列表推导式(List comprehensions) 我最喜欢 Python 编程的原因之一是它的列表推导式(https://docs.python.org/3/tutorial/datastructures.html...它可以帮助你从大量顶级国际出版物中检索到新闻文章和相关元数据。你可以检索图像、文本和作者名。 它还有一些内置的 NLP 功能。...问题解决! wikipedia Wikipedia 拥有一个很棒的 API,允许用户以编程方式访问巨大体量的免费知识和信息。 wikipedia 模块使得访问该 API 非常便捷。...每个元组按位置索引对输入对象的元素进行分组。 你也可以通过调用*zip() 来「解压」对象。

    78430

    RAG:如何与您的数据对话

    n检索与问题相关的文档。 nGeneration是将问题和相关文件传递给LLM并得到最终答案。 您可能听说过 OpenAI本周推出了Assistant API ,它可以为您完成所有这些步骤。...它有效,但逗号不在正确的位置。 为了解决这个问题,我们可以使用带有回溯的正则表达式作为分隔符。...现在,我们知道如何将注释转换为数值向量。下一个问题是我们应该如何存储它以便可以轻松访问这些数据。 让我们考虑一下我们的用例。...这是一个关于这一切如何运作的方案: l我们收到用户的一个问题, l我们使用嵌入从向量存储中检索该问题的相关文档, l我们将最初的问题连同检索到的文件一起传递给LLM并获得最终答案。...l我们已经了解了嵌入是什么,并设置了向量存储来有效地访问数据。 l我们找到了针对检索问题的不同解决方案,并了解了如何增加多样性、克服上下文大小限制以及使用元数据。

    80210

    Chatgpt-Retrieval-Plugin—GPT AI插件 真正联网的人工智能

    本 README 提供了关于如何设置、开发和部署 ChatGPT 检索插件的详细信息。...作为一个开源的自托管解决方案,开发人员可以部署自己的检索插件,并在 ChatGPT 中注册。检索插件支持多个矢量数据库提供商,开发人员可以从列表中选择他们首选的提供商。...当 API 在本地运行时,可以使用 /docs 路径的 Swagger UI 与 API 接口进行交互、测试其功能,并查看预期的请求和响应模型。...3.关联的问题:使用关键字Fixes或Closes后跟相关问题的编号(例如Fixes #123,Closes #456)提及任何相关的问题。...10.视频提交(对于复杂/大型的PR):如果您的PR引入了重大更改、复杂性或大量代码行,请随PR一起提交一个简短的视频演示。该视频应该解释更改的目的、背后的逻辑以及它们如何解决问题或添加所建议的功能。

    96930

    【收藏】这些Python代码技巧,你肯定还不知道

    另外一个有用的功能是距离:它可以用你喜欢的度量单位计算出两个位置之间的距离。...列表推导式(List comprehensions) 我最喜欢 Python 编程的原因之一是它的列表推导式(https://docs.python.org/3/tutorial/datastructures.html...它可以帮助你从大量顶级国际出版物中检索到新闻文章和相关元数据。你可以检索图像、文本和作者名。 它还有一些内置的 NLP 功能。...问题解决! wikipedia Wikipedia 拥有一个很棒的 API,允许用户以编程方式访问巨大体量的免费知识和信息。 wikipedia 模块使得访问该 API 非常便捷。...每个元组按位置索引对输入对象的元素进行分组。 你也可以通过调用*zip() 来「解压」对象。 ?

    46930

    这些Python代码技巧,你肯定还不知道

    另外一个有用的功能是距离:它可以用你喜欢的度量单位计算出两个位置之间的距离。...列表推导式(List comprehensions) 我最喜欢 Python 编程的原因之一是它的列表推导式(https://docs.python.org/3/tutorial/datastructures.html...它可以帮助你从大量顶级国际出版物中检索到新闻文章和相关元数据。你可以检索图像、文本和作者名。 它还有一些内置的 NLP 功能。...问题解决! wikipedia Wikipedia 拥有一个很棒的 API,允许用户以编程方式访问巨大体量的免费知识和信息。 wikipedia 模块使得访问该 API 非常便捷。...每个元组按位置索引对输入对象的元素进行分组。 你也可以通过调用*zip() 来「解压」对象。 ?

    58530

    精选26个Python实用技巧,想秀技能先Get这份技术列表!

    要了解更多信息请访问: https://docs.python.org/3/library/functions.html#dir ▌Emoji 如何打出 emoji 表情?...它可以让你获得某一地点的完整街道地址、维度、精度甚至海拔高度。 还有一个有用的距离类。它可以使用你喜欢的测量单位来计算两个位置之间的距离。...用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的 HTML。在问题页面,不会弹出任何广告,销售信息,JavaScript 窗口等。...参阅: https://pypi.org/project/newspaper3k/ 这个模块可以让你从一系列领先的国际出版物中检索新闻文章和相关的元数据。你可以检索图像、文本和作者姓名。...zip() 内置函数接受许多可迭代对象并返回元组列表。每个元组根据对象的位置索引对其元素进行分组。 你还可以通过调用 *zip() 来“解压缩”对象。

    65950

    精选26个Python实用技巧,想秀技能先Get这份技术列表!

    要了解更多信息请访问: https://docs.python.org/3/library/functions.html#dir ▌Emoji 如何打出 emoji 表情?...它可以使用你喜欢的测量单位来计算两个位置之间的距离。 ?...译注: Stack Overflow 是一个与程序相关的 IT 技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的 HTML。...参阅: https://pypi.org/project/newspaper3k/ 这个模块可以让你从一系列领先的国际出版物中检索新闻文章和相关的元数据。你可以检索图像、文本和作者姓名。...zip() 内置函数接受许多可迭代对象并返回元组列表。每个元组根据对象的位置索引对其元素进行分组。 你还可以通过调用 *zip() 来“解压缩”对象。

    55420

    精选26个Python实用技巧,想秀技能先Get这份技术列表!

    要了解更多信息请访问: https://docs.python.org/3/library/functions.html#dir ▌Emoji 如何打出 emoji 表情?...它可以使用你喜欢的测量单位来计算两个位置之间的距离。 ?...译注: Stack Overflow 是一个与程序相关的 IT 技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的 HTML。...参阅: https://pypi.org/project/newspaper3k/ 这个模块可以让你从一系列领先的国际出版物中检索新闻文章和相关的元数据。你可以检索图像、文本和作者姓名。...zip() 内置函数接受许多可迭代对象并返回元组列表。每个元组根据对象的位置索引对其元素进行分组。 你还可以通过调用 *zip() 来“解压缩”对象。

    73520

    教程:使用 Chroma 和 OpenAI 构建自定义问答机器人

    这是一个关键步骤,因为嵌入模型生成的标记将帮助我们执行语义搜索,以检索数据集中具有相似含义的句子。...,我们通过传递 OpenAI API 密钥和嵌入模型来指示 Chroma 使用 OpenAI 嵌入。...我们可以使用 text_embedding 函数将查询的短语或句子转换为 Chroma 使用的相同嵌入格式。 现在我们可以基于 OpenAI 嵌入模型创建 ChromaDB 集合。...这将成为吸收数据时生成嵌入的默认机制。 让我们将 Pandas dataframe 中的文本列转换为可以传递给 Chroma 的 Python 列表。...本教程演示了如何利用诸如 Chroma 之类的向量数据库来实现检索增强生成(RAG),以通过额外的上下文增强提示。

    52410
    领券