nicoladisabato commited on
Commit
8744ba9
·
1 Parent(s): 84bd684

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -11
app.py CHANGED
@@ -11,6 +11,7 @@ from langchain.document_transformers import Html2TextTransformer
11
  from langchain.callbacks import get_openai_callback
12
  from langchain.text_splitter import RecursiveCharacterTextSplitter
13
  from langchain.memory import ConversationBufferWindowMemory
 
14
 
15
  import asyncio
16
  from langchain.docstore.document import Document
@@ -19,13 +20,24 @@ import os
19
  from dotenv import load_dotenv
20
 
21
 
 
 
 
 
 
 
 
 
 
 
 
22
  #loading openai api keys
23
  load_dotenv()
24
 
25
 
26
  st.title("🤖 Chat with your website 🤖")
27
 
28
- input_url = st.text_input("Inserisci url:")
29
 
30
  question = st.text_area("Chiedi pure:")
31
 
@@ -57,6 +69,10 @@ memory = ConversationBufferWindowMemory(
57
  )
58
 
59
 
 
 
 
 
60
  if st.button("Invia", type="primary"):
61
 
62
  loader = AsyncHtmlLoader(input_url)
@@ -79,18 +95,20 @@ if st.button("Invia", type="primary"):
79
  embedding=openai_embeddings)
80
 
81
  retriever = vectordb.as_retriever(search_kwargs={"k": 3})
82
- llm = ChatOpenAI(model_name = "gpt-3.5-turbo", temperature=0)
83
  relevant_docs = retriever.get_relevant_documents(question)
84
 
 
 
85
 
86
- chain = ConversationalRetrievalChain.from_llm(
87
- llm,
88
- chain_type='stuff',
89
- retriever=retriever,
90
- memory=memory,
91
- combine_docs_chain_kwargs={"prompt": prompt},
92
- verbose=True
93
- )
94
 
95
  #qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever, chain_type_kwargs={"prompt": prompt})
96
 
@@ -99,8 +117,9 @@ if st.button("Invia", type="primary"):
99
 
100
  with get_openai_callback() as cb:
101
  #run the chain and generate response
102
- response = chain(question)
103
  print(cb)
104
 
 
105
  answer.write(response["answer"])
106
  st.write(relevant_docs)
 
11
  from langchain.callbacks import get_openai_callback
12
  from langchain.text_splitter import RecursiveCharacterTextSplitter
13
  from langchain.memory import ConversationBufferWindowMemory
14
+ from streamlit_chat import message
15
 
16
  import asyncio
17
  from langchain.docstore.document import Document
 
20
  from dotenv import load_dotenv
21
 
22
 
23
+
24
+ if 'conversation' not in st.session_state:
25
+ st.session_state['conversation'] = None
26
+ if 'messages' not in st.session_state:
27
+ st.session_state['messages'] = []
28
+
29
+
30
+
31
+ st.sidebar.title("URL")
32
+ input_url = st.sidebar.text_input("Inserisci url:")
33
+
34
  #loading openai api keys
35
  load_dotenv()
36
 
37
 
38
  st.title("🤖 Chat with your website 🤖")
39
 
40
+
41
 
42
  question = st.text_area("Chiedi pure:")
43
 
 
69
  )
70
 
71
 
72
+
73
+
74
+
75
+
76
  if st.button("Invia", type="primary"):
77
 
78
  loader = AsyncHtmlLoader(input_url)
 
95
  embedding=openai_embeddings)
96
 
97
  retriever = vectordb.as_retriever(search_kwargs={"k": 3})
98
+
99
  relevant_docs = retriever.get_relevant_documents(question)
100
 
101
+ if st.session_state['conversation'] is None:
102
+ llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
103
 
104
+ st.session_state['conversation'] = ConversationalRetrievalChain.from_llm(
105
+ llm,
106
+ chain_type='stuff',
107
+ retriever=retriever,
108
+ memory=memory,
109
+ combine_docs_chain_kwargs={"prompt": prompt},
110
+ verbose=True
111
+ )
112
 
113
  #qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever, chain_type_kwargs={"prompt": prompt})
114
 
 
117
 
118
  with get_openai_callback() as cb:
119
  #run the chain and generate response
120
+ response = st.session_state['conversation'](question)
121
  print(cb)
122
 
123
+
124
  answer.write(response["answer"])
125
  st.write(relevant_docs)