Skip to content

Commit

Permalink
Add client.server API to the Client (#1036)
Browse files Browse the repository at this point in the history
* Add client.server API

* Format code
  • Loading branch information
this committed Nov 2, 2023
1 parent dc5b9b3 commit bace647
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 2 deletions.
11 changes: 9 additions & 2 deletions client/h2ogpt_client/_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
PromptType,
)
from h2ogpt_client._models import Model, Models
from h2ogpt_client._server import Server


class Client:
Expand All @@ -38,6 +39,7 @@ def __init__(
self._text_completion = TextCompletionCreator(self)
self._chat_completion = ChatCompletionCreator(self)
self._models = Models(self)
self._server = Server(self)

@property
def text_completion(self) -> "TextCompletionCreator":
Expand All @@ -50,10 +52,15 @@ def chat_completion(self) -> "ChatCompletionCreator":
return self._chat_completion

@property
def models(self) -> "Models":
"""LL models"""
def models(self) -> Models:
"""LL models."""
return self._models

@property
def server(self) -> Server:
"""h2oGPT server."""
return self._server

def _predict(self, *args, api_name: str) -> Any:
return self._client.submit(*args, api_name=api_name).result()

Expand Down
18 changes: 18 additions & 0 deletions client/h2ogpt_client/_server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from h2ogpt_client import _core


class Server:
"""h2oGPT server."""

def __init__(self, client: "_core.Client"):
self._client = client

@property
def address(self) -> str:
"""h2oGPT server address."""
return self._client._client.src

@property
def hash(self) -> str:
"""h2oGPT server system hash."""
return str(self._client._predict(api_name="/system_hash"))
5 changes: 5 additions & 0 deletions client/tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ def test_available_models(client):
print(models)


def test_server_properties(client, server_url):
assert client.server.address.startswith(server_url)
assert client.server.hash


def test_parameters_order(client, eval_func_param_names):
text_completion = client.text_completion.create()
assert eval_func_param_names == list(text_completion._parameters.keys())
Expand Down

0 comments on commit bace647

Please sign in to comment.