Soumik555 commited on
Commit
269019f
·
1 Parent(s): 5873491
controller.py CHANGED
@@ -396,33 +396,33 @@ async def csv_chat(request: Dict, authorization: str = Header(None)):
396
 
397
  # Handle report generation with Cerebras first, then Gemini fallback
398
  if generate_report is True:
399
- # logger.info("Starting report generation process...")
400
 
401
- # # Try Cerebras first for report generation
402
- # logger.info("Attempting report generation with Cerebras...")
403
- # try:
404
- # report_files = await generate_csv_report_cerebras(csv_url, query, chat_id, conversation_history)
405
- # if report_files is not None and (report_files.files.csv_files or report_files.files.image_files):
406
- # logger.info(f"Cerebras report generation successful: {len(report_files.files.csv_files)} CSV files, {len(report_files.files.image_files)} image files")
407
- # return {"answer": jsonable_encoder(report_files)}
408
- # else:
409
- # logger.warning("Cerebras report generation returned empty or None result")
410
- # except Exception as cerebras_error:
411
- # logger.error(f"Cerebras report generation failed: {str(cerebras_error)}")
412
 
413
- # # Fallback to Gemini for report generation
414
- # logger.info("Falling back to Gemini for report generation...")
415
- # try:
416
- # report_files = await generate_csv_report_gemini(csv_url, query, chat_id, conversation_history)
417
- # if report_files is not None and (report_files.files.csv_files or report_files.files.image_files):
418
- # logger.info(f"Gemini report generation successful: {len(report_files.files.csv_files)} CSV files, {len(report_files.files.image_files)} image files")
419
- # return {"answer": jsonable_encoder(report_files)}
420
- # else:
421
- # logger.warning("Gemini report generation returned empty or None result")
422
- # except Exception as gemini_error:
423
- # logger.error(f"Gemini report generation failed: {str(gemini_error)}")
424
 
425
- # logger.error("Both Cerebras and Gemini report generation failed")
426
 
427
  # Gemini failed, last resort Groq Report Generation
428
  logger.info("Attempting report generation with Groq as last resort...")
 
396
 
397
  # Handle report generation with Cerebras first, then Gemini fallback
398
  if generate_report is True:
399
+ logger.info("Starting report generation process...")
400
 
401
+ # Try Cerebras first for report generation
402
+ logger.info("Attempting report generation with Cerebras...")
403
+ try:
404
+ report_files = await generate_csv_report_cerebras(csv_url, query, chat_id, conversation_history)
405
+ if report_files is not None and (report_files.files.csv_files or report_files.files.image_files):
406
+ logger.info(f"Cerebras report generation successful: {len(report_files.files.csv_files)} CSV files, {len(report_files.files.image_files)} image files")
407
+ return {"answer": jsonable_encoder(report_files)}
408
+ else:
409
+ logger.warning("Cerebras report generation returned empty or None result")
410
+ except Exception as cerebras_error:
411
+ logger.error(f"Cerebras report generation failed: {str(cerebras_error)}")
412
 
413
+ # Fallback to Gemini for report generation
414
+ logger.info("Falling back to Gemini for report generation...")
415
+ try:
416
+ report_files = await generate_csv_report_gemini(csv_url, query, chat_id, conversation_history)
417
+ if report_files is not None and (report_files.files.csv_files or report_files.files.image_files):
418
+ logger.info(f"Gemini report generation successful: {len(report_files.files.csv_files)} CSV files, {len(report_files.files.image_files)} image files")
419
+ return {"answer": jsonable_encoder(report_files)}
420
+ else:
421
+ logger.warning("Gemini report generation returned empty or None result")
422
+ except Exception as gemini_error:
423
+ logger.error(f"Gemini report generation failed: {str(gemini_error)}")
424
 
425
+ logger.error("Both Cerebras and Gemini report generation failed")
426
 
427
  # Gemini failed, last resort Groq Report Generation
428
  logger.info("Attempting report generation with Groq as last resort...")
groq_instance_provider.py CHANGED
@@ -18,7 +18,7 @@ class InstanceProvider:
18
  def _initialize_instances(self):
19
  """Load all API keys and create instances"""
20
  api_keys = os.getenv("GROQ_API_KEYS", "").split(",")
21
- base_url = os.getenv("GROQ_BASE_URL")
22
  model_name = os.getenv("GROQ_LLM_MODEL")
23
 
24
  for key in api_keys:
 
18
  def _initialize_instances(self):
19
  """Load all API keys and create instances"""
20
  api_keys = os.getenv("GROQ_API_KEYS", "").split(",")
21
+ base_url = os.getenv("GROQ_OPENAI_URL")
22
  model_name = os.getenv("GROQ_LLM_MODEL")
23
 
24
  for key in api_keys:
groq_report_generator.py CHANGED
@@ -25,7 +25,7 @@ load_dotenv()
25
 
26
  API_KEYS = os.getenv("GROQ_API_KEYS", "").split(",")[::-1]
27
  MODEL_NAME = os.getenv("GROQ_LLM_MODEL") # Kimi model
28
- GROQ_BASE_URL = os.getenv("GROQ_BASE_URL")
29
 
30
  class FileProps(BaseModel):
31
  fileName: str
@@ -300,7 +300,7 @@ def groq_llm_chat(csv_url: str, query: str, conversation_history: List[Dict[str,
300
  df = pd.read_csv(csv_url)
301
  agent = RethinkAgent(df=df, conversation=conversation_history, model_name=MODEL_NAME)
302
 
303
- if not agent.initialize_model(API_KEYS, GROQ_BASE_URL):
304
  return {"error": "API configuration failed"}
305
 
306
  result = agent.execute_query(query)
 
25
 
26
  API_KEYS = os.getenv("GROQ_API_KEYS", "").split(",")[::-1]
27
  MODEL_NAME = os.getenv("GROQ_LLM_MODEL") # Kimi model
28
+ GROQ_OPENAI_URL = os.getenv("GROQ_OPENAI_URL")
29
 
30
  class FileProps(BaseModel):
31
  fileName: str
 
300
  df = pd.read_csv(csv_url)
301
  agent = RethinkAgent(df=df, conversation=conversation_history, model_name=MODEL_NAME)
302
 
303
+ if not agent.initialize_model(API_KEYS, GROQ_OPENAI_URL):
304
  return {"error": "API configuration failed"}
305
 
306
  result = agent.execute_query(query)