Ada*_*rry 4 word-embedding langchain chromadb
我是 Chroma 数据库(以及相关的 python 库)的全新用户。
当我调用geta时collection,嵌入总是none,即使在将文档添加到集合时显式设置/定义了嵌入(因此生成嵌入不会成为问题 - 我不认为)。
对于以下代码(Python 3.10,chromadb 0.3.26),我希望在返回的字典中看到嵌入列表,但它是none.
import chromadb
chroma_client = chromadb.Client()
collection = chroma_client.create_collection(name="my_collection")
collection.add(
embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
documents=["This is a document", "This is another document"],
metadatas=[{"source": "my_source"}, {"source": "my_source"}],
ids=["id1", "id2"]
)
print(collection.get())
Run Code Online (Sandbox Code Playgroud)
输出:
{'ids': ['id1', 'id2'], 'embeddings': None, 'documents': ['This is a document', 'This is another document'], 'metadatas': [{'source': 'my_source'}, {'source': 'my_source'}]}
Run Code Online (Sandbox Code Playgroud)
query使用代替时不会出现同样的问题get:
print(collection.query(query_embeddings=[[1.2, 2.3, 4.4]], include=["embeddings"]))
Run Code Online (Sandbox Code Playgroud)
输出:
{'ids': [['id1', 'id2']], 'embeddings': [[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]]], 'documents': None, 'metadatas': None, 'distances': None}
Run Code Online (Sandbox Code Playgroud)
使用时也会出现同样的问题langchain。
朋友们有什么想法吗?:-)
小智 12
根据文档https://docs.trychroma.com/usage-guide默认情况下排除嵌入以提高性能:
使用 get 或 query 时,您可以使用 include 参数来指定要返回的数据 - 任何嵌入、文档、元数据,以及查询距离。默认情况下,Chroma 将返回文档、元数据以及查询结果的距离。为了性能,默认情况下会排除嵌入,并且始终返回 id。
您可以在使用时包含嵌入,get如下所示:
print(collection.get(include=['embeddings', 'documents', 'metadatas']))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4419 次 |
| 最近记录: |