Skip to content

Commit cea4ae8

Browse files
Add files via upload
1 parent 497f11c commit cea4ae8

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
from dotenv import dotenv_values
2+
from langchain.chains import RetrievalQA
3+
from langchain.document_loaders import PyPDFLoader
4+
from langchain.embeddings import OpenAIEmbeddings
5+
from langchain.llms import OpenAI
6+
from langchain.vectorstores import Chroma
7+
import os
8+
import streamlit as st
9+
from streamlit_chat import message
10+
11+
api_keys=dotenv_values()
12+
os.environ['OPENAI_API_KEY'] = dotenv_values()['openai_api_key'] #set environment variable
13+
folder_path =r"some_folder"
14+
files = os.listdir(folder_path)
15+
docs = []
16+
for file in files:
17+
loader = PyPDFLoader(rf"{folder_path}\{file}")
18+
page = loader.load_and_split()[0]
19+
docs.append(page)
20+
21+
embeddings = OpenAIEmbeddings()
22+
db = Chroma.from_documents(docs, embeddings)
23+
retriever = db.as_retriever(search_kwargs={'k': len(docs)})
24+
25+
qa = RetrievalQA.from_chain_type(llm=OpenAI(model_name='gpt-4', temperature=0),
26+
chain_type="stuff",
27+
retriever=retriever,
28+
verbose=True)
29+
30+
st.set_page_config(
31+
page_title="Invoice AutoQuery",
32+
page_icon=":robot:"
33+
)
34+
35+
st.header("Invoice AutoQuery :robot_face:")
36+
37+
if 'ai' not in st.session_state:
38+
st.session_state['ai'] = []
39+
if 'human' not in st.session_state:
40+
st.session_state['human'] = []
41+
42+
def get_text():
43+
input_text = st.text_input('Enter your query here:', key='input', placeholder='Your q?')
44+
return input_text
45+
46+
47+
user_input=get_text()
48+
if user_input:
49+
output = qa.run(user_input)
50+
51+
st.session_state['human'].append(user_input)
52+
st.session_state['ai'].append(output)
53+
54+
if st.session_state['ai']:
55+
for i in range(len(st.session_state['ai']) -1, -1, -1):
56+
message(st.session_state['ai'][i], key=str(i))
57+
message(st.session_state['human'][i], is_user=True, key=str(i) + '_user')
58+
59+

0 commit comments

Comments
 (0)