Main entry point Args: record_file: Optional file path to record requests/responses for debugging
(record_file=None)
| 241 | |
| 242 | |
| 243 | async def main(record_file=None): |
| 244 | """Main entry point |
| 245 | |
| 246 | Args: |
| 247 | record_file: Optional file path to record requests/responses for debugging |
| 248 | """ |
| 249 | |
| 250 | # Suppress verbose HTTP client logging from OpenAI SDK |
| 251 | logging.getLogger("httpx").setLevel(logging.WARNING) |
| 252 | logging.getLogger("httpcore").setLevel(logging.WARNING) |
| 253 | logging.getLogger("openai").setLevel(logging.WARNING) |
| 254 | |
| 255 | # Suppress Azure SDK HTTP logging |
| 256 | logging.getLogger("azure.core.pipeline.policies.http_logging_policy").setLevel(logging.WARNING) |
| 257 | logging.getLogger("azure").setLevel(logging.WARNING) |
| 258 | |
| 259 | # Suppress aiohttp access logs |
| 260 | logging.getLogger("aiohttp.access").setLevel(logging.WARNING) |
| 261 | |
| 262 | # Suppress webserver middleware logging |
| 263 | logging.getLogger("webserver.middleware.logging_middleware").setLevel(logging.WARNING) |
| 264 | |
| 265 | |
| 266 | # Create and start server |
| 267 | server = AioHTTPServer() |
| 268 | server.record_file = record_file |
| 269 | |
| 270 | if record_file: |
| 271 | logger.info(f"Recording requests/responses to: {record_file}") |
| 272 | set_recording_llm_calls(record_file) |
| 273 | |
| 274 | try: |
| 275 | await server.start() |
| 276 | except Exception as e: |
| 277 | logger.error(f"Server error: {e}") |
| 278 | raise |
| 279 | finally: |
| 280 | await server.stop() |
| 281 | |
| 282 | |
| 283 | if __name__ == "__main__": |
no test coverage detected