跳至主要內容

Chroma 向量数据库

技术笔记AI Agent向量数据库约 520 字大约 2 分钟

Chroma 向量数据库

Chroma是一个开源的向量数据库,专为存储和检索高维向量数据而设计。它在处理大规模机器学习和人工智能应用中的向量数据时表现出色,提供了高效的存储和快速的查询能力。

在本项目中,Chroma被用作主要的向量存储解决方案

配置:

pip install chromadb

使用示例:

    from langchain.vectorstores import Chroma
    from langchain.embeddings import OpenAIEmbeddings
    from langchain.text_splitter import CharacterTextSplitter
    from langchain.document_loaders import TextLoader
    # 加载文本数据
    loader = TextLoader('example.txt')
    documents = loader.load()
    # 分割文本数据
    text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
    texts = text_splitter.split_documents(documents)
    # 创建嵌入模型
    embeddings = OpenAIEmbeddings()
    # 创建Chroma向量存储
    vectorstore = Chroma.from_documents(texts, embeddings)
    # 查询向量存储
    query = "示例查询"
    docs = vectorstore.similarity_search(query)
    for doc in docs:
        print(doc.page_content)

数据持久化

Chroma支持数据持久化,允许用户将向量数据存储在磁盘上,以便在应用程序重启后继续使用。可以通过指定persist_directory参数来启用持久化功能。