【AI大模型应用开发】【LlamaIndex教程】2. 存储模块:如何在 LlamaIndex 中使用自定义的向量数据库?(附代码)
同学小张 2024-07-04 14:31:04 阅读 72
大家好,我是 同学小张,持续学习C++进阶、OpenGL、WebGL知识技能和AI大模型应用实战案例,持续分享,欢迎大家点赞+关注,+v: jasper_8017 一起交流,共同学习和进步。
前面文章 两行代码就实现了文档的切分和向量化存储以及持久化存储。如果我们想用自定义的向量化数据库呢?
文章目录
0. 背景1. 在 LlamaIndex 中使用自定义的向量数据库2. 总结3. 参考
0. 背景
前面文章 两行代码就实现了文档的切分和向量化存储以及持久化存储。
<code>index = VectorStoreIndex.from_documents(documents)
# store it for later
index.storage_context.persist(persist_dir=PERSIST_DIR)
但是有时候我们更希望使用自己常用的向量数据库和向量化方式。下面以 chromadb 为例,介绍如何使用。
1. 在 LlamaIndex 中使用自定义的向量数据库
(1)环境准备
写代码之前,需要首先安装 LlamaIndex 中的 chromadb。
pip install -U llama-index-vector-stores-chroma -i https://pypi.tuna.tsinghua.edu.cn/simple
(2)创建一个chromadb 数据库的实例
db = chromadb.PersistentClient(path="D:\\GitHub\\LEARN_LLM\\LlamaIndex\\vector_store\\chroma_db")code>
(3)创建 chroma 数据库的 collection
chroma_collection = db.get_or_create_collection("quickstart")
(4)将 chroma_collection 使用 LlamaIndex 的 ChromaVectorStore 进行以下类型转换和封装,转换成 LlamaIndex 的 VectorStore。
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
(5)将 VectorStore 封装到 StorageContext 中
storage_context = StorageContext.from_defaults(vector_store=vector_store)
(6)创建 VectorStoreIndex 时,使用 from_documents 函数中的 storage_context 参数,将上面自定义的 storage_context 传入。
index = VectorStoreIndex.from_documents(
documents, storage_context=storage_context
)
完整代码如下:
import chromadb
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.vector_stores.chroma import ChromaVectorStore
from llama_index.core import StorageContext
# load some documents
documents = SimpleDirectoryReader("D:\\GitHub\\LEARN_LLM\\LlamaIndex\\data").load_data()
# initialize client, setting path to save data
db = chromadb.PersistentClient(path="D:\\GitHub\\LEARN_LLM\\LlamaIndex\\vector_store\\chroma_db")code>
# create collection
chroma_collection = db.get_or_create_collection("quickstart")
# assign chroma as the vector_store to the context
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
# create your index
index = VectorStoreIndex.from_documents(
documents, storage_context=storage_context
)
# create a query engine and query
query_engine = index.as_query_engine()
response = query_engine.query("什么是角色提示?")
print(response)
2. 总结
本文我们学习了如何在 LlamaIndex 中使用自定义的向量数据库,并详细介绍了其实现步骤。再总结一下,在 LlamaIndex 中使用自定义的向量数据库,最主要的是创建 LlamaIndex 的 VectorStore,然后将 VectorStore 封装到 StorageContext 中,最后将 StorageContext 传入 VectorStoreIndex 的 from_documents 函数中。
3. 参考
https://docs.llamaindex.ai/en/stable/understanding/storing/storing/
如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~
大家好,我是 同学小张,持续学习C++进阶、OpenGL、WebGL知识技能和AI大模型应用实战案例欢迎 点赞 + 关注 👏,持续学习,持续干货输出。+v: jasper_8017 一起交流💬,一起进步💪。
上一篇: 30天变现5位数,涨粉2w,用AI做治愈系插图,太香了!(附工具教程)
本文标签
【AI大模型应用开发】【LlamaIndex教程】2. 存储模块:如何在 LlamaIndex 中使用自定义的向量数据库?(附代码)
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。