当前位置:   article > 正文

LangChain:基于ChatGPT对话私有数据_langchain textloader

langchain textloader

一、架构图:

二、思路:

  1. 通过embbeding获得文本的语义,通过向量数据库获得近似记录,通过chatGPT得到问答内容
  2. 将文件拆分并embbeding后存入向量数据库
  3. 将用户问题embbeding后从向量数据库中找近似的文档数据作为prompt上下文

三、核心代码:

  1. # pip install langchain chromadb openai tiktoken
  2. import os
  3. from langchain.document_loaders import TextLoader
  4. from langchain.embeddings import OpenAIEmbeddings
  5. from langchain.vectorstores import Chroma
  6. from langchain.chains import ConversationalRetrievalChain
  7. from langchain.memory import ConversationBufferMemory
  8. from langchain.llms import OpenAI
  9. # os.environ['OPENAI_API_KEY'] = 'ENTER YOUR API KEY'
  10. # 1、加载文件
  11. file_path = "./孔乙己.txt"
  12. loader = TextLoader(file_path)
  13. # 2、拆分文件
  14. pages = loader.load_and_split()
  15. embeddings = OpenAIEmbeddings()
  16. # 3、将拆分后的文本embeddings后存储到Vector数据库
  17. vectordb = Chroma.from_documents(pages, embedding=embeddings,
  18. persist_directory=".")
  19. vectordb.persist()
  20. # 4、保留对话记录到内存
  21. memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
  22. # 5、将用户的query文本embeddings后到向量数据库查询近似的记录作为prompt,一起发送给LLM,获得结果
  23. self_qa = ConversationalRetrievalChain.from_llm(OpenAI(temperature=0.9), vectordb.as_retriever(), memory=memory)
  24. query = "孔乙己欠了酒店多少钱?"
  25. result = self_qa({"question": query})
  26. print("Answer:" + result["answer"])
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/357389
推荐阅读
相关标签
  

闽ICP备14008679号