ChromaDB手动插入Embedding后查询结果中embeddings为None的问题求助
ChromaDB手动插入Embedding后查询结果中embeddings为None的问题求助
我最近在测试往ChromaDB里手动插入embedding数据,代码里已经在add方法里传了embeddings参数,但查询结果里的embeddings字段始终是None,这让我特别困惑。
以下是我的完整测试代码:
import chromadb import numpy as np client = chromadb.Client() collection = client.create_collection(name="test") def get_embedding(text): a = np.random.rand(384) print(f"Generated embedding: {a}") return a documents = ["This is a document.", "Another document.", "And a third document."] embeddings = [get_embedding(doc) for doc in documents] print(f"Embeddings to be added: {embeddings}") collection.add( documents=documents, embeddings=embeddings, ids=["doc1", "doc2", "doc3"] ) query_embedding = get_embedding("This is a query.") results = collection.query(query_embeddings=[query_embedding], n_results=1) print("Query results:", results)
运行后得到的输出如下:
Generated embedding: [5.94073439e-01 3.85563925e-01 ......... ] Query results: {'ids': [['doc3']], 'embeddings': None, 'documents': [['And a third document.']], 'uris': None, 'data': None, 'metadatas': [[None]], 'distances': [[62.61347579956055]], 'included': [<IncludeEnum.distances: 'distances'>, <IncludeEnum.documents: 'documents'>, <IncludeEnum.metadatas: 'metadatas'>]}
从输出能看到,我生成的embedding是正常的,但查询返回的结果里embeddings就是None。有没有朋友知道这是哪里出了问题?是不是我在插入或者查询的时候漏了什么关键参数?
备注:内容来源于stack exchange,提问作者Ethan
相关产品推荐
相关产品推荐

