Spaces:
Runtime error
Runtime error
File size: 2,370 Bytes
a52eecd 02e7265 a52eecd 02e7265 a52eecd bb37df0 a52eecd 02e7265 5d493ac a52eecd 02e7265 a52eecd 3dae580 a52eecd bb37df0 a52eecd bb37df0 7607fec bb37df0 9abd65a 45f9404 9abd65a bb37df0 a52eecd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
import streamlit as st
# from streamlit_extras.add_vertical_space import add_vertical_space
import os
import pickle
from PyPDF2 import PdfReader
from langchain.document_loaders import UnstructuredPDFLoader, OnlinePDFLoader, PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.llms import OpenAI,AzureOpenAI
from langchain.chains.question_answering import load_qa_chain
from langchain.callbacks import get_openai_callback
# Sidebar contents
with st.sidebar:
st.title('🤗💬 LLM Chat App')
st.markdown('''
## About
This app is an LLM-powered chatbot built using:
- [Streamlit](https://streamlit.io/)
- [LangChain](https://python.langchain.com/)
- [OpenAI](https://platform.openai.com/docs/models) LLM model
''')
# add_vertical_space(5)
st.write('Made by Nick')
def main():
st.header("智能点餐机器人 💬")
# # embeddings
store_name = "coffee"
if os.path.exists(f"{store_name}.pkl"):
with open(f"{store_name}.pkl", "rb") as f:
VectorStore = pickle.load(f)
st.write('Embeddings Loaded from the Disk')
else:
st.write('Reading from prompt ...')
loader = PyPDFLoader("./咖啡语料.pdf")
data = loader.load()
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=512,
chunk_overlap=128,
length_function=len
)
texts = text_splitter.split_documents(data)
embeddings = OpenAIEmbeddings(chunk_size = 1)
VectorStore = FAISS.from_texts([t.page_content for t in texts], embedding=embeddings)
with open(f"{store_name}.pkl", "wb") as f:
pickle.dump(VectorStore, f)
query = st.text_input("Ask questions about Starbucks coffee:")
if query:
docs = VectorStore.similarity_search(query=query, k=3)
llm = AzureOpenAI(
engine="text-davinci-003",
model_name="text-davinci-003",
)
chain = load_qa_chain(llm=llm, chain_type="stuff")
with get_openai_callback() as cb:
response = chain.run(input_documents=docs, question=query)
print(cb)
st.write(response)
if __name__ == '__main__':
main() |