请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

对Chroma有疑问

老师好,对Chroma的使用有疑问,之前在做demo的时候,都是将文本向量直接实例成本地的文件夹,没有启动Chroma并连接Chroma这个步骤,导致我以为向量数据库是不能存内容的,但是看了你的实例,所以Chroma和mysql这种数据库是一样的能直接把向量存进去?

之前做demo学习用的是from langchain_chroma import Chroma
查询用的是as_retriever

这里有点晕,不太明白
图片描述

正在回答

1回答

你好,chroma是支持持久化(本地存储)

langchain_chroma是对chroma api的封装

from langchain_chroma import Chroma


  • chroma 支持client/server模式

server模式启动的chroma
chroma run --path ./data


数据会持久化在data目录


首次使用添加完数据以后

chroma_client = chromadb.HttpClient(host="localhost", port=8000)
embedding_db = Chroma.from_documents(documents,
                                     embedding_cls.get_embedding_fun(),
                                     client=chroma_client,
                                     collection_name="zhidu_db2",
                                     )



第二次使用,直接输入集合名就可以获取(确保chroma服务启动状态)

import chromadb
from langchain_chroma import Chroma
chroma_client = chromadb.HttpClient(host="localhost", port=8000)
zhidu_db = Chroma("zhidu_db2", 
                  embedding_cls.get_embedding_fun(), 
                  client=chroma_client)



  • 另外一种是本地持久化,就是上面你说的本地文件目录


embedding_db = Chroma.from_documents(documents,
                                     embedding_cls.get_embedding_fun(),
                                     persist_directory='./db',
                                     collection_name="zhidu_db2",
                                     )

第二次使用

zhidu_db = Chroma("zhidu_db2", 
                  embedding_cls.get_embedding_fun(), 
                  persist_directory='./data')



创建完向量集合之后,会通过collection集合命令来获取已经存储在本地或者存储远程服务器上的向量数据


可以用上面两种方式,都试一下

如果有任何疑问,都可以提出来


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号