我想向嵌入并加载到 Chroma 的文档添加额外的元数据。
我无法找到将元数据添加到使用
加载的文档的方法
Chroma.from_documents(documents, embeddings)
作为一种迂回方式,我通过添加所需的元数据将其加载到 chromadb 集合中并保留它
client = chromadb.PersistentClient(path="chromaDB")
collection = client.get_or_create_collection(name="test",
embedding_function=openai_ef,
metadata={"hnsw:space": "cosine"})
collection.add(
documents=documents,
ids=ids,
metadatas=metadata
)
这就是结果
collection.get(include=['embeddings','metadatas'])
输出:
{'ids': ['id0',
'id1',
'嵌入':[[-0.014580891467630863,
0.0003901976451743394,
0.00793908629566431,
-0.027648288756608963,
-0.009689063765108585,
0.010222840122878551,
-0.00946609303355217,
-0.002771923551335931,
-0.04675614833831787,
-0.02056729979813099,
0.014364678412675858,
...
{'物种':'XYZ','来源':'Flu.txt'},
{'物种':'ABC','来源':'Common_cold.txt'}],
“文件”:无,
“uris”:无,
“数据”:无}
现在我尝试使用
Chroma.from_documents()
从磁盘中保留的目录加载它
db = Chroma(persist_directory="chromaDB", embedding_function=embeddings)
但我没有看到任何加载的东西。
db.get()
结果是这样的,
db.get(include=['metadatas'])
输出:
{'ids': [],
“嵌入”:无,
“元数据”:[],
“文件”:无,
“uris”:无,
“数据”:无}
请帮忙。需要将元数据加载到正在加载的文件中。
我自己找到了答案。错过了发帖。 我很愚蠢,加载时没有提到集合名称。
与其这样做,
db = Chroma(persist_directory="chromaDB", embedding_function=embeddings)
这样做,
db = Chroma(persist_directory="chromaDB", embedding_function=embeddings, collection_name = 'your_collection_name')
在我的例子中,集合名称是'test'。
效果很好
我有一个旧版本的 Chromadb,导致元数据为 None。我必须 pip 安装最新的
pip install -U chromadb