from typing import Optional from h2ogpt_client._completion import ChatCompletionCreator, TextCompletionCreator from h2ogpt_client._gradio_client import GradioClientWrapper from h2ogpt_client._models import Models from h2ogpt_client._server import Server class Client: """h2oGPT Client.""" def __init__( self, src: str, h2ogpt_key: Optional[str] = None, huggingface_token: Optional[str] = None, ): """ Creates a GPT client. :param src: either the full URL to the hosted h2oGPT (e.g. "http://0.0.0.0:7860", "https://fc752f297207f01c32.gradio.live") or name of the Hugging Face Space to load, (e.g. "h2oai/h2ogpt-chatbot") :param h2ogpt_key: access key to connect with a h2oGPT server :param huggingface_token: Hugging Face token to use to access private Spaces """ self._client = GradioClientWrapper(src, h2ogpt_key, huggingface_token) self._text_completion = TextCompletionCreator(self._client) self._chat_completion = ChatCompletionCreator(self._client) self._models = Models(self._client) self._server = Server(self._client) @property def text_completion(self) -> TextCompletionCreator: """Text completion.""" return self._text_completion @property def chat_completion(self) -> ChatCompletionCreator: """Chat completion.""" return self._chat_completion @property def models(self) -> Models: """LL models.""" return self._models @property def server(self) -> Server: """h2oGPT server.""" return self._server