LlamaIndex三 配置

news2024/11/26 5:24:50

前言

在上篇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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库优化sql的方案

一: 插入数据的优化 1.insert 如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化 优化方案一 批量插入数据 Insert into tb_test values(1,Tom),(2,Cat),(3,Jerry); 优化方案二 start transaction; insert into tb_test values(…

qwen2 vllm推理部署;openai接口调用

参考: https://qwenlm.github.io/zh/blog/qwen2/ 下载 https://huggingface.co/Qwen 下载的Qwen2-7B-Instruct使用: export HF_ENDPOINT=https://hf-mirror.comhuggingface-cli download --resume-download --local-dir-use-symlinks False Qwen/Qwen2-7B-Instruct

webpack 优化构建速度的插件

1.HardSourceWebpackPlugin本地缓存 HardSourceWebpackPlugin这个插件比DLL动态链接库更优秀 HardSourceWebpackPlugin是webpack的插件,为模块提供中间缓存步骤。为了查看结果,您需要使用此插件运行webpack两次:第一次构建将花费正常的时间…

mysql中事务的简介

大家好。我们在日常开发过程中肯定都或多或少的用到过事务,而且在面试时,数据库的事务也是必问内容之一。今天我们就来说说mysql的事务。 为了方便我们下面内容的讲解,我们也先建立一个讲事务必用的表–account表,并在表中插入两…

zoomeye api报错 request invalid, validate usage and try again

项目场景: 调用zoomeye的api接口进行数据拿取 问题描述 之前接口一直通着今天突然报错,以下为源代码 pip install zoomeye from zoomeye.sdk import ZoomEye zm ZoomEye(api_key"34A8B452-D874-C63E0-8471-F3D4f89766f") zm.dork_search(a…

Python 将CSV文件转为PDF文件

CSV文件通常用于存储大量的数据,而PDF文件则是一种通用的文档格式,便于与他人共享和打印。将CSV文件转换成PDF文件可以帮助我们更好地管理和展示数据。本文将介绍如何通过Python编程将CSV文件导出为PDF文件。 Python Excel库安装及介绍 在 Python 中&am…

《手把手教你》系列练习篇之12-python+ selenium自动化测试(详细教程)

1. 简介 前面文章我们了解了如何获取元素的text属性值,和判断元素是否显示在页面(is_displayed()方法),本文我们来学习下,判断一个控件是否被选中状态、获取页面元素的大小、组合键-全选文字、组合键-退格键删除文本和…

农业乡村振兴,绿意盎然谱新篇

乡村振兴,不仅是经济的繁荣,更是文化的传承和生态的保护。让我们以更加饱满的热情,投身到乡村建设中来,助力农业现代化,提升农村居民生活品质。 农业乡村振兴的吴总说:在这片热土上,农业承载着国…

简单聊聊大数据分析的方法有什么

大数据分析是指对规模巨大的数据集合进行的分析过程。 这些数据集合通常具有以下几个特点,可以概括为5个V: 1.数据量大(Volume):大数据分析处理的数据量巨大,远远超出了传统数据处理软件的能力范围。 2.…

Diffusers代码学习: IP-Adapter

从操作的角度来看,IP-Adapter和图生图是很相似的,都是有一个原始的图片,加上提示词,生成目标图片。但它们的底层实现方式是完全不一样的,我们通过源码解读来看一下。以下是ip adapter的实现方式 # 以下代码为程序运行…

语音降噪算法库介绍

一.语音降噪技术方向介绍 软件上进行语音降噪目前主要是两个方向:传统降噪算法和AI降噪算法,他们各有千秋,目前看他们各有千秋,有各自适用场景。 推荐一个不错的人工智能学习网站,通俗易懂,内容全面&#…

【Python报错】已解决AttributeError: list object has no attribute items ( Solved )

解决Python报错:AttributeError: list object has no attribute ‘items’ (Solved) 在Python中,AttributeError通常表示你试图访问的对象没有你请求的属性或方法。如果你遇到了AttributeError: list object has no attribute items的错误,这…

Si3N4/SiC纳米复相陶瓷综合性能明显提升 下游可应用范围广泛

Si3N4/SiC纳米复相陶瓷综合性能明显提升 下游可应用范围广泛 Si3N4/SiC纳米复相陶瓷,是以碳化硅(SiC)纳米颗粒为第二相,弥散进入氮化硅(Si3N4)基体相制备得到的新型陶瓷材料,对碳化硅陶瓷具有强…

【AIOT-Robot】3D pos 相关

1. Mediapipe 3D detection 使用移动增强现实(AR)会话数据(session data),开发了新的数据pipeline。大部分智能手机现在都具备了增强现实的功能,在这个过程中捕捉额外的信息,包括相机姿态、稀疏的3D点云、估计的光照和平面。 利用相机的姿势、检测到的平面、估计的照明,来生…

从LangChain迈出学习人工智能第一步入门指南

什么是langchain LangChain是一个用于开发由语言模型驱动的应用程序的框架,致力于简化AI模型应用的开发.简单来说,langchain就是一个帮助开发者轻松完成AI模型应用开发的框架,现在支持python和js两个版本,它集成多种大语言模型及第三方api. 对于使用langchain,把它当作一个第三…

禁用layui树形表格的多选框checkbox

1. 背景 在使用树形表格渲染数据时,需要对数据进行批量操作。相对于选中数据后,再做错误提示。直接把数据的多选框禁用掉更加直观。 2. 实现 DisabledTableCheckBox: () > {// 获取所有行 var tableElem $(".layui-table-fixed-l");var …

Vue3+vite部署nginx的二级目录,使用hash模式

修改router访问路径 import { createRouter, createWebHashHistory } from vue-routerconst router createRouter({history: createWebHashHistory (/mall4pc-bbc/),routes: [XXX,] })配置package.json文件 "build:testTwo": "vite build --mode testing --ba…

【管理咨询宝藏128】埃森哲大型制造型集团五年发展战略规划项目规划方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏128】ACC大型制造型集团五年发展战略规划项目规划方案 【格式】PDF版本 【关键词】战略规划、制造型企业、埃森哲 【核心观点】 - 中国消费者正…

5G发牌五周年丨移远通信:全面发力,加快推进5G技术服务社会发展

2024年6月6日,正值中国5G商用牌照发牌五周年。根据移动通信“十年一代”的规律,5G已走过一半征程。在过去的五年时间里,5G技术从萌芽到成熟,深刻改变了工业、农业、医疗及消费端等各个领域的发展脉络。无论是无人机配送、自动驾驶…

PMP学习和考试难度分析

PMP(项目管理专业人士)考试目前是全球范围内比较具权威性和认可度的项目管理证书之一。因此PMP考试的难度是一个备受关注的话题。根据我们以往的学员经验我从不同角度解析PMP考试的难度,并提供一些应对挑战的建议。希望对大家有所帮助。 PMP考…