2-01.

1

Add imports

from typing import Annotated, get_orgin, get_args, Any, Callable, Union, Final
import requests
from typing import Annotated, get_orgin, get_args, Any, Callable, Union, Final 
from dataclasses import dataclass, field
from rich.console import Console
import datetime
import getpass

@dataclass
class Agent:
    system_prompt: str = "answer in french only"
    model: str = "qwen/qwen3.5-9b"
    base_url: str = "http://127.0.0.1:1234/v1"
    api_key:  str = field(default="NO_API_KEY", repr=False)
    contexts: dict[str, Callable[[],str]] = field(default_factory=dict)
    messages: list[dict[str,Any]] = field(default_factory=list)

    def __post_init__(self) -> None:
        self.base_url = self.base_url.rstrip('/')
    
    def context(self, func : Callable[[],str]) -> Callable[[],str]:
        self.contexts[func.__name__] = func
        return func