| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from agent.config import load_config
- from langchain_text_splitters import RecursiveCharacterTextSplitter
- from langchain_experimental.text_splitter import SemanticChunker
- from langchain_community.embeddings import DashScopeEmbeddings
- from agent.config import load_config
- from langchain_community.document_loaders import PyMuPDFLoader
- from agent.config import load_config
- from langchain_community.vectorstores import Chroma
- import os
- def main():
- loader=PyMuPDFLoader("car_info.pdf")
- embedding_model=DashScopeEmbeddings(
- model="text-embedding-v4",
- dashscope_api_key=load_config().api_key,
- )
- text_splitter = RecursiveCharacterTextSplitter(
- separators=["\n\n", "\n", "。", "!", "?", ".", " ",""],
- chunk_size=500,
- chunk_overlap=100,
- length_function=len,
- )
- chuncks=text_splitter.split_documents(loader.load())
- vectorstore=Chroma.from_documents(
- documents=chuncks,
- embedding=embedding_model,
- collection_metadata={"hnsw:space": "cosine"},
- persist_directory="./chroma_db"
- )
- retrever=vectorstore.as_retriever(search_kwargs={"k": 3})
- results=retrever.invoke("汽车的主要组成部分有哪些?")
-
- print(results.page_content)
- if __name__ == "__main__":
- main()
|