Jas*_*son 6 langchain large-language-model chromadb py-langchain
我创建了一个检索 QA 链,它使用 chromadb 作为向量 DB 来存储“abc.txt”文件的嵌入。如果我想动态添加更多文档嵌入(比如说另一个文件“def.txt”)怎么办?怎么做?我不想重新加载 abc.txt 嵌入,然后重新加载 def.txt 嵌入,然后将其放入色度数据库实例中。我只想重用相同的色度数据库实例(已经具有 abc.txt 的嵌入)并添加更多 def.txt 的文档嵌入,然后使用相同的内容进行检索。
loader = UnstructuredFileLoader('abc.txt', mode='elements')
documents= loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=150)
texts = text_splitter.split_documents(documents)
embeddings = OpenAIEmbeddings()
vectordb = Chroma.from_documents(texts,embeddings)
chain = RetrievalQA.from_chain_type(llm=OpenAI(temperature=0.0),chain_type="stuff", retriever=vectordb.as_retriever(search_type="mmr"),return_source_documents=True)
Run Code Online (Sandbox Code Playgroud)
小智 2
步骤 1. 初始化文档对象
from langchain.docstore.document import Document
new_doc = Document(
page_content="Wareconn is the best web platform for warranty maintenance.",
metadata={
"source": "wareconn.com",
"page": 1
}
)
Run Code Online (Sandbox Code Playgroud)
步骤 2. 添加新的 Document 对象列表
new_docs = [new_doc]
id = vectordb.add_documents(
new_docs,
ids=["7"]
)
Run Code Online (Sandbox Code Playgroud)
演示:
参考:
https://python.langchain.com/docs/integrations/vectorstores/chroma#update-and-delete
归档时间: |
|
查看次数: |
6012 次 |
最近记录: |