main.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from agent.config import load_config
  2. from langchain_text_splitters import RecursiveCharacterTextSplitter
  3. from langchain_experimental.text_splitter import SemanticChunker
  4. from langchain_community.embeddings import DashScopeEmbeddings
  5. from agent.config import load_config
  6. from langchain_community.document_loaders import PyMuPDFLoader
  7. from agent.config import load_config
  8. from langchain_community.vectorstores import Chroma
  9. import os
  10. def main():
  11. loader=PyMuPDFLoader("car_info.pdf")
  12. embedding_model=DashScopeEmbeddings(
  13. model="text-embedding-v4",
  14. dashscope_api_key=load_config().api_key,
  15. )
  16. text_splitter = RecursiveCharacterTextSplitter(
  17. separators=["\n\n", "\n", "。", "!", "?", ".", " ",""],
  18. chunk_size=500,
  19. chunk_overlap=100,
  20. length_function=len,
  21. )
  22. chuncks=text_splitter.split_documents(loader.load())
  23. vectorstore=Chroma.from_documents(
  24. documents=chuncks,
  25. embedding=embedding_model,
  26. collection_metadata={"hnsw:space": "cosine"},
  27. persist_directory="./chroma_db"
  28. )
  29. retrever=vectorstore.as_retriever(search_kwargs={"k": 3})
  30. results=retrever.invoke("汽车的主要组成部分有哪些?")
  31. print(results.page_content)
  32. if __name__ == "__main__":
  33. main()