LlamaIndex三 配置

前言

在上篇LlamIndex二 RAG应用开发 - 掘金 (juejin.cn)中,我们学习到LlamaIndexRAG的全面支持。这篇文章,我们就来细化这个过程,尝试各种配置选项,满足不同场景需求。学习过后,大家再开发RAG应用,会更轻松。

自定义文档分块

chunk_size 参数通常用于指定在处理大量数据时一次处理的数据项数量,用于计算索引的长度。如下代码:

python复制代码from llama_index import ServiceContext
service_context = ServiceContext.from_defaults(chunk_size=500)

自定义向量存储

我们可以选择自定义的vector_store数据库,设置存储方式。

python复制代码import chromadb
from llama_index.vector_stores import ChromaVectorStore
from llama_index import StorageContext

chroma_client = chromadb.PersistentClient()
chroma_collection = chroma_client.create_collection("quickstart")
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)

在这里我们使用的向量数据库是chromadb,LlamaIndex 专门提供了ChromaVectorStore API。StorageContext可以让我们配置存储上下文。   在上面的代码中,首先chroma_client = chromadb.PersistentClient()实例化了chromadb的持久化存储,chroma_collection = chroma_client.create_collection("quickstart")并将当前项目的向量数据库命名为qucikstart,vector_store = ChromaVectorStore(chroma_collection=chroma_collection)生成存储实例,最后storage_context = StorageContext.from_defaults(vector_store=vector_store)生成存储上下文对象。

自定义检索

当我们在使用查询引擎检索时,我们可以通过设置similarity_top_k来定义检索时的相似文档数。这样可以在满足检索需求的同时,节省token 开销。

ini复制代码index = VectorStoreIndex.from_documents(documents)
# 指定返回5条相似数据
query_engine = index.as_query_engine(similarity_top_k=5)

指定大模型

在自定义文档分块中,我们使用了ServiceContext.from_defaults来配置chunk_size, 其实还可以给它传递llm参数,来指定使用的大模型。

ini

复制代码service_context = ServiceContext.from_defaults(llm=OpenAI())

指定响应模式

在第一篇文章中,我们使用query_engine = index.as_query_engine(response_mode='tree_summarize')创建了一个查询引擎,它基于文档索引进行查询。参数response_mode值设置为tree_summarize,查询结果以树形结构显示。

ini

复制代码query_engine = index.as_query_engine(response_mode='tree_summarize')

指定流式响应

ini

复制代码query_engine = index.as_query_engine(streaming=True)

响应格式为流。

案例

我们将综合以上配置,并用到了下面的示例中,上colab。

  • 安装llama-index 和chromadb向量数据库
css

复制代码!pip install -q -U llama-index chromadb

-q -U 的意思是省略一些下载细节。

  • 拉取文档
bash复制代码!mkdir data 
!wget https://raw.githubusercontent.com/jerryjliu/llama_index/main/examples/paul_graham_essay/data/paul_graham_essay.txt -O data/paul_graham_essay.txt

使用mkdir 创建data文件夹,colab有类似虚拟机的文件系统。 wget拉取文件存放到data目录下,文件名为 paul_graham_essay.txt。

  • 安装openai,设置OPENAI_API_KEY环境变量
lua复制代码!pip install 
import os 
os.environ['OPENAI_API_KEY'] = 'your valid openai api key'
  • 引入向量数据库相关模块
python复制代码import chromadb
from llama_index import VectorStoreIndex, SimpleDirectoryReader from llama_index import ServiceContext 
from llama_index.vector_stores import ChromaVectorStore 
from llama_index import StorageContext 
from llama_index.llms import OpenAI
  • 实例化ServiceContext, 配置chunk_size和llm
python

复制代码service_context = ServiceContext.from_defaults(chunk_size=500, llm=OpenAI())
  • 配置向量存储
python复制代码chroma_client = chromadb.PersistentClient() 
chroma_collection = chroma_client.create_collection("quickstart") vector_store = ChromaVectorStore(chroma_collection=chroma_collection) storage_context = StorageContext.from_defaults(vector_store=vector_store)
  • 索引文档
