700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > LangChain:基于ChatGPT对话私有数据

LangChain:基于ChatGPT对话私有数据

时间:2022-10-09 16:45:52

相关推荐

LangChain:基于ChatGPT对话私有数据

一、架构图:

二、思路:

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

三、核心代码:

# pip install langchain chromadb openai tiktokenimport osfrom langchain.document_loaders import TextLoaderfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.chains import ConversationalRetrievalChainfrom langchain.memory import ConversationBufferMemoryfrom langchain.llms import OpenAI# os.environ['OPENAI_API_KEY'] = 'ENTER YOUR API KEY'# 1、加载文件file_path = "./孔乙己.txt"loader = TextLoader(file_path)# 2、拆分文件pages = loader.load_and_split()embeddings = OpenAIEmbeddings()# 3、将拆分后的文本embeddings后存储到Vector数据库vectordb = Chroma.from_documents(pages, embedding=embeddings,persist_directory=".")vectordb.persist()# 4、保留对话记录到内存memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)# 5、将用户的query文本embeddings后到向量数据库查询近似的记录作为prompt,一起发送给LLM,获得结果self_qa = ConversationalRetrievalChain.from_llm(OpenAI(temperature=0.9), vectordb.as_retriever(), memory=memory)query = "孔乙己欠了酒店多少钱?"result = self_qa({"question": query})print("Answer:" + result["answer"])

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。