Spaces:
Sleeping
Sleeping
| import logging | |
| import os | |
| from httpx import AsyncClient | |
| from litellm.router import Router | |
| from jinja2 import Environment, StrictUndefined, FileSystemLoader | |
| # Declare all global app dependencies here | |
| # - Setup your dependency global inside init_dependencies() | |
| # - Create a get_xxxx_() function to retrieve the dependency inside the FastAPI router | |
| INSIGHT_FINDER_BASE_URL = "https://organizedprogrammers-insight-finder.hf.space/" | |
| def init_dependencies(): | |
| """Initialize the application global dependencies""" | |
| global llm_router | |
| global prompt_templates | |
| global http_client | |
| llm_router = Router(model_list=[ | |
| { | |
| "model_name": "gemini-v1", | |
| "litellm_params": | |
| { | |
| "model": "gemini/gemini-2.0-flash", | |
| "api_key": os.environ.get("GEMINI"), | |
| "max_retries": 5, | |
| "rpm": 15, | |
| "allowed_fails": 1, | |
| "cooldown": 30, | |
| } | |
| }, | |
| { | |
| "model_name": "gemini-v2", | |
| "litellm_params": | |
| { | |
| "model": "gemini/gemini-2.5-flash-lite-preview-06-17", | |
| "api_key": os.environ.get("GEMINI"), | |
| "max_retries": 5, | |
| "rpm": 10, | |
| "allowed_fails": 1, | |
| "cooldown": 30, | |
| } | |
| }], fallbacks=[{"gemini-v2": ["gemini-v1"]}], num_retries=10, retry_after=30) | |
| prompt_templates = Environment(loader=FileSystemLoader( | |
| "prompts"), enable_async=True, undefined=StrictUndefined) | |
| enable_ssl = not os.environ.get("NO_SSL", "0") == "1" | |
| logging.debug(f"SSL cert check is {enable_ssl}") | |
| http_client = AsyncClient(verify=enable_ssl, timeout=None) | |
| def get_llm_router() -> Router: | |
| """Retrieves the LLM router""" | |
| return llm_router | |
| def get_prompt_templates() -> Environment: | |
| """Retrieves the Jinja2 prompt templates environment""" | |
| return prompt_templates | |
| def get_http_client() -> AsyncClient: | |
| """Retrieves the HTTP Client""" | |
| return http_client | |