/Users/liuxg/python/PDF-Summarizer-End-to-End-Project
$ cp ~/elastic/elasticsearch-8.12.0/config/certs/http_ca.crt .
$ ls http_ca.crt
http_ca.crt
### 创建环境变量文件
我们在自己的项目根目录下创建如下的 .env 文件:
**.env**
ES_USER=“elastic”
ES_PASSWORD=“q2rqAIphl-fx9ndQ36CO”
ES_ENDPOINT=“localhost”
OPENAI_API_KEY=“YourOpenAIkey”
请记得根据自己的 Elasticsearch 配置及 OpenAI key 进行相应的修改。
## 创建应用
我们在当前的目录下创建一个叫做 app.py 的文件。
### 导入依赖项
from dotenv import load_dotenv
import streamlit as st
from PyPDF2 import PdfReader
from streamlit_extras.add_vertical_space import add_vertical_space
from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings.openai import OpenAIEmbeddings
from elasticsearch import Elasticsearch, helpers
from langchain_community.vectorstores import ElasticsearchStore
from langchain.chains.question_answering import load_qa_chain
from langchain_community.llms import OpenAI
from langchain_community.callbacks import get_openai_callback
import os
### 创建 SideBar
Sidebar contents
with st.sidebar:
st.title(‘💬PDF Summarizer and Q/A App’)
st.markdown(‘’’
## About this application
You can built your own customized LLM-powered chatbot using:
- Streamlit
- LangChain
- OpenAI LLM model
''')
add_vertical_space(2)
st.write(' Why drown in papers when your chat buddy can give you the highlights and summary? Happy Reading. ')
add_vertical_space(2)
### 上传 PDF 文件
为了方便大家学习,我把一些示例的 PDF 文件进行上传。你可以在[地址]( )下载。
我们使用如下的代码来上传 PDF 文件:
pdf = st.file_uploader(“Upload your PDF File and Ask Questions”, type=“pdf”)
Streamlit 中的 st.file\_uploader 功能允许用户上传 PDF 文件,使他们能够交互式地选择和上传 PDF 文档,以便在 Streamlit Web 应用程序中进行进一步处理或分析。
我们使用如下的命令来运行代码:
app.py
from dotenv import load_dotenv
import streamlit as st
from PyPDF2 import PdfReader
from streamlit_extras.add_vertical_space import add_vertical_space
from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings.openai import OpenAIEmbeddings
from elasticsearch import Elasticsearch, helpers
from langchain_community.vectorstores import ElasticsearchStore
from langchain.chains.question_answering import load_qa_chain
from langchain_community.llms import OpenAI
from langchain_community.callbacks im