cmulgy commited on
Commit
5f99700
Β·
1 Parent(s): b27a429
Files changed (2) hide show
  1. app.py +19 -7
  2. demo.py +36 -4
app.py CHANGED
@@ -79,26 +79,38 @@ def main():
79
 
80
  # Reinitialize NVIDIA client after environment setup
81
  print("πŸ”„ Reinitializing NVIDIA API client...")
82
- from demo import client
83
- if client is None and os.getenv("NVIDIA_API_KEY"):
 
 
 
 
 
84
  print("πŸ”„ Attempting to reinitialize client with environment variables...")
85
- # Reinitialize the client
86
- import demo
87
  demo.client = initialize_nvidia_client()
 
 
 
 
 
 
 
 
88
 
89
  # Test API connection
90
- if os.getenv("NVIDIA_API_KEY"):
91
  print("πŸ§ͺ Testing NVIDIA API connection...")
92
  test_nvidia_api_connection()
93
 
94
  # Create the Gradio interface
95
  print("🎯 Creating RoutePilot interface...")
96
- demo = create_interface()
97
 
98
  # Launch the application
99
  # For Hugging Face Spaces, we don't need to specify server_name and port
100
  # The platform handles this automatically
101
- demo.launch(
102
  show_error=True,
103
  debug=False, # Set to False for production
104
  show_api=False
 
79
 
80
  # Reinitialize NVIDIA client after environment setup
81
  print("πŸ”„ Reinitializing NVIDIA API client...")
82
+
83
+ # Import demo module and reinitialize client
84
+ import demo
85
+ print(f"πŸ” Initial client status: {'βœ… Available' if demo.client is not None else '❌ None'}")
86
+ print(f"πŸ” API key in environment: {'βœ… Present' if os.getenv('NVIDIA_API_KEY') else '❌ Missing'}")
87
+
88
+ if demo.client is None and os.getenv("NVIDIA_API_KEY"):
89
  print("πŸ”„ Attempting to reinitialize client with environment variables...")
90
+ # Reinitialize the client and update the module variable
 
91
  demo.client = initialize_nvidia_client()
92
+ print(f"πŸ”„ Client reinitialized: {'βœ… Success' if demo.client is not None else '❌ Failed'}")
93
+ elif demo.client is not None:
94
+ print("βœ… Client already initialized")
95
+ else:
96
+ print("❌ No API key available for client initialization")
97
+
98
+ # Final client status check
99
+ print(f"πŸ” Final client status: {'βœ… Available' if demo.client is not None else '❌ None'}")
100
 
101
  # Test API connection
102
+ if os.getenv("NVIDIA_API_KEY") and demo.client is not None:
103
  print("πŸ§ͺ Testing NVIDIA API connection...")
104
  test_nvidia_api_connection()
105
 
106
  # Create the Gradio interface
107
  print("🎯 Creating RoutePilot interface...")
108
+ demo_interface = create_interface()
109
 
110
  # Launch the application
111
  # For Hugging Face Spaces, we don't need to specify server_name and port
112
  # The platform handles this automatically
113
+ demo_interface.launch(
114
  show_error=True,
115
  debug=False, # Set to False for production
116
  show_api=False
demo.py CHANGED
@@ -184,14 +184,15 @@ client = initialize_nvidia_client()
184
 
185
  def test_nvidia_api_connection():
186
  """Test the NVIDIA API connection to verify authentication"""
187
- if client is None:
 
188
  print("❌ Cannot test API connection - client not initialized")
189
  return False
190
 
191
  try:
192
  print("πŸ§ͺ Testing NVIDIA API connection...")
193
  # Make a simple test call
194
- test_response = client.chat.completions.create(
195
  model="meta/llama-3.1-8b-instruct",
196
  messages=[{"role": "user", "content": "Hello"}],
197
  max_tokens=10,
@@ -204,6 +205,28 @@ def test_nvidia_api_connection():
204
  print(f"❌ NVIDIA API connection test failed: {e}")
205
  return False
206
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  def model_prompting(
208
  llm_model: str,
209
  prompt: str,
@@ -226,7 +249,9 @@ def model_prompting(
226
  Returns:
227
  Generated text response
228
  """
229
- if client is None:
 
 
230
  raise Exception("NVIDIA API client not initialized. Please check your .env file contains NVIDIA_API_KEY")
231
 
232
  # Debug information
@@ -248,7 +273,7 @@ def model_prompting(
248
 
249
  try:
250
  print(f"πŸš€ Making API call to model: {llm_model}")
251
- completion = client.chat.completions.create(
252
  model=llm_model,
253
  messages=[{"role": "user", "content": prompt}],
254
  max_tokens=max_token_num,
@@ -1038,6 +1063,13 @@ def process_query(query):
1038
  try:
1039
  print(f"Processing query: {query[:50]}...")
1040
 
 
 
 
 
 
 
 
1041
  # Use Graph Router to select the best LLM
1042
  routed_llm_name, task_description, selection_info = get_routed_llm(query)
1043
  print(f"Graph router selected: {routed_llm_name}")
 
184
 
185
  def test_nvidia_api_connection():
186
  """Test the NVIDIA API connection to verify authentication"""
187
+ current_client = ensure_client_available()
188
+ if current_client is None:
189
  print("❌ Cannot test API connection - client not initialized")
190
  return False
191
 
192
  try:
193
  print("πŸ§ͺ Testing NVIDIA API connection...")
194
  # Make a simple test call
195
+ test_response = current_client.chat.completions.create(
196
  model="meta/llama-3.1-8b-instruct",
197
  messages=[{"role": "user", "content": "Hello"}],
198
  max_tokens=10,
 
205
  print(f"❌ NVIDIA API connection test failed: {e}")
206
  return False
207
 
208
+ def ensure_client_available():
209
+ """Ensure the NVIDIA API client is available, reinitialize if needed"""
210
+ global client
211
+
212
+ if client is not None:
213
+ return client
214
+
215
+ # Try to reinitialize the client
216
+ print("πŸ”„ Client not available, attempting to reinitialize...")
217
+ api_key = os.getenv("NVIDIA_API_KEY")
218
+ if api_key:
219
+ client = initialize_nvidia_client()
220
+ if client is not None:
221
+ print("βœ… Client successfully reinitialized")
222
+ return client
223
+ else:
224
+ print("❌ Failed to reinitialize client")
225
+ return None
226
+ else:
227
+ print("❌ No API key available for client initialization")
228
+ return None
229
+
230
  def model_prompting(
231
  llm_model: str,
232
  prompt: str,
 
249
  Returns:
250
  Generated text response
251
  """
252
+ # Ensure client is available
253
+ current_client = ensure_client_available()
254
+ if current_client is None:
255
  raise Exception("NVIDIA API client not initialized. Please check your .env file contains NVIDIA_API_KEY")
256
 
257
  # Debug information
 
273
 
274
  try:
275
  print(f"πŸš€ Making API call to model: {llm_model}")
276
+ completion = current_client.chat.completions.create(
277
  model=llm_model,
278
  messages=[{"role": "user", "content": prompt}],
279
  max_tokens=max_token_num,
 
1063
  try:
1064
  print(f"Processing query: {query[:50]}...")
1065
 
1066
+ # Check client availability before processing
1067
+ print("πŸ” Checking client availability...")
1068
+ current_client = ensure_client_available()
1069
+ if current_client is None:
1070
+ raise Exception("NVIDIA API client not available. Please check your API key configuration.")
1071
+ print("βœ… Client available for processing")
1072
+
1073
  # Use Graph Router to select the best LLM
1074
  routed_llm_name, task_description, selection_info = get_routed_llm(query)
1075
  print(f"Graph router selected: {routed_llm_name}")