| 43 | |
| 44 | |
| 45 | def _interactive_cli(args: argparse.Namespace) -> tuple[str, OpenAI]: |
| 46 | _register_signal_handlers() |
| 47 | |
| 48 | base_url = args.url |
| 49 | api_key = args.api_key or os.environ.get("OPENAI_API_KEY", "EMPTY") |
| 50 | openai_client = OpenAI(api_key=api_key, base_url=base_url) |
| 51 | |
| 52 | if args.model_name: |
| 53 | model_name = args.model_name |
| 54 | else: |
| 55 | available_models = openai_client.models.list() |
| 56 | model_name = available_models.data[0].id |
| 57 | |
| 58 | print(f"Using model: {model_name}") |
| 59 | |
| 60 | return model_name, openai_client |
| 61 | |
| 62 | |
| 63 | def chat(system_prompt: str | None, model_name: str, client: OpenAI) -> None: |