(self, explorer: Explorer, listen_address: str = "localhost", port: int = 8010)
| 17 | """Manages the lifecycle and operations of the Explorer API service.""" |
| 18 | |
| 19 | def __init__(self, explorer: Explorer, listen_address: str = "localhost", port: int = 8010): |
| 20 | self.logger = get_logger(__name__) |
| 21 | self.explorer = explorer |
| 22 | self.app = None |
| 23 | self.port = port |
| 24 | self.listen_address = listen_address |
| 25 | self.running = False |
| 26 | self.models: List[ModelWrapper] = explorer.models |
| 27 | self.min_running_model_num = explorer.config.explorer.min_running_model_num |
| 28 | self.check_interval = explorer.config.explorer.service_status_check_interval |
| 29 | self.max_timeout = explorer.config.explorer.max_timeout |
| 30 | self.running_model_ids: deque[int] = deque() # indices of running models |
| 31 | self.model_version_map: Dict[int, int] = {} # model index -> model version |
| 32 | self.sync_task_map: Dict[asyncio.Future, int] = {} # sync task -> model index |
| 33 | self.latest_model_version = 0 |
| 34 | self.session_level_experience_queue: Dict[int, deque[Experience]] = {} |
| 35 | self.commit_lock = asyncio.Lock() |
| 36 | self.ready_experiences = deque() |
| 37 | self.recorder = HistoryRecorder( |
| 38 | db_url=explorer.config.explorer.db_url |
| 39 | or f"sqlite:///{explorer.config.buffer.cache_dir}/proxy_history.db", |
| 40 | table_name="proxy_history", |
| 41 | ) |
| 42 | self.total_experience_count = 0 |
| 43 | self.ready_experience_count = 0 |
| 44 | |
| 45 | async def serve(self) -> None: |
| 46 | from trinity.explorer.proxy.app import run_app |
nothing calls this directly
no test coverage detected