codelive007 commited on
Commit
0910b82
·
1 Parent(s): 16cc21a

Revert "updated api respondes v2"

Browse files

This reverts commit 4460d239a28e04c082a57a4fccb91453651a887d.

Files changed (1) hide show
  1. mcp_server.py +10 -89
mcp_server.py CHANGED
@@ -609,85 +609,6 @@ Sample analysis content..."""
609
 
610
  return interface
611
 
612
- # Create a FastAPI app for direct API access
613
- app = gr.mount_gradio_app(
614
- gr.routes.App(app=gr.Blocks()),
615
- create_interface(),
616
- path="/"
617
- )
618
-
619
- # Add a direct API endpoint for research
620
- @app.post("/api/research")
621
- async def api_research(request: dict):
622
- try:
623
- query = request.get('query', '')
624
- if not query:
625
- return {"error": "Query parameter is required"}, 400
626
-
627
- # Initialize with default values or from environment variables
628
- api_type = os.getenv("DEFAULT_API_TYPE", "Gemini")
629
- gemini_key = os.getenv("GEMINI_API_KEY")
630
- gemini_model = os.getenv("GEMINI_MODEL", "gemini-2.0-flash")
631
- tavily_key = os.getenv("TAVILY_API_KEY")
632
- openrouter_key = os.getenv("OPENROUTER_API_KEY")
633
- openrouter_model = os.getenv("OPENROUTER_MODEL", "anthropic/claude-3-opus:beta")
634
-
635
- # Override with request values if provided
636
- if 'api_type' in request:
637
- api_type = request['api_type']
638
- if 'gemini_key' in request:
639
- gemini_key = request['gemini_key']
640
- if 'gemini_model' in request:
641
- gemini_model = request['gemini_model']
642
- if 'tavily_key' in request:
643
- tavily_key = request['tavily_key']
644
- if 'openrouter_key' in request:
645
- openrouter_key = request['openrouter_key']
646
- if 'openrouter_model' in request:
647
- openrouter_model = request['openrouter_model']
648
-
649
- # Validate required API keys
650
- if not tavily_key:
651
- return {"error": "Tavily API key is required"}, 400
652
-
653
- if api_type == "Gemini" and not gemini_key:
654
- return {"error": "Gemini API key is required when using Gemini"}, 400
655
-
656
- if api_type == "OpenRouter" and not openrouter_key:
657
- return {"error": "OpenRouter API key is required when using OpenRouter"}, 400
658
-
659
- # Initialize the system
660
- system = MultiAgentSystem(
661
- use_gemini=(api_type == "Gemini"),
662
- gemini_api_key=gemini_key,
663
- gemini_model=gemini_model,
664
- tavily_api_key=tavily_key,
665
- openrouter_api_key=openrouter_key if api_type == "OpenRouter" else None,
666
- openrouter_model=openrouter_model if api_type == "OpenRouter" else None
667
- )
668
-
669
- # Process the query
670
- markdown_text = system.process_query(query)
671
-
672
- # Generate file paths
673
- md_file_path = save_markdown_report(markdown_text)
674
- html_file_path = convert_to_html(markdown_text)
675
-
676
- # Return the results
677
- return {
678
- "query": query,
679
- "result": markdown_text,
680
- "downloads": {
681
- "markdown": md_file_path,
682
- "html": html_file_path
683
- },
684
- "status": "success"
685
- }
686
-
687
- except Exception as e:
688
- server_logger.error(f"API research failed: {str(e)}", exc_info=True)
689
- return {"error": f"Research failed: {str(e)}"}, 500
690
-
691
  if __name__ == "__main__":
692
  try:
693
  # Configure event loop policy for Windows
@@ -697,15 +618,15 @@ if __name__ == "__main__":
697
  if sys.version_info[0] == 3 and sys.version_info[1] >= 8:
698
  asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
699
 
700
- server_logger.info("Starting server...")
701
-
702
- # Get port from environment variable or use default
703
- port = int(os.getenv("PORT", 7860))
704
-
705
- # Run the FastAPI app with uvicorn
706
- import uvicorn
707
- uvicorn.run(app, host="0.0.0.0", port=port)
708
-
709
  except Exception as e:
710
- server_logger.error(f"Failed to start server: {str(e)}", exc_info=True)
711
  raise
 
609
 
610
  return interface
611
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
612
  if __name__ == "__main__":
613
  try:
614
  # Configure event loop policy for Windows
 
618
  if sys.version_info[0] == 3 and sys.version_info[1] >= 8:
619
  asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
620
 
621
+ server_logger.info("Starting Gradio server")
622
+ interface = create_interface()
623
+ interface.launch(
624
+ server_name="0.0.0.0",
625
+ share=False,
626
+ debug=True,
627
+ prevent_thread_lock=True, # Allow for proper cleanup
628
+ mcp_server=True,
629
+ )
630
  except Exception as e:
631
+ server_logger.error(f"Failed to start Gradio server: {str(e)}", exc_info=True)
632
  raise