不可能找到使用 Langchain 创建的 Chroma Vector DB 集合

问题描述 投票:0回答:1

我正在使用此代码创建色度矢量数据库(我已跳过代码的非重要部分)

    import os
    from langchain_community.vectorstores import Chroma
    from langchain_openai import OpenAIEmbeddings    

    current_dir = os.path.dirname(os.path.abspath(__file__))
    file_path = os.path.join(current_dir, "books", "ulysses.txt")
    persistent_directory = os.path.join(current_dir, "db", "chroma_db_Ulysse")
    
    db = Chroma.from_documents(
            docs, embeddings, persist_directory=persistent_directory,collection_name="CollectionUlysse")

它工作正常,除了当我尝试使用 Chroma 访问此数据库时,它找不到该集合:

    import chromadb
    import os
    from chromadb.config import Settings
    
    
    current_dir = os.path.dirname(os.path.abspath(__file__))
    persistent_directory = os.path.join(current_dir, "db", "chroma_db_Ulysse_is_back")
    
    print(f"Chemin du répertoire persistant : {persistent_directory}")
    client = chromadb.Client(Settings(persist_directory=persistent_directory))
    
    collections = client.list_collections()
    collection_names = [col.name for col in collections]
    print("Available collections :", collection_names)
Available collections : []

chromadb lib 和 Chroma lib frol langchain 之间有区别吗?

langchain chromadb
1个回答
0
投票

您可以尝试在配置中使用

PersistentClient
而不是
Client
吗?
Client
用于通过环境变量或设置进行编程配置。在最近的版本中引入了新的设置,这可能会使提供
persistent_directory
不足以创建持久客户端。

我用 Langchain 创建了一个持久目录🦜🔗运行你的代码并得出相同的结论。检查 sqlite3 文件后,我可以确认该集合确实已创建,并使用

PersistentClient
解决了问题:

import chromadb
import os
from chromadb.config import Settings


client = chromadb.PersistentClient("db")

collections = client.list_collections()
collection_names = [col.name for col in collections]
print("Available collections :", collection_names)
© www.soinside.com 2019 - 2024. All rights reserved.