
LangChain 一个完整的例子
简介
这是该 LangChain
极简入门系列的最后一讲。我们将利用过去9讲学习的知识,来完成一个具备完整功能集的LLM应用。该应用基于 LangChain
框架,以某 PDF
文件的内容为知识库,提供给用户基于该文件内容的问答能力。
我们利用 LangChain
的QA chain,结合 Chroma
来实现PDF文档的语义化搜索。示例代码所引用的是AWS Serverless
Developer Guide,该PDF文档共84页。
安装必要的 Python
包
!pip install -q langchain==0.0.235 openai chromadb pymupdf tiktoken
设置OpenAI环境
import os
os.environ['OPENAI_API_KEY'] = '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'
下载PDF文件AWS Serverless Developer Guide
!wget https://docs.aws.amazon.com/pdfs/serverless/latest/devguide/serverless-core.pdf
PDF_NAME = 'serverless-core.pdf'
加载PDF文件
from langchain.document_loaders import PyMuPDFLoader
docs = PyMuPDFLoader(PDF_NAME).load()
print (f'There are {len(docs)} document(s) in {PDF_NAME}.')
print (f'There are {len(docs[0].page_content)} characters in the first page of your document.')
拆分文档并存储文本嵌入的向量数据
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import Chroma
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
split_docs = text_splitter.split_documents(docs)
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(split_docs, embeddings, collection_name="serverless_guide")
基于OpenAI创建QA链
from langchain.llms import OpenAI
from langchain.chains.question_answering import load_qa_chain
llm = OpenAI(temperature=0)
chain = load_qa_chain(llm, chain_type="stuff")
基于提问,进行相似性查询
query = "What is the use case of AWS Serverless?"
similar_docs = vectorstore.similarity_search(query, 3, include_metadata=True)
基于相关文档,利用QA链完成回答
chain.run(input_documents=similar_docs, question=query)
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
640
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术