Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -17,11 +17,11 @@ os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
|
17 |
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
|
18 |
OPENAI_TEMP = 0
|
19 |
|
20 |
-
PINECONE_KEY = os.environ
|
21 |
-
PINECONE_ENV = "asia-northeast1-gcp"
|
22 |
-
PINECONE_INDEX = "3gpp"
|
23 |
|
24 |
-
EMBEDDING_MODEL = "sentence-transformers/all-mpnet-base-v2"
|
25 |
|
26 |
# return top-k text chunks from vector store
|
27 |
TOP_K_DEFAULT = 10
|
@@ -47,8 +47,8 @@ MODEL_WARNING = "Please paste your OpenAI API Key from openai.com and press 'Ent
|
|
47 |
|
48 |
|
49 |
webui_title = """
|
50 |
-
#
|
51 |
-
|
52 |
"""
|
53 |
|
54 |
KEY_INIT = "Initialize Model"
|
@@ -56,21 +56,22 @@ KEY_SUBMIT = "Submit"
|
|
56 |
KEY_CLEAR = "Clear"
|
57 |
|
58 |
init_message = f"""Welcome to use 3GPP Chatbot, this demo toolkit is based on OpenAI with LangChain and Pinecone
|
59 |
-
1. Insert your OpenAI API key and click
|
60 |
-
2. Insert your Question and click
|
61 |
"""
|
62 |
|
63 |
#----------------------------------------------------------------------------------------------------------
|
64 |
#----------------------------------------------------------------------------------------------------------
|
65 |
|
66 |
-
def init_model(api_key):
|
67 |
try:
|
68 |
-
if api_key and api_key.startswith("sk-") and len(api_key) > 50
|
|
|
69 |
|
70 |
-
embeddings = HuggingFaceEmbeddings(model_name=
|
71 |
|
72 |
-
pinecone.init(api_key =
|
73 |
-
environment =
|
74 |
|
75 |
#llm = OpenAI(temperature=OPENAI_TEMP, model_name="gpt-3.5-turbo-0301")
|
76 |
|
@@ -79,7 +80,7 @@ def init_model(api_key):
|
|
79 |
|
80 |
chain = load_qa_chain(llm, chain_type="stuff")
|
81 |
|
82 |
-
db = Pinecone.from_existing_index(index_name =
|
83 |
embedding = embeddings)
|
84 |
|
85 |
return api_key, MODEL_DONE, chain, db, None
|
@@ -173,7 +174,7 @@ with gr.Blocks(
|
|
173 |
|
174 |
with gr.Row():
|
175 |
with gr.Column(scale=10):
|
176 |
-
|
177 |
label = "OpenAI API Key",
|
178 |
show_label = False,
|
179 |
value = OPENAI_API_KEY,
|
@@ -218,14 +219,49 @@ with gr.Blocks(
|
|
218 |
label="Vector similarity top_k",
|
219 |
interactive=True)
|
220 |
detail_panel = gr.Chatbot(label="Related Docs")
|
221 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
|
223 |
-
|
224 |
-
|
225 |
-
[api_textbox, model_statusbox, llm_chain, vector_db, chatbot])
|
226 |
-
init.click(init_model,
|
227 |
-
api_textbox,
|
228 |
-
[api_textbox, model_statusbox, llm_chain, vector_db, chatbot])
|
229 |
|
230 |
submit.click(user,
|
231 |
[query, chatbot],
|
|
|
17 |
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
|
18 |
OPENAI_TEMP = 0
|
19 |
|
20 |
+
PINECONE_KEY = os.environ.get("PINECONE_KEY", "")
|
21 |
+
PINECONE_ENV = os.environ.get("PINECONE_ENV", "asia-northeast1-gcp")
|
22 |
+
PINECONE_INDEX = os.environ.get("PINECONE_INDEX", "3gpp")
|
23 |
|
24 |
+
EMBEDDING_MODEL = os.environ.get("PINECONE_INDEX", "sentence-transformers/all-mpnet-base-v2")
|
25 |
|
26 |
# return top-k text chunks from vector store
|
27 |
TOP_K_DEFAULT = 10
|
|
|
47 |
|
48 |
|
49 |
webui_title = """
|
50 |
+
# OpenAI Chatbot Based on Vector Database
|
51 |
+
## Example of 3GPP
|
52 |
"""
|
53 |
|
54 |
KEY_INIT = "Initialize Model"
|
|
|
56 |
KEY_CLEAR = "Clear"
|
57 |
|
58 |
init_message = f"""Welcome to use 3GPP Chatbot, this demo toolkit is based on OpenAI with LangChain and Pinecone
|
59 |
+
1. Insert your OpenAI API key and click `{KEY_INIT}`
|
60 |
+
2. Insert your Question and click `{KEY_SUBMIT}`
|
61 |
"""
|
62 |
|
63 |
#----------------------------------------------------------------------------------------------------------
|
64 |
#----------------------------------------------------------------------------------------------------------
|
65 |
|
66 |
+
def init_model(api_key, emb_name, db_api_key, db_env, db_index):
|
67 |
try:
|
68 |
+
if (api_key and api_key.startswith("sk-") and len(api_key) > 50) and \
|
69 |
+
(emb_name and db_api_key and db_env and db_index):
|
70 |
|
71 |
+
embeddings = HuggingFaceEmbeddings(model_name=emb_name)
|
72 |
|
73 |
+
pinecone.init(api_key = db_api_key,
|
74 |
+
environment = db_env)
|
75 |
|
76 |
#llm = OpenAI(temperature=OPENAI_TEMP, model_name="gpt-3.5-turbo-0301")
|
77 |
|
|
|
80 |
|
81 |
chain = load_qa_chain(llm, chain_type="stuff")
|
82 |
|
83 |
+
db = Pinecone.from_existing_index(index_name = db_index,
|
84 |
embedding = embeddings)
|
85 |
|
86 |
return api_key, MODEL_DONE, chain, db, None
|
|
|
174 |
|
175 |
with gr.Row():
|
176 |
with gr.Column(scale=10):
|
177 |
+
llm_api_textbox = gr.Textbox(
|
178 |
label = "OpenAI API Key",
|
179 |
show_label = False,
|
180 |
value = OPENAI_API_KEY,
|
|
|
219 |
label="Vector similarity top_k",
|
220 |
interactive=True)
|
221 |
detail_panel = gr.Chatbot(label="Related Docs")
|
222 |
+
|
223 |
+
with gr.Tab("Database"):
|
224 |
+
with gr.Row():
|
225 |
+
emb_textbox = gr.Textbox(
|
226 |
+
label = "Embedding Model",
|
227 |
+
# show_label = False,
|
228 |
+
value = EMBEDDING_MODEL,
|
229 |
+
placeholder = "Paste Your Embedding Model Repo on HuggingFace",
|
230 |
+
lines=1,
|
231 |
+
interactive=True,
|
232 |
+
type='email')
|
233 |
+
with gr.Row():
|
234 |
+
db_api_textbox = gr.Textbox(
|
235 |
+
label = "Pinecone API Key",
|
236 |
+
# show_label = False,
|
237 |
+
value = PINECONE_KEY,
|
238 |
+
placeholder = "Paste Your Pinecone API Key (xx-xx-xx-xx-xx) and Hit ENTER",
|
239 |
+
lines=1,
|
240 |
+
interactive=True,
|
241 |
+
type='password')
|
242 |
+
with gr.Row():
|
243 |
+
db_env_textbox = gr.Textbox(
|
244 |
+
label = "Pinecone Environment",
|
245 |
+
# show_label = False,
|
246 |
+
value = PINECONE_ENV,
|
247 |
+
placeholder = "Paste Your Pinecone Environment (xx-xx-xx) and Hit ENTER",
|
248 |
+
lines=1,
|
249 |
+
interactive=True,
|
250 |
+
type='email')
|
251 |
+
db_index_textbox = gr.Textbox(
|
252 |
+
label = "Pinecone Index",
|
253 |
+
# show_label = False,
|
254 |
+
value = PINECONE_INDEX,
|
255 |
+
placeholder = "Paste Your Pinecone Index (xxxx) and Hit ENTER",
|
256 |
+
lines=1,
|
257 |
+
interactive=True,
|
258 |
+
type='email')
|
259 |
+
|
260 |
+
init_input = [llm_api_textbox, emb_textbox, db_api_textbox, db_env_textbox, db_index_textbox]
|
261 |
+
init_output = [llm_api_textbox, model_statusbox, llm_chain, vector_db, chatbot]
|
262 |
|
263 |
+
llm_api_textbox.submit(init_model, init_input, init_output)
|
264 |
+
init.click(init_model, init_input, init_output)
|
|
|
|
|
|
|
|
|
265 |
|
266 |
submit.click(user,
|
267 |
[query, chatbot],
|