import ast | |
from typing import Any, Dict, List | |
from h2ogpt_client._gradio_client import GradioClientWrapper | |
class Model: | |
"""Large language model in the h2oGPT server.""" | |
def __init__(self, raw_info: Dict[str, Any]): | |
self._name = raw_info["base_model"] | |
self._raw_info = raw_info | |
def name(self) -> str: | |
"""Name of the model.""" | |
return self._name | |
def __repr__(self) -> str: | |
return self.name.__repr__() | |
def __str__(self) -> str: | |
return self.name.__str__() | |
class Models: | |
"""Interact with LL Models in h2oGPT.""" | |
def __init__(self, client: GradioClientWrapper): | |
self._client = client | |
def list(self) -> List[Model]: | |
"""List all models available in the h2oGPT server.""" | |
models = ast.literal_eval(self._client.predict(api_name="/model_names")) | |
return [Model(m) for m in models] | |