python复制代码documents = SimpleDirectoryReader('data').load_data() 
index = VectorStoreIndex.from_documents(documents, service_context=service_context,storage_context=storage_context)

原来配置了chunk_size和llm的service_context和配置了chromadb向量数据库的storage_context与documents一起在VectorStoreIndex.from_documents中相汇,生成等下查询引擎需要的索引对象,了解,此刻,可以带上LlamaIndex的紧箍儿…

  • 指定响应模式,以及启用流式响应
python复制代码query_engine = index.as_query_engine(response_mode='tree_summarize', streaming=True) 
response = query_engine.query("What did the author do?") response.print_response_stream()

好,现在让我们一起来看下执行结果吧。

这张截图可以看到chroma文件

image.png

总结

今天搞清楚了LlamaIndex的配置细节,以Rag应用为例,能干活了, 哈哈。

那么,我们该如何学习大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一、大模型全套的学习路线

学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。

L1级别:AI大模型时代的华丽登场

L2级别:AI大模型API应用开发工程

L3级别:大模型应用架构进阶实践

L4级别:大模型微调与私有化部署

一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。

以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/692199.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue11-键盘事件

一、键盘事件:keydown和keyup事件 keydown 和 keyup 是两种常用于处理键盘输入事件的JavaScript事件。当你在网页的输入框或其他可输入元素上按下或释放键盘上的某个键时,这些事件就会被触发。 1-1、keydown 事件 当用户按下键盘上的某个键时&#xff…

matplotlib 动态显示梯度下降过程

文章目录 简介曲线下降曲面下降 简介 梯度下降是一种优化算法,常用于寻找函数的最小值或最大值。它通过迭代更新参数的方式逐步减小(或增大)目标函数的值,直到达到某个停止条件为止。梯度下降的基本思想是沿着目标函数的负梯度方…

声量2024 | 脱离『生活监狱』——对部分主流价值的质疑与冒犯

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 阿那亚 联合制作 / 声量The Power of Voice 特别鸣谢 / 深夜谈谈播客网络 本期节目录制于第二届「声量The Power of Voic…

基于 Delphi 的前后端分离:之三,使用 HTMX

# 前请提要 基于 Delphi 的前后端分离:之一_delphi 后台vue-CSDN博客 基于 Delphi 的前后端分离:之二_后端 框架 delphi-CSDN博客 # 发现一个非常好的前端框架 - HTMX 这里仍然使用之二里面提到的页面模板,但采用 HTMX 来和后端交互&#…

项目-基于LangChain的ChatPDF系统

问答系统需求文档 一、项目概述 本项目旨在开发一个能够上传 PDF 文件,并基于 PDF 内容进行问答互动的系统。用户可以上传 PDF 文件,系统将解析 PDF 内容,并允许用户通过对话框进行问答互动,获取有关 PDF 文件内容的信息。 二、…

python中的函数递归

函数递归,就是一个函数,自己调用自己。 如上图所示,是一段通过定义函数,编写函数体来实现for循环。实现的是从1到n的累乘。即求n的阶乘, 如上图所示,是一段函数的递归来实现1到n的累乘操作,将1*…

思维,CF1575K - Knitting Batik

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1575K - Knitting Batik 二、解题报告 1、思路分析 诈骗题,上面…

变声器软件免费版有哪些?国内外12大热门变声器大盘点!(新)

变声软件是一种人工智能AI音频处理工具,允许用户实时修改自己的声音或改变预先录制的音频。这些软件解决方案可提供不同的效果,如改变声音的音调或速度,或将我们的声音转换成其他人或其他东西的声音,如名人、卡通人物、机器人或不…

C++开源项目:pathcopycopyV20源码及运行程序

PathCopyCopy 是一个开源的 Windows 资源管理器扩展项目,旨在为用户提供一个更加高效、便捷的文件路径复制和管理工具。以下是关于 PathCopyCopy 开源项目的详细介绍: 1. 项目概述 2. 项目技术分析 3. 项目功能 4. 项目特点 5. 项目应用场景 6. 项目…

记一次源码部分丢失后补救过程

起因 最近植物大战僵尸杂交版玩的入迷,写了一个“神奇”小工具,来辅助游戏。用Git新建一个库,想把代码备份到GitHub,结果push错库了,无奈reset,结果把本地项目一起reset了,结果就是源代码丢失。…

服务器数据恢复—服务器raid5上层zfs文件系统数据恢复案例

服务器数据恢复环境&故障: 一台某品牌X3650M3服务器,服务器中有一组raid5磁盘阵列,上层采用zfs文件系统。 服务器未知原因崩溃,工作人员排查故障后发现服务器的raid5阵列中有两块硬盘离线导致该阵列不可用,服务器内…

springboot报错:Failed to start bean ‘documentationPluginsBootstrapper‘

项目场景: springboot项目启动时报错 问题描述 具体报错信息: 可能原因分析: 1、SpringFox的版本与Spring Boot的版本不兼容。解决这个问题,你可能需要检查你正在使用的SpringFox和Spring Boot的版本,确保它们是兼容…

Python01 -分解整包数据到各个变量操作和生成器

Python 的星号表达式可以用来解决这个问题。比如,你在学习一门课程,在学期末的时候,你想统计下家庭作业的平均成绩,但是排除掉第一个和最后一个分数。如果只有四个分数,你可能就直接去简单的手动赋值,但如果…

Java Web学习笔记24——Vue项目开发流程

import是引入文件。 export是将对象导出为模块。 new Vue({ router, router: h > h(App) }).$mount(#app) App.vue: vue的组成文件以.vue结尾&#xff0c;每个组件由三个部分组成&#xff1a;<template>、<script>、<style>。 <template><d…

【MMU】——页表映射示例

文章目录 页表映射示例一级页表二级页表二级页表的优势页表映射示例 一级页表 上图一级页表中假设以 4KB 物理页为映射单位,一个进程 4GB 的虚拟地址空间需要:4GB/4KB = 1MB 个页表项,每个页表项目占用 4 个字节所以每个一级页表需要 4MB 的存储空间,每个进程需要 4MB 的内…

【教学类-36-07】20240608动物面具(通义万相)-A4大小7图15手工纸1图

背景需求&#xff1a; 风变的AI对话大师一年到期了&#xff0c;也没有看到续费的按钮。不能使用它写代码了。 MJ早就用完了&#xff0c;最后480次&#xff0c;我担心信息课题会用到它生图&#xff0c;所以不敢用。 最近探索其他类似MJ的免费出图工具——找到了每天给50张免费图…

Django 连接mysql数据库配置

1&#xff0c;提前创建注册的app1应用 Test/Test/settings.py python manage.py startapp app1 2&#xff0c;配置mysql数据库连接 Test/Test/settings.py DATABASES {default: {ENGINE: django.db.backends.mysql,# 数据库名字NAME: db1,# 连接mysql数据库用户名USER: ro…

如何在Coze中实现Bot对工作流的精准调用(如何提高Coze工作流调用的准确性和成功率)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 工作流(workflow)📒📝 创建设计工作流📝 添加工作流📝 调用工作流⚓️ 相关链接 ⚓️📖 介绍 📖 在使用Coze平台创建智能Bot时,您可能会遇到一个常见问题:即便添加了正确的工作流,Bot却没有按照预期调用它们。…

国产操作系统上给virtualbox中win7虚拟机安装增强工具 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上给virtualbox中win7虚拟机安装增强工具 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上给win7虚拟机安装virtualbox增强工具的文章。VirtualBox增强工具&#xff08;Guest Additions&a…

45-2 waf绕过 - XSS 绕过WAF方法

环境准备: 43-5 waf绕过 - 安全狗简介及安装-CSDN博客然后安装pikachu靶场:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客打开pikachu靶场 http://127.0.0.1/pikachu-master/vul/xss/xss_reflected_get.php 使用常见payload被安全狗拦截…