Spaces:
Sleeping
Sleeping
File size: 1,190 Bytes
6d9c72b cf0a8ed 6d9c72b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | """Entry point - starts ContextForge server and metrics collector."""
import asyncio
import logging
import uvicorn
from apohara_context_forge.config import settings
from apohara_context_forge.metrics.collector import MetricsCollector
from apohara_context_forge.mcp.server import app, metrics_loop
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s | %(levelname)s | %(name)s | %(message)s",
)
logger = logging.getLogger(__name__)
async def main():
"""Start ContextForge server."""
logger.info("Starting ContextForge...")
logger.info(f"Host: {settings.contextforge_host}:{settings.contextforge_port}")
logger.info(f"vLLM: {settings.vllm_base_url}")
logger.info(f"Model: {settings.vllm_model}")
# Start background metrics collector
metrics_task = asyncio.create_task(metrics_loop())
try:
config = uvicorn.Config(
app,
host=settings.contextforge_host,
port=settings.contextforge_port,
log_level="info",
)
server = uvicorn.Server(config)
await server.serve()
finally:
metrics_task.cancel()
if __name__ == "__main__":
asyncio.run(main()) |