Spaces:
Sleeping
Sleeping
Download src/models/base.py from renuka010/llm_comparisons: direct link, hf CLI and curl.
- Browser
- Download file 865 Bytes
-
https://huggingface.co/spaces/renuka010/llm_comparisons/resolve/main/src/models/base.py
- Command line
-
hf download hf://spaces/renuka010/llm_comparisons/src/models/base.py
-
curl -L -o base.py https://huggingface.co/spaces/renuka010/llm_comparisons/resolve/main/src/models/base.py
865 Bytes
| from abc import ABC, abstractmethod | |
| from dataclasses import dataclass, field | |
| class ModelResponse: | |
| text: str | |
| latency_ms: int | |
| token_estimate: int | None = None | |
| error: str | None = None | |
| # Each entry: {"tool": str, "query": str, "result_preview": str} | |
| tool_calls_log: list[dict] = field(default_factory=list) | |
| class ModelClient(ABC): | |
| def generate(self, messages: list[dict]) -> ModelResponse: | |
| ... | |
| def generate_with_tools( | |
| self, | |
| messages: list[dict], | |
| tool_map: dict, | |
| ) -> ModelResponse: | |
| """ | |
| Default: ignore tools and fall back to plain generate. | |
| Frontier subclasses override this to run a proper tool-call loop. | |
| """ | |
| return self.generate(messages) | |
| def model_name(self) -> str: | |
| ... | |