Vageesh1 commited on
Commit
d6ede21
Β·
1 Parent(s): c28fe9a

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +71 -0
  2. requirements.txt +6 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langchain.embeddings.openai import OpenAIEmbeddings
2
+ from langchain.chat_models import ChatOpenAI
3
+ from langchain.chains import ConversationalRetrievalChain
4
+ from langchain.document_loaders.csv_loader import CSVLoader
5
+ from langchain.vectorstores import FAISS
6
+ import tempfile
7
+ from streamlit_chat import message
8
+ import streamlit as st
9
+
10
+ import os
11
+ import sys
12
+ import pandas as pd
13
+
14
+ user_api_key = st.sidebar.text_input(
15
+ label="#### Your OpenAI API key πŸ‘‡",
16
+ placeholder="Paste your openAI API key, sk-",
17
+ type="password")
18
+
19
+ file_path='./personality_less.csv'
20
+
21
+
22
+ loader = CSVLoader(file_path=file_path, encoding="utf-8", csv_args={
23
+ 'delimiter': ','})
24
+
25
+ data = loader.load()
26
+
27
+ embeddings = OpenAIEmbeddings()
28
+ vectorstore = FAISS.from_documents(data, embeddings)
29
+
30
+ chain = ConversationalRetrievalChain.from_llm(
31
+ llm = ChatOpenAI(temperature=0.0,model_name='gpt-3.5-turbo'),
32
+ retriever=vectorstore.as_retriever())
33
+
34
+ def conversational_chat(query):
35
+ result = chain({"question": query,
36
+ "chat_history": st.session_state['history']})
37
+ st.session_state['history'].append((query, result["answer"]))
38
+
39
+ return result["answer"]
40
+
41
+ if 'history' not in st.session_state:
42
+ st.session_state['history'] = []
43
+
44
+ if 'generated' not in st.session_state:
45
+ st.session_state['generated'] = ["Hello ! Ask me anything about " + " πŸ€—"]
46
+
47
+ if 'past' not in st.session_state:
48
+ st.session_state['past'] = ["Hey ! πŸ‘‹"]
49
+
50
+ #container for the chat history
51
+ response_container = st.container()
52
+ #container for the user's text input
53
+ container = st.container()
54
+
55
+ with container:
56
+ with st.form(key='my_form', clear_on_submit=True):
57
+
58
+ user_input = st.text_input("Query:", placeholder="Talk about your csv data here (:", key='input')
59
+ submit_button = st.form_submit_button(label='Send')
60
+
61
+ if submit_button and user_input:
62
+ output = conversational_chat(user_input)
63
+
64
+ st.session_state['past'].append(user_input)
65
+ st.session_state['generated'].append(output)
66
+
67
+ if st.session_state['generated']:
68
+ with response_container:
69
+ for i in range(len(st.session_state['generated'])):
70
+ message(st.session_state["past"][i], is_user=True, key=str(i) + '_user', avatar_style="big-smile")
71
+ message(st.session_state["generated"][i], key=str(i), avatar_style="thumbs")
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ langchain
2
+ streamlit
3
+ openai
4
+ tiktoken
5
+ faiss-cpu
6
+ streamlit_chat