Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -5,7 +5,8 @@ import ssl
|
|
5 |
from contextlib import closing
|
6 |
from typing import Optional, Tuple
|
7 |
import datetime
|
8 |
-
|
|
|
9 |
import boto3
|
10 |
import gradio as gr
|
11 |
import requests
|
@@ -18,7 +19,8 @@ from langchain import ConversationChain, LLMChain
|
|
18 |
|
19 |
from langchain.agents import load_tools, initialize_agent
|
20 |
from langchain.chains.conversation.memory import ConversationBufferMemory
|
21 |
-
from langchain.llms import OpenAI
|
|
|
22 |
from threading import Lock
|
23 |
|
24 |
# Console to variable
|
@@ -49,7 +51,7 @@ tmdb_bearer_token = os.environ["TMDB_BEARER_TOKEN"]
|
|
49 |
|
50 |
TOOLS_LIST = ['serpapi', 'wolfram-alpha', 'pal-math', 'pal-colored-objects', 'news-api'] #'google-search','news-api','tmdb-api','open-meteo-api'
|
51 |
TOOLS_DEFAULT_LIST = ['serpapi', 'wolfram-alpha', 'pal-math', 'pal-colored-objects', 'news-api']
|
52 |
-
BUG_FOUND_MSG = "
|
53 |
# AUTH_ERR_MSG = "Please paste your OpenAI key from openai.com to use this application. It is not necessary to hit a button or key after pasting it."
|
54 |
AUTH_ERR_MSG = "Please paste your OpenAI key from openai.com to use this application. "
|
55 |
MAX_TOKENS = 2048
|
@@ -262,29 +264,53 @@ def load_chain(tools_list, llm):
|
|
262 |
return chain, express_chain, memory
|
263 |
|
264 |
|
265 |
-
async def set_chain_state_api_key(api_key):
|
|
|
266 |
# Set the API key for chain_state
|
267 |
chain_state.api_key = api_key
|
268 |
|
269 |
-
async def set_express_chain_state_api_key(api_key):
|
270 |
-
|
271 |
-
|
272 |
|
273 |
-
async def set_llm_state_api_key(api_key):
|
274 |
# Set the API key for llm_state
|
275 |
-
|
276 |
|
277 |
-
async def set_embeddings_state_api_key(api_key):
|
278 |
# Set the API key for embeddings_state
|
279 |
-
|
280 |
|
281 |
-
async def set_qa_chain_state_api_key(api_key):
|
282 |
# Set the API key for qa_chain_state
|
283 |
-
|
284 |
|
285 |
-
async def set_memory_state_api_key(api_key):
|
286 |
# Set the API key for memory_state
|
287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
|
289 |
async def set_openai_api_key(api_key):
|
290 |
"""
|
@@ -924,7 +950,7 @@ openai_api_key_textbox.change(set_openai_api_key,
|
|
924 |
inputs=[openai_api_key_textbox],
|
925 |
outputs=None, _js="(api_key) => localStorage.setItem('open_api_key', api_key)")
|
926 |
|
927 |
-
openai_api_key_textbox.change(
|
928 |
inputs=[openai_api_key_textbox],
|
929 |
outputs=[chain_state, express_chain_state, llm_state, embeddings_state,
|
930 |
qa_chain_state, memory_state])
|
|
|
5 |
from contextlib import closing
|
6 |
from typing import Optional, Tuple
|
7 |
import datetime
|
8 |
+
import promptlayer
|
9 |
+
promptlayer.api_key = os.environ.get("PROMPTLAYER_KEY")
|
10 |
import boto3
|
11 |
import gradio as gr
|
12 |
import requests
|
|
|
19 |
|
20 |
from langchain.agents import load_tools, initialize_agent
|
21 |
from langchain.chains.conversation.memory import ConversationBufferMemory
|
22 |
+
# from langchain.llms import OpenAI
|
23 |
+
from promptlayer.langchain.llms import OpenAI
|
24 |
from threading import Lock
|
25 |
|
26 |
# Console to variable
|
|
|
51 |
|
52 |
TOOLS_LIST = ['serpapi', 'wolfram-alpha', 'pal-math', 'pal-colored-objects', 'news-api'] #'google-search','news-api','tmdb-api','open-meteo-api'
|
53 |
TOOLS_DEFAULT_LIST = ['serpapi', 'wolfram-alpha', 'pal-math', 'pal-colored-objects', 'news-api']
|
54 |
+
BUG_FOUND_MSG = "Error in the return response. Please try again."
|
55 |
# AUTH_ERR_MSG = "Please paste your OpenAI key from openai.com to use this application. It is not necessary to hit a button or key after pasting it."
|
56 |
AUTH_ERR_MSG = "Please paste your OpenAI key from openai.com to use this application. "
|
57 |
MAX_TOKENS = 2048
|
|
|
264 |
return chain, express_chain, memory
|
265 |
|
266 |
|
267 |
+
# async def set_chain_state_api_key(api_key):
|
268 |
+
async def set_openai_key(api_key):
|
269 |
# Set the API key for chain_state
|
270 |
chain_state.api_key = api_key
|
271 |
|
272 |
+
# async def set_express_chain_state_api_key(api_key):
|
273 |
+
# # Set the API key for express_chain_state
|
274 |
+
# express_chain_state.api_key = api_key
|
275 |
|
276 |
+
# async def set_llm_state_api_key(api_key):
|
277 |
# Set the API key for llm_state
|
278 |
+
# llm_state.api_key = api_key
|
279 |
|
280 |
+
# async def set_embeddings_state_api_key(api_key):
|
281 |
# Set the API key for embeddings_state
|
282 |
+
# embeddings_state.api_key = api_key
|
283 |
|
284 |
+
# async def set_qa_chain_state_api_key(api_key):
|
285 |
# Set the API key for qa_chain_state
|
286 |
+
# qa_chain_state.api_key = api_key
|
287 |
|
288 |
+
# async def set_memory_state_api_key(api_key):
|
289 |
# Set the API key for memory_state
|
290 |
+
# memory_state.api_key = api_key
|
291 |
+
|
292 |
+
if api_key and api_key.startswith("sk-") and len(api_key) > 50:
|
293 |
+
os.environ["OPENAI_API_KEY"] = api_key
|
294 |
+
print("\n\n ++++++++++++++ Setting OpenAI API key ++++++++++++++ \n\n")
|
295 |
+
print(str(datetime.datetime.now()) + ": Before OpenAI, OPENAI_API_KEY length: " + str(
|
296 |
+
len(os.environ["OPENAI_API_KEY"])))
|
297 |
+
llm = OpenAI(temperature=0, max_tokens=MAX_TOKENS)
|
298 |
+
print(str(datetime.datetime.now()) + ": After OpenAI, OPENAI_API_KEY length: " + str(
|
299 |
+
len(os.environ["OPENAI_API_KEY"])))
|
300 |
+
chain, express_chain, memory = load_chain(TOOLS_DEFAULT_LIST, llm)
|
301 |
+
|
302 |
+
# Pertains to question answering functionality
|
303 |
+
embeddings = OpenAIEmbeddings()
|
304 |
+
qa_chain = load_qa_chain(OpenAI(temperature=0), chain_type="stuff")
|
305 |
+
|
306 |
+
print(str(datetime.datetime.now()) + ": After load_chain, OPENAI_API_KEY length: " + str(
|
307 |
+
len(os.environ["OPENAI_API_KEY"])))
|
308 |
+
os.environ["OPENAI_API_KEY"] = ""
|
309 |
+
return chain, express_chain, llm, embeddings, qa_chain, memory
|
310 |
+
return None, None, None, None, None, None
|
311 |
+
|
312 |
+
PROMPTLAYER_API_BASE = "https://api.promptlayer.com"
|
313 |
+
|
314 |
|
315 |
async def set_openai_api_key(api_key):
|
316 |
"""
|
|
|
950 |
inputs=[openai_api_key_textbox],
|
951 |
outputs=None, _js="(api_key) => localStorage.setItem('open_api_key', api_key)")
|
952 |
|
953 |
+
openai_api_key_textbox.change(set_openai_api_key,
|
954 |
inputs=[openai_api_key_textbox],
|
955 |
outputs=[chain_state, express_chain_state, llm_state, embeddings_state,
|
956 |
qa_chain_state, memory_state])
|