Spaces:
Runtime error
Runtime error
Commit
·
3432c0b
1
Parent(s):
2b129b9
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,15 +1,17 @@
|
|
| 1 |
import os
|
|
|
|
| 2 |
from typing import Optional, Tuple
|
| 3 |
|
| 4 |
import gradio as gr
|
| 5 |
from query_data import get_chain
|
| 6 |
from threading import Lock
|
| 7 |
import pinecone
|
| 8 |
-
from langchain.vectorstores import
|
| 9 |
from langchain.embeddings.openai import OpenAIEmbeddings
|
| 10 |
|
|
|
|
| 11 |
|
| 12 |
-
|
| 13 |
|
| 14 |
PINECONE_API_KEY = os.getenv("PINECONE_API_KEY")
|
| 15 |
PINECONE_API_ENV = os.getenv("PINECONE_API_ENV")
|
|
@@ -22,6 +24,12 @@ pinecone.init(
|
|
| 22 |
)
|
| 23 |
|
| 24 |
index_name = PINECONE_INDEX
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
vectorstore = Pinecone.from_existing_index(index_name=index_name, embedding=embeddings)
|
| 26 |
|
| 27 |
chain = get_chain(vectorstore)
|
|
@@ -39,18 +47,35 @@ class ChatWrapper:
|
|
| 39 |
self.lock.acquire()
|
| 40 |
try:
|
| 41 |
history = history or []
|
|
|
|
| 42 |
# If chain is None, that is because no API key was provided.
|
| 43 |
# if chain is None:
|
| 44 |
-
#
|
| 45 |
# return history, history
|
| 46 |
# Set OpenAI key
|
| 47 |
|
| 48 |
import openai
|
| 49 |
openai.api_key = os.getenv("OPENAI_API_KEY")
|
| 50 |
-
|
| 51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
history.append((inp, output))
|
| 53 |
-
print(
|
| 54 |
except Exception as e:
|
| 55 |
raise e
|
| 56 |
finally:
|
|
@@ -104,4 +129,4 @@ with block:
|
|
| 104 |
# )
|
| 105 |
|
| 106 |
# block.launch(debug=True)
|
| 107 |
-
block.launch(debug=True, auth=('admin', 'Twimbit@2019'), auth_message='enter username password to proceed further')
|
|
|
|
| 1 |
import os
|
| 2 |
+
import time
|
| 3 |
from typing import Optional, Tuple
|
| 4 |
|
| 5 |
import gradio as gr
|
| 6 |
from query_data import get_chain
|
| 7 |
from threading import Lock
|
| 8 |
import pinecone
|
| 9 |
+
from langchain.vectorstores import Pinecone
|
| 10 |
from langchain.embeddings.openai import OpenAIEmbeddings
|
| 11 |
|
| 12 |
+
from dotenv import load_dotenv
|
| 13 |
|
| 14 |
+
load_dotenv()
|
| 15 |
|
| 16 |
PINECONE_API_KEY = os.getenv("PINECONE_API_KEY")
|
| 17 |
PINECONE_API_ENV = os.getenv("PINECONE_API_ENV")
|
|
|
|
| 24 |
)
|
| 25 |
|
| 26 |
index_name = PINECONE_INDEX
|
| 27 |
+
|
| 28 |
+
embeddings = OpenAIEmbeddings()
|
| 29 |
+
|
| 30 |
+
# with open("posts.pkl", "rb") as f:
|
| 31 |
+
# vectorstore = pickle.load(f)
|
| 32 |
+
|
| 33 |
vectorstore = Pinecone.from_existing_index(index_name=index_name, embedding=embeddings)
|
| 34 |
|
| 35 |
chain = get_chain(vectorstore)
|
|
|
|
| 47 |
self.lock.acquire()
|
| 48 |
try:
|
| 49 |
history = history or []
|
| 50 |
+
|
| 51 |
# If chain is None, that is because no API key was provided.
|
| 52 |
# if chain is None:
|
| 53 |
+
# history.append((inp, "Please paste your OpenAI key to use"))
|
| 54 |
# return history, history
|
| 55 |
# Set OpenAI key
|
| 56 |
|
| 57 |
import openai
|
| 58 |
openai.api_key = os.getenv("OPENAI_API_KEY")
|
| 59 |
+
start_time = time.time()
|
| 60 |
+
chain_obj = chain({"question": inp, "chat_history": history})
|
| 61 |
+
print('=======time===== : ' + str(time.time() - start_time))
|
| 62 |
+
|
| 63 |
+
output = chain_obj["answer"]
|
| 64 |
+
|
| 65 |
+
sources = chain_obj['source_documents']
|
| 66 |
+
|
| 67 |
+
source_link = []
|
| 68 |
+
sources_str = 'Sources:'
|
| 69 |
+
for source in sources:
|
| 70 |
+
if source.metadata['source'] not in source_link:
|
| 71 |
+
source_link.append(source.metadata['source'])
|
| 72 |
+
sources_str += '\n' + source.metadata['source']
|
| 73 |
+
|
| 74 |
+
if 'Unfortunately, our current pool of insights does not have an answer to this.' not in output:
|
| 75 |
+
output += '\n\n' + sources_str
|
| 76 |
+
|
| 77 |
history.append((inp, output))
|
| 78 |
+
# print(chain_obj)
|
| 79 |
except Exception as e:
|
| 80 |
raise e
|
| 81 |
finally:
|
|
|
|
| 129 |
# )
|
| 130 |
|
| 131 |
# block.launch(debug=True)
|
| 132 |
+
# block.launch(debug=True, auth=('admin', 'Twimbit@2019'), auth_message='enter username password to proceed further')
|