""" Launch Component 8 local chat interface. """ from __future__ import annotations import argparse import sys from pathlib import Path import yaml # Ensure src imports work when script is run directly. PROJECT_ROOT = Path(__file__).resolve().parents[1] if str(PROJECT_ROOT) not in sys.path: sys.path.insert(0, str(PROJECT_ROOT)) from src.chat_interface.gradio_chat_app import create_demo def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser(description="Launch Component 8 chat UI.") parser.add_argument("--config", default="configs/component8_chat_config.yaml") return parser.parse_args() def main() -> None: args = parse_args() cfg_path = Path(args.config) if not cfg_path.exists(): raise FileNotFoundError(f"Config not found: {cfg_path}") cfg = yaml.safe_load(cfg_path.read_text(encoding="utf-8")) host = str(cfg.get("server", {}).get("host", "127.0.0.1")) port = int(cfg.get("server", {}).get("port", 7860)) share = bool(cfg.get("server", {}).get("share", False)) demo = create_demo(config_path=args.config) demo.queue(default_concurrency_limit=1) demo.launch(server_name=host, server_port=port, share=share, inbrowser=False) if __name__ == "__main__": main()