legal-ai-assistant/configs.py

64 lines
2.5 KiB
Python

import os
# ----- BACKEND -----
BACKEND_BASE_URL = os.getenv("BACKEND_BASE_URL", "http://backend:8001/api/run")
# ----- LiteLLM -----
LITELLM_BASE_URL = os.getenv("LITELLM_BASE_URL", "http://litellm:4000/v1")
LITELLM_API_KEY = os.getenv("LITELLM_API_KEY")
# ----- MCP SERVER -----
MCP_SERVER_URL = os.getenv("MCP_SERVER_URL", "http://mcp:8002/mcp")
JUSTICE_API_BASE = os.getenv("JUSTICE_API_BASE")
# ----- HTTP FOR TOOLS -----
HTTP_TIMEOUT = 10.0
HTTP_MAX_CONNECTIONS = 20
HTTP_MAX_KEEPALIVE = 10
# ----- HTTP FOR CHAINLIT CLIENT -----
HTTP_TIMEOUT_TOTAL = 300.0
HTTP_TIMEOUT_CONNECT = 10.0
# ----- CACHE -----
CACHE_TTL = 300
CACHE_MAX_SIZE = 256
# ----- RETRY -----
RETRY_ATTEMPTS = 3
RETRY_MULTIPLIER = 1
RETRY_MIN_WAIT = 1
RETRY_MAX_WAIT = 5
# ----- LLM MODELS -----
ALL_MODELS = [
{"id": "gpt-oss-120b", "desc": "Uses **openrouter/openai/gpt-oss-120b**", "icon": "gpt.svg"},
{"id": "llama-3.1-8b", "desc": "Uses **groq/llama-3.1-8b-instant**", "icon": "ollama.svg"},
{"id": "qwen-qwq-32b", "desc": "Uses **groq/qwen/qwen3-32b**", "icon": "qwen.svg"},
{"id": "qwen3-235b", "desc": "Uses **cerebras/qwen-3-235b**", "icon": "qwen.svg"},
{"id": "gemini-2.5-flash", "desc": "Uses **gemini/gemini-2.5-flash**", "icon": "gemini.svg"},
{"id": "gemini-2.5-pro", "desc": "Uses **gemini/gemini-2.5-pro**", "icon": "gemini.svg"},
{"id": "deepseek-r1", "desc": "Uses **openrouter/deepseek/deepseek-r1**", "icon": "deepseek.svg"},
]
# ----- AI AGENT -----
DEFAULT_MODEL= "gpt-oss-120b"
AGENT_TEMPERATURE = 0.3
LLM_TIMEOUT = 120.0
# ----- CHAINLIT DATABASE -----
CHAINLIT_DATABASE_URL = os.getenv("CHAINLIT_DATABASE_URL")
CHAINLIT_AUTH_SECRET = os.getenv("CHAINLIT_AUTH_SECRET")
# ----- CHAINLIT AUTH -----
AUTH_USER = os.getenv("AUTH_USER")
AUTH_PASS = os.getenv("AUTH_PASS")
# ----- CHAINLIT STARTERS -----
ALL_STARTERS = [
{"label": "Legal Data Search", "prompt": "What legal data can the agent find?", "icon": "magnifying-glass.svg"},
{"label": "Restricted Actions List", "prompt": "What is the agent not allowed to do or use?", "icon": "ban.svg"},
{"label": "Agent Data Sources", "prompt": "What data sources does the agent rely on?", "icon": "database.svg"},
{"label": "Example Legal Case", "prompt": "Give me an example of a legal question you can answer.", "icon": "scale-balanced.svg"},
]