From 023b0b65fc5f6218079a05c408da7aba5870bc8f Mon Sep 17 00:00:00 2001 From: Cosmin Maria Date: Tue, 31 Mar 2026 19:02:56 +0300 Subject: [PATCH 1/2] normalized client base client --- CHANGELOG.md | 5 + packages/uipath_langchain_client/CHANGELOG.md | 5 + .../uipath_langchain_client/pyproject.toml | 2 +- .../uipath_langchain_client/__version__.py | 2 +- src/uipath/llm_client/__init__.py | 3 + src/uipath/llm_client/__version__.py | 2 +- .../llm_client/clients/anthropic/client.py | 121 ++++-- .../llm_client/clients/google/client.py | 42 +- .../llm_client/clients/normalized/__init__.py | 3 + .../llm_client/clients/normalized/client.py | 363 ++++++++++++++++++ .../llm_client/clients/openai/client.py | 38 +- tests/cassettes.db | Bin 45387776 -> 46080000 bytes tests/core/normalized/__init__.py | 0 .../core/normalized/test_normalized_client.py | 254 ++++++++++++ 14 files changed, 778 insertions(+), 62 deletions(-) create mode 100644 src/uipath/llm_client/clients/normalized/__init__.py create mode 100644 src/uipath/llm_client/clients/normalized/client.py create mode 100644 tests/core/normalized/__init__.py create mode 100644 tests/core/normalized/test_normalized_client.py diff --git a/CHANGELOG.md b/CHANGELOG.md index a041eec..520ff4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to `uipath_llm_client` (core package) will be documented in this file. +## [1.6.0] - 2026-03-31 + +### Added +- `UiPathNormalizedClient`: a provider-agnostic HTTP client that speaks directly to UiPath's normalized API endpoint without requiring any vendor SDK. Supports sync/async chat completions, streaming, structured output (JSON schema), and tool calling across all supported providers (OpenAI, Google Gemini, Anthropic on Bedrock/Vertex, etc.). + ## [1.5.10] - 2026-03-26 ### Changed diff --git a/packages/uipath_langchain_client/CHANGELOG.md b/packages/uipath_langchain_client/CHANGELOG.md index 2b7bd3c..870597a 100644 --- a/packages/uipath_langchain_client/CHANGELOG.md +++ b/packages/uipath_langchain_client/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to `uipath_langchain_client` will be documented in this file. +## [1.6.0] - 2026-03-31 + +### Changed +- Bumped `uipath-llm-client` dependency to `>=1.6.0` to pick up `UiPathNormalizedClient` + ## [1.5.10] - 2026-03-26 ### Changed diff --git a/packages/uipath_langchain_client/pyproject.toml b/packages/uipath_langchain_client/pyproject.toml index 93ff0be..e97cffe 100644 --- a/packages/uipath_langchain_client/pyproject.toml +++ b/packages/uipath_langchain_client/pyproject.toml @@ -6,7 +6,7 @@ readme = "README.md" requires-python = ">=3.11" dependencies = [ "langchain>=1.2.13", - "uipath-llm-client>=1.5.10", + "uipath-llm-client>=1.6.0", ] [project.optional-dependencies] diff --git a/packages/uipath_langchain_client/src/uipath_langchain_client/__version__.py b/packages/uipath_langchain_client/src/uipath_langchain_client/__version__.py index 292aefb..5149f6e 100644 --- a/packages/uipath_langchain_client/src/uipath_langchain_client/__version__.py +++ b/packages/uipath_langchain_client/src/uipath_langchain_client/__version__.py @@ -1,3 +1,3 @@ __title__ = "UiPath LangChain Client" __description__ = "A Python client for interacting with UiPath's LLM services via LangChain." -__version__ = "1.5.10" +__version__ = "1.6.0" diff --git a/src/uipath/llm_client/__init__.py b/src/uipath/llm_client/__init__.py index 342ef49..e15ad1f 100644 --- a/src/uipath/llm_client/__init__.py +++ b/src/uipath/llm_client/__init__.py @@ -26,6 +26,7 @@ """ from uipath.llm_client.__version__ import __version__ +from uipath.llm_client.clients.normalized import UiPathNormalizedClient from uipath.llm_client.httpx_client import ( UiPathHttpxAsyncClient, UiPathHttpxClient, @@ -54,6 +55,8 @@ __all__ = [ "__version__", + # Normalized client + "UiPathNormalizedClient", # Settings "get_default_client_settings", "PlatformSettings", diff --git a/src/uipath/llm_client/__version__.py b/src/uipath/llm_client/__version__.py index 7da9182..c5bf7a8 100644 --- a/src/uipath/llm_client/__version__.py +++ b/src/uipath/llm_client/__version__.py @@ -1,3 +1,3 @@ __title__ = "UiPath LLM Client" __description__ = "A Python client for interacting with UiPath's LLM services." -__version__ = "1.5.10" +__version__ = "1.6.0" diff --git a/src/uipath/llm_client/clients/anthropic/client.py b/src/uipath/llm_client/clients/anthropic/client.py index 1c5cdfc..cb760b9 100644 --- a/src/uipath/llm_client/clients/anthropic/client.py +++ b/src/uipath/llm_client/clients/anthropic/client.py @@ -15,6 +15,7 @@ """ import logging +from collections.abc import Mapping, Sequence from typing import Any from uipath.llm_client.httpx_client import UiPathHttpxAsyncClient, UiPathHttpxClient @@ -64,6 +65,10 @@ class UiPathAnthropic(Anthropic): model_name: The Anthropic model name (e.g., "claude-3-5-sonnet-20241022"). byo_connection_id: Bring Your Own connection ID for custom deployments. client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. retry_config: Custom retry configuration. logger: Logger instance for request/response logging. **kwargs: Additional arguments passed to Anthropic client. @@ -75,6 +80,10 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, **kwargs: Any, @@ -85,12 +94,13 @@ def __init__( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), headers={ - **kwargs.pop("default_headers", {}), + **(default_headers or {}), **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), }, logger=logger, @@ -114,6 +124,10 @@ class UiPathAsyncAnthropic(AsyncAnthropic): model_name: The Anthropic model name (e.g., "claude-3-5-sonnet-20241022"). byo_connection_id: Bring Your Own connection ID for custom deployments. client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. retry_config: Custom retry configuration. logger: Logger instance for request/response logging. **kwargs: Additional arguments passed to AsyncAnthropic client. @@ -125,6 +139,10 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, **kwargs: Any, @@ -135,12 +153,13 @@ def __init__( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), headers={ - **kwargs.pop("default_headers", {}), + **(default_headers or {}), **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), }, logger=logger, @@ -164,6 +183,10 @@ class UiPathAnthropicBedrock(AnthropicBedrock): model_name: The Anthropic model name. byo_connection_id: Bring Your Own connection ID for custom deployments. client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. retry_config: Custom retry configuration. logger: Logger instance for request/response logging. **kwargs: Additional arguments passed to AnthropicBedrock client. @@ -175,6 +198,10 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, **kwargs: Any, @@ -185,12 +212,13 @@ def __init__( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), headers={ - **kwargs.pop("default_headers", {}), + **(default_headers or {}), **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), }, logger=logger, @@ -216,6 +244,10 @@ class UiPathAsyncAnthropicBedrock(AsyncAnthropicBedrock): model_name: The Anthropic model name. byo_connection_id: Bring Your Own connection ID for custom deployments. client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. retry_config: Custom retry configuration. logger: Logger instance for request/response logging. **kwargs: Additional arguments passed to AsyncAnthropicBedrock client. @@ -227,6 +259,10 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, **kwargs: Any, @@ -237,12 +273,13 @@ def __init__( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), headers={ - **kwargs.pop("default_headers", {}), + **(default_headers or {}), **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), }, logger=logger, @@ -268,6 +305,10 @@ class UiPathAnthropicVertex(AnthropicVertex): model_name: The Anthropic model name. byo_connection_id: Bring Your Own connection ID for custom deployments. client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. retry_config: Custom retry configuration. logger: Logger instance for request/response logging. **kwargs: Additional arguments passed to AnthropicVertex client. @@ -279,6 +320,10 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, **kwargs: Any, @@ -289,12 +334,13 @@ def __init__( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), headers={ - **kwargs.pop("default_headers", {}), + **(default_headers or {}), **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), }, logger=logger, @@ -320,6 +366,10 @@ class UiPathAsyncAnthropicVertex(AsyncAnthropicVertex): model_name: The Anthropic model name. byo_connection_id: Bring Your Own connection ID for custom deployments. client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. retry_config: Custom retry configuration. logger: Logger instance for request/response logging. **kwargs: Additional arguments passed to AsyncAnthropicVertex client. @@ -331,6 +381,10 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, **kwargs: Any, @@ -341,12 +395,13 @@ def __init__( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), headers={ - **kwargs.pop("default_headers", {}), + **(default_headers or {}), **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), }, logger=logger, @@ -372,6 +427,10 @@ class UiPathAnthropicFoundry(AnthropicFoundry): model_name: The Anthropic model name. byo_connection_id: Bring Your Own connection ID for custom deployments. client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. retry_config: Custom retry configuration. logger: Logger instance for request/response logging. **kwargs: Additional arguments passed to AnthropicFoundry client. @@ -383,6 +442,10 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, **kwargs: Any, @@ -393,12 +456,13 @@ def __init__( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), headers={ - **kwargs.pop("default_headers", {}), + **(default_headers or {}), **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), }, logger=logger, @@ -422,6 +486,10 @@ class UiPathAsyncAnthropicFoundry(AsyncAnthropicFoundry): model_name: The Anthropic model name. byo_connection_id: Bring Your Own connection ID for custom deployments. client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. retry_config: Custom retry configuration. logger: Logger instance for request/response logging. **kwargs: Additional arguments passed to AsyncAnthropicFoundry client. @@ -433,6 +501,10 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, **kwargs: Any, @@ -443,12 +515,13 @@ def __init__( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), headers={ - **kwargs.pop("default_headers", {}), + **(default_headers or {}), **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), }, logger=logger, diff --git a/src/uipath/llm_client/clients/google/client.py b/src/uipath/llm_client/clients/google/client.py index 6e1ae88..f8dbdbb 100644 --- a/src/uipath/llm_client/clients/google/client.py +++ b/src/uipath/llm_client/clients/google/client.py @@ -1,5 +1,5 @@ import logging -from typing import Any +from collections.abc import Mapping, Sequence from uipath.llm_client.httpx_client import UiPathHttpxAsyncClient, UiPathHttpxClient from uipath.llm_client.settings import ( @@ -27,9 +27,12 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, - **kwargs: Any, ): client_settings = client_settings or get_default_client_settings() api_config = UiPathAPIConfig( @@ -40,35 +43,38 @@ def __init__( api_version="v1beta1", freeze_base_url=True, ) + merged_headers = { + **(default_headers or {}), + **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), + } + base_url = client_settings.build_base_url(model_name=model_name, api_config=api_config) + auth = client_settings.build_auth_pipeline() + httpx_client = UiPathHttpxClient( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, - base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), - headers={ - **kwargs.pop("default_headers", {}), - **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), - }, + base_url=base_url, + headers=merged_headers, logger=logger, - auth=client_settings.build_auth_pipeline(), + auth=auth, ) httpx_async_client = UiPathHttpxAsyncClient( model_name=model_name, byo_connection_id=byo_connection_id, api_config=api_config, - timeout=kwargs.pop("timeout", None), - max_retries=kwargs.pop("max_retries", None), + timeout=timeout, + max_retries=max_retries, + captured_headers=captured_headers, retry_config=retry_config, - base_url=client_settings.build_base_url(model_name=model_name, api_config=api_config), - headers={ - **kwargs.pop("default_headers", {}), - **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), - }, + base_url=base_url, + headers=merged_headers, logger=logger, - auth=client_settings.build_auth_pipeline(), + auth=auth, ) super().__init__( api_key="PLACEHOLDER", diff --git a/src/uipath/llm_client/clients/normalized/__init__.py b/src/uipath/llm_client/clients/normalized/__init__.py new file mode 100644 index 0000000..f7a808e --- /dev/null +++ b/src/uipath/llm_client/clients/normalized/__init__.py @@ -0,0 +1,3 @@ +from uipath.llm_client.clients.normalized.client import UiPathNormalizedClient + +__all__ = ["UiPathNormalizedClient"] diff --git a/src/uipath/llm_client/clients/normalized/client.py b/src/uipath/llm_client/clients/normalized/client.py new file mode 100644 index 0000000..ca6d6fe --- /dev/null +++ b/src/uipath/llm_client/clients/normalized/client.py @@ -0,0 +1,363 @@ +"""Normalized (provider-agnostic) LLM client for UiPath LLM services. + +This module provides a lightweight HTTP client that speaks directly to UiPath's +normalized API endpoint, offering a consistent OpenAI-compatible interface across +all supported LLM providers (OpenAI, Google Gemini, Anthropic, etc.). + +Unlike the vendor-specific clients (UiPathOpenAI, UiPathAnthropic, UiPathGoogle), +this client requires no vendor SDK — it makes HTTP requests directly using the +UiPath httpx transport layer. + +Example: + >>> from uipath.llm_client.clients.normalized import UiPathNormalizedClient + >>> + >>> client = UiPathNormalizedClient(model_name="gpt-4o-2024-11-20") + >>> + >>> # Chat completions + >>> response = client.completions.create( + ... messages=[{"role": "user", "content": "Hello!"}] + ... ) + >>> print(response["choices"][0]["message"]["content"]) + >>> + >>> # Embeddings + >>> embed_client = UiPathNormalizedClient(model_name="text-embedding-3-large") + >>> result = embed_client.embeddings.create(input=["Hello world"]) + >>> print(result["data"][0]["embedding"]) +""" + +import json +import logging +from collections.abc import AsyncIterator, Iterator, Mapping, Sequence +from typing import Any + +from uipath.llm_client.httpx_client import UiPathHttpxAsyncClient, UiPathHttpxClient +from uipath.llm_client.settings import ( + UiPathAPIConfig, + UiPathBaseSettings, + get_default_client_settings, +) +from uipath.llm_client.settings.constants import ApiType, RoutingMode +from uipath.llm_client.utils.retry import RetryConfig + + +class NormalizedCompletions: + """Chat completions sub-resource for :class:`UiPathNormalizedClient`. + + Provides sync/async chat completion and streaming methods backed by + UiPath's normalized (provider-agnostic) completions endpoint. + + Accessed via ``client.completions``. + """ + + def __init__( + self, + model_name: str, + sync_client: UiPathHttpxClient, + async_client: UiPathHttpxAsyncClient, + ) -> None: + self._model_name = model_name + self._sync_client = sync_client + self._async_client = async_client + + def _build_body(self, messages: list[dict[str, Any]], **kwargs: Any) -> dict[str, Any]: + body: dict[str, Any] = {"model": self._model_name, "messages": messages} + body.update(kwargs) + return body + + def create( + self, + messages: list[dict[str, Any]], + **kwargs: Any, + ) -> dict[str, Any]: + """Send a synchronous chat completion request. + + Args: + messages: List of message dicts in OpenAI format, e.g. + ``[{"role": "user", "content": "Hello!"}]``. + **kwargs: Additional parameters forwarded to the API: + - temperature (float): Sampling temperature (0.0–2.0). + - max_tokens (int): Maximum tokens in the response. + - tools (list[dict]): Tool definitions for function calling. + - tool_choice (str | dict): Tool selection strategy. + - response_format (dict): Structured output format (JSON schema). + - stop (list[str]): Stop sequences. + + Returns: + The API response as a dict with OpenAI-compatible structure. + Key fields: ``choices[0].message.content``, ``usage``. + """ + body = self._build_body(messages, **kwargs) + response = self._sync_client.post("", json=body) + response.raise_for_status() + return response.json() # type: ignore[no-any-return] + + async def acreate( + self, + messages: list[dict[str, Any]], + **kwargs: Any, + ) -> dict[str, Any]: + """Send an asynchronous chat completion request. + + Args: + messages: List of message dicts in OpenAI format. + **kwargs: Additional parameters forwarded to the API (see ``create()``). + + Returns: + The API response as a dict with OpenAI-compatible structure. + """ + body = self._build_body(messages, **kwargs) + response = await self._async_client.post("", json=body) + response.raise_for_status() + return response.json() # type: ignore[no-any-return] + + def stream( + self, + messages: list[dict[str, Any]], + **kwargs: Any, + ) -> Iterator[dict[str, Any]]: + """Stream a synchronous chat completion, yielding parsed SSE chunks. + + The ``X-UiPath-Streaming-Enabled: true`` header is set automatically by + the underlying httpx client when streaming is requested. + + Args: + messages: List of message dicts in OpenAI format. + **kwargs: Additional parameters forwarded to the API (see ``create()``). + + Yields: + Parsed JSON dicts for each SSE chunk from the response stream. + """ + body = self._build_body(messages, **kwargs) + with self._sync_client.stream("POST", "", json=body) as response: + response.raise_for_status() + for line in response.iter_lines(): + if line.startswith("data:"): + line = line[5:].strip() + if not line or line == "[DONE]": + continue + try: + yield json.loads(line) + except json.JSONDecodeError: + continue + + async def astream( + self, + messages: list[dict[str, Any]], + **kwargs: Any, + ) -> AsyncIterator[dict[str, Any]]: + """Stream an asynchronous chat completion, yielding parsed SSE chunks. + + The ``X-UiPath-Streaming-Enabled: true`` header is set automatically by + the underlying httpx async client when streaming is requested. + + Args: + messages: List of message dicts in OpenAI format. + **kwargs: Additional parameters forwarded to the API (see ``create()``). + + Yields: + Parsed JSON dicts for each SSE chunk from the response stream. + """ + body = self._build_body(messages, **kwargs) + async with self._async_client.stream("POST", "", json=body) as response: + response.raise_for_status() + async for line in response.aiter_lines(): + if line.startswith("data:"): + line = line[5:].strip() + if not line or line == "[DONE]": + continue + try: + yield json.loads(line) + except json.JSONDecodeError: + continue + + +class NormalizedEmbeddings: + """Embeddings sub-resource for :class:`UiPathNormalizedClient`. + + Provides sync/async embedding methods backed by UiPath's normalized + (provider-agnostic) embeddings endpoint. + + Accessed via ``client.embeddings``. + + Response structure:: + + { + "data": [{"embedding": [0.1, 0.2, ...], "index": 0}], + "usage": {"prompt_tokens": N, "total_tokens": N} + } + """ + + def __init__( + self, + model_name: str, + sync_client: UiPathHttpxClient, + async_client: UiPathHttpxAsyncClient, + ) -> None: + self._model_name = model_name + self._sync_client = sync_client + self._async_client = async_client + + def _build_body(self, input: str | list[str], **kwargs: Any) -> dict[str, Any]: + # The normalized embeddings endpoint resolves the model from routing headers; + # the body only needs "input" (matching UiPathEmbeddings in the langchain client). + # The API requires input to always be a list. + body: dict[str, Any] = {"input": [input] if isinstance(input, str) else input} + body.update(kwargs) + return body + + def create( + self, + input: str | list[str], + **kwargs: Any, + ) -> dict[str, Any]: + """Generate embeddings synchronously. + + Args: + input: A single string or list of strings to embed. + **kwargs: Additional parameters forwarded to the API + (e.g., ``encoding_format``). + + Returns: + The API response dict. Extract vectors via + ``response["data"][i]["embedding"]``. + """ + body = self._build_body(input, **kwargs) + response = self._sync_client.post("", json=body) + response.raise_for_status() + return response.json() # type: ignore[no-any-return] + + async def acreate( + self, + input: str | list[str], + **kwargs: Any, + ) -> dict[str, Any]: + """Generate embeddings asynchronously. + + Args: + input: A single string or list of strings to embed. + **kwargs: Additional parameters forwarded to the API (see ``create()``). + + Returns: + The API response dict. Extract vectors via + ``response["data"][i]["embedding"]``. + """ + body = self._build_body(input, **kwargs) + response = await self._async_client.post("", json=body) + response.raise_for_status() + return response.json() # type: ignore[no-any-return] + + +class UiPathNormalizedClient: + """Provider-agnostic LLM client using UiPath's normalized API. + + Routes requests through UiPath's normalized endpoint, which provides a consistent + OpenAI-compatible interface across all supported LLM providers (OpenAI, Google + Gemini, Anthropic on Bedrock/Vertex, etc.). + + Unlike the vendor-specific clients (UiPathOpenAI, UiPathAnthropic, UiPathGoogle), + this client does not require or wrap a vendor SDK. It communicates directly with + the UiPath normalized HTTP endpoint using the shared httpx transport layer. + + Sub-resources: + - ``completions``: Chat completion methods (``create``, ``acreate``, ``stream``, + ``astream``). + - ``embeddings``: Embedding methods (``create``, ``acreate``). + + Args: + model_name: The model identifier (e.g., "gpt-4o-2024-11-20", "gemini-2.5-flash", + "anthropic.claude-haiku-4-5-20251001-v1:0"). + byo_connection_id: Bring Your Own connection ID for custom model deployments. + client_settings: UiPath client settings. Defaults to environment-based settings. + default_headers: Additional headers included in every request. + captured_headers: Case-insensitive response header name prefixes to capture. + Captured headers are stored in a ContextVar and can be retrieved with + ``get_captured_response_headers()``. Defaults to ``("x-uipath-",)``. + timeout: Client-side request timeout in seconds. + max_retries: Maximum number of retries for failed requests. Defaults to 0. + retry_config: Custom retry configuration (backoff strategy, retryable errors). + logger: Logger instance for request/response logging. + + Example: + >>> client = UiPathNormalizedClient(model_name="gpt-4o-2024-11-20") + >>> response = client.completions.create( + ... messages=[{"role": "user", "content": "What is 2+2?"}], + ... temperature=0.0, + ... ) + >>> print(response["choices"][0]["message"]["content"]) + >>> + >>> embed_client = UiPathNormalizedClient(model_name="text-embedding-3-large") + >>> result = embed_client.embeddings.create(input="Hello world") + >>> print(result["data"][0]["embedding"]) + """ + + def __init__( + self, + *, + model_name: str, + byo_connection_id: str | None = None, + client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, + retry_config: RetryConfig | None = None, + logger: logging.Logger | None = None, + ): + self.model_name = model_name + self.byo_connection_id = byo_connection_id + + client_settings = client_settings or get_default_client_settings() + + auth = client_settings.build_auth_pipeline() + + def _make_httpx_clients( + api_config: UiPathAPIConfig, + ) -> tuple[UiPathHttpxClient, UiPathHttpxAsyncClient]: + merged_headers = { + **(default_headers or {}), + **client_settings.build_auth_headers(model_name=model_name, api_config=api_config), + } + base_url = client_settings.build_base_url(model_name=model_name, api_config=api_config) + sync_client = UiPathHttpxClient( + model_name=model_name, + byo_connection_id=byo_connection_id, + api_config=api_config, + timeout=timeout, + max_retries=max_retries, + retry_config=retry_config, + captured_headers=captured_headers, + base_url=base_url, + headers=merged_headers, + logger=logger, + auth=auth, + ) + async_client = UiPathHttpxAsyncClient( + model_name=model_name, + byo_connection_id=byo_connection_id, + api_config=api_config, + timeout=timeout, + max_retries=max_retries, + retry_config=retry_config, + captured_headers=captured_headers, + base_url=base_url, + headers=merged_headers, + logger=logger, + auth=auth, + ) + return sync_client, async_client + + completions_api_config = UiPathAPIConfig( + api_type=ApiType.COMPLETIONS, + routing_mode=RoutingMode.NORMALIZED, + freeze_base_url=True, + ) + completions_sync, completions_async = _make_httpx_clients(completions_api_config) + self.completions = NormalizedCompletions(model_name, completions_sync, completions_async) + + embeddings_api_config = UiPathAPIConfig( + api_type=ApiType.EMBEDDINGS, + routing_mode=RoutingMode.NORMALIZED, + freeze_base_url=True, + ) + embeddings_sync, embeddings_async = _make_httpx_clients(embeddings_api_config) + self.embeddings = NormalizedEmbeddings(model_name, embeddings_sync, embeddings_async) diff --git a/src/uipath/llm_client/clients/openai/client.py b/src/uipath/llm_client/clients/openai/client.py index cb9b82d..90c6f91 100644 --- a/src/uipath/llm_client/clients/openai/client.py +++ b/src/uipath/llm_client/clients/openai/client.py @@ -1,5 +1,5 @@ import logging -from typing import Any +from collections.abc import Mapping, Sequence from uipath.llm_client.clients.openai.utils import OpenAIRequestHandler from uipath.llm_client.httpx_client import UiPathHttpxAsyncClient, UiPathHttpxClient @@ -23,20 +23,21 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, - **kwargs: Any, ): client_settings = client_settings or get_default_client_settings() - timeout = kwargs.pop("timeout", None) - max_retries = kwargs.pop("max_retries", None) - default_headers = kwargs.pop("default_headers", None) httpx_client = UiPathHttpxClient( model_name=model_name, byo_connection_id=byo_connection_id, timeout=timeout, max_retries=max_retries, headers=default_headers, + captured_headers=captured_headers, retry_config=retry_config, logger=logger, auth=client_settings.build_auth_pipeline(), @@ -63,20 +64,21 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, - **kwargs: Any, ): client_settings = client_settings or get_default_client_settings() - timeout = kwargs.pop("timeout", None) - max_retries = kwargs.pop("max_retries", None) - default_headers = kwargs.pop("default_headers", None) httpx_client = UiPathHttpxAsyncClient( model_name=model_name, byo_connection_id=byo_connection_id, timeout=timeout, max_retries=max_retries, headers=default_headers, + captured_headers=captured_headers, retry_config=retry_config, logger=logger, auth=client_settings.build_auth_pipeline(), @@ -103,20 +105,21 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, - **kwargs: Any, ): client_settings = client_settings or get_default_client_settings() - timeout = kwargs.pop("timeout", None) - max_retries = kwargs.pop("max_retries", None) - default_headers = kwargs.pop("default_headers", None) httpx_client = UiPathHttpxClient( model_name=model_name, byo_connection_id=byo_connection_id, timeout=timeout, max_retries=max_retries, headers=default_headers, + captured_headers=captured_headers, retry_config=retry_config, logger=logger, auth=client_settings.build_auth_pipeline(), @@ -144,20 +147,21 @@ def __init__( model_name: str, byo_connection_id: str | None = None, client_settings: UiPathBaseSettings | None = None, + default_headers: Mapping[str, str] | None = None, + captured_headers: Sequence[str] = ("x-uipath-",), + timeout: float | None = None, + max_retries: int = 0, retry_config: RetryConfig | None = None, logger: logging.Logger | None = None, - **kwargs: Any, ): client_settings = client_settings or get_default_client_settings() - timeout = kwargs.pop("timeout", None) - max_retries = kwargs.pop("max_retries", None) - default_headers = kwargs.pop("default_headers", None) httpx_client = UiPathHttpxAsyncClient( model_name=model_name, byo_connection_id=byo_connection_id, timeout=timeout, max_retries=max_retries, headers=default_headers, + captured_headers=captured_headers, retry_config=retry_config, logger=logger, auth=client_settings.build_auth_pipeline(), diff --git a/tests/cassettes.db b/tests/cassettes.db index f98a4a6461f5777fd6f4c4ebc0da6b73c1364508..15fc86108faa9b48f672c8c8d6d6e1cdfd23fa82 100644 GIT binary patch delta 564742 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

  • V_l^EJ0P_r@h{5o&OWqa)+8@!Lni&0B6)0H4V1| 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 diff --git a/tests/core/normalized/__init__.py b/tests/core/normalized/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/core/normalized/test_normalized_client.py b/tests/core/normalized/test_normalized_client.py new file mode 100644 index 0000000..ec1e8a6 --- /dev/null +++ b/tests/core/normalized/test_normalized_client.py @@ -0,0 +1,254 @@ +"""Integration tests for UiPathNormalizedClient. + +Tests the provider-agnostic normalized client against three providers: +- OpenAI (gpt-5.2-2025-12-11) +- Google Gemini (gemini-3-flash-preview) +- Anthropic on AWS Bedrock (anthropic.claude-haiku-4-5-20251001-v1:0) + +Each provider is tested for: +- Normal chat completion (sync and async) +- Structured output via JSON schema +- Tool calling +- Streaming (sync and async) + +Embeddings are tested with text-embedding-3-large and gemini-embedding-001. +""" + +import json +from typing import Any + +import pytest + +from uipath.llm_client.clients.normalized import UiPathNormalizedClient +from uipath.llm_client.settings import UiPathBaseSettings + +COMPLETION_MODELS = [ + "gpt-5.2-2025-12-11", + "gemini-3-flash-preview", + "anthropic.claude-haiku-4-5-20251001-v1:0", +] + +EMBEDDING_MODELS = [ + "text-embedding-3-large", + "gemini-embedding-001", +] + +# The normalized API expects the flat OpenAI function format (name/description/parameters +# at the top level), not the OpenAI tool format ({type: "function", function: {...}}). +# This matches what langchain's convert_to_openai_function() returns. +WEATHER_TOOL: dict[str, Any] = { + "name": "get_weather", + "description": "Get the current weather for a given location.", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and country, e.g. 'Paris, France'.", + }, + }, + "required": ["location"], + }, +} + +CAPITAL_SCHEMA: dict[str, Any] = { + "type": "json_schema", + "json_schema": { + "name": "capital_answer", + "strict": True, + "schema": { + "type": "object", + "properties": { + "capital": {"type": "string"}, + "country": {"type": "string"}, + }, + "required": ["capital", "country"], + "additionalProperties": False, + }, + }, +} + + +@pytest.fixture(params=COMPLETION_MODELS) +def model_name(request: pytest.FixtureRequest) -> str: + return request.param # type: ignore[no-any-return] + + +@pytest.fixture(params=EMBEDDING_MODELS) +def embedding_model_name(request: pytest.FixtureRequest) -> str: + return request.param # type: ignore[no-any-return] + + +@pytest.fixture +def client(model_name: str, client_settings: UiPathBaseSettings) -> UiPathNormalizedClient: + return UiPathNormalizedClient( + model_name=model_name, + client_settings=client_settings, + ) + + +@pytest.fixture +def embed_client( + embedding_model_name: str, client_settings: UiPathBaseSettings +) -> UiPathNormalizedClient: + return UiPathNormalizedClient( + model_name=embedding_model_name, + client_settings=client_settings, + ) + + +@pytest.mark.vcr +class TestNormalizedClientCompletions: + def test_create(self, client: UiPathNormalizedClient) -> None: + response = client.completions.create( + messages=[{"role": "user", "content": "Say 'hello' and nothing else."}], + max_tokens=500, + ) + + assert "choices" in response + assert len(response["choices"]) > 0 + message = response["choices"][0]["message"] + assert message["role"] == "assistant" + # Gemini 3 thinking models may omit content when only thinking blocks are present + assert message.get("content") or message.get("tool_calls") + + @pytest.mark.asyncio + async def test_acreate(self, client: UiPathNormalizedClient) -> None: + response = await client.completions.acreate( + messages=[{"role": "user", "content": "Say 'hello' and nothing else."}], + max_tokens=500, + ) + + assert "choices" in response + assert len(response["choices"]) > 0 + message = response["choices"][0]["message"] + assert message["role"] == "assistant" + assert message.get("content") or message.get("tool_calls") + + def test_structured_output(self, client: UiPathNormalizedClient) -> None: + response = client.completions.create( + messages=[{"role": "user", "content": "What is the capital of France?"}], + response_format=CAPITAL_SCHEMA, + max_tokens=100, + ) + + assert "choices" in response + content = response["choices"][0]["message"]["content"] + assert content + data = json.loads(content) + assert "capital" in data + assert "Paris" in data["capital"] + + @pytest.mark.asyncio + async def test_astructured_output(self, client: UiPathNormalizedClient) -> None: + response = await client.completions.acreate( + messages=[{"role": "user", "content": "What is the capital of France?"}], + response_format=CAPITAL_SCHEMA, + max_tokens=100, + ) + + assert "choices" in response + content = response["choices"][0]["message"]["content"] + assert content + data = json.loads(content) + assert "capital" in data + assert "Paris" in data["capital"] + + def test_tool_calling(self, client: UiPathNormalizedClient) -> None: + response = client.completions.create( + messages=[{"role": "user", "content": "What's the weather in Paris?"}], + tools=[WEATHER_TOOL], + tool_choice={"type": "auto"}, + max_tokens=200, + ) + + assert "choices" in response + choice = response["choices"][0] + tool_calls = choice["message"].get("tool_calls", []) + assert tool_calls, f"Expected tool_calls in response, got: {choice!r}" + # Normalized API returns tool calls with name at top level (flat format) + assert tool_calls[0].get("name") == "get_weather" + + @pytest.mark.asyncio + async def test_atool_calling(self, client: UiPathNormalizedClient) -> None: + response = await client.completions.acreate( + messages=[{"role": "user", "content": "What's the weather in Paris?"}], + tools=[WEATHER_TOOL], + tool_choice={"type": "auto"}, + max_tokens=200, + ) + + assert "choices" in response + choice = response["choices"][0] + tool_calls = choice["message"].get("tool_calls", []) + assert tool_calls, f"Expected tool_calls in response, got: {choice!r}" + assert tool_calls[0].get("name") == "get_weather" + + def test_stream(self, client: UiPathNormalizedClient) -> None: + chunks = list( + client.completions.stream( + messages=[{"role": "user", "content": "Say 'hello' and nothing else."}], + max_tokens=50, + ) + ) + + assert len(chunks) > 0 + all_content = "".join( + chunk.get("choices", [{}])[0].get("delta", {}).get("content", "") + or chunk.get("choices", [{}])[0].get("message", {}).get("content", "") + for chunk in chunks + if chunk.get("choices") + ) + assert all_content + + @pytest.mark.asyncio + async def test_astream(self, client: UiPathNormalizedClient) -> None: + chunks = [] + async for chunk in client.completions.astream( + messages=[{"role": "user", "content": "Say 'hello' and nothing else."}], + max_tokens=500, + ): + chunks.append(chunk) + + assert len(chunks) > 0 + all_content = "".join( + chunk.get("choices", [{}])[0].get("delta", {}).get("content", "") + or chunk.get("choices", [{}])[0].get("message", {}).get("content", "") + for chunk in chunks + if chunk.get("choices") + ) + assert all_content + + +@pytest.mark.vcr +class TestNormalizedClientEmbeddings: + def test_create(self, embed_client: UiPathNormalizedClient) -> None: + response = embed_client.embeddings.create(input="Hello world") + + assert "data" in response + assert len(response["data"]) > 0 + embedding = response["data"][0]["embedding"] + assert isinstance(embedding, list) + assert len(embedding) > 0 + assert all(isinstance(v, float) for v in embedding) + + @pytest.mark.asyncio + async def test_acreate(self, embed_client: UiPathNormalizedClient) -> None: + response = await embed_client.embeddings.acreate(input="Hello world") + + assert "data" in response + assert len(response["data"]) > 0 + embedding = response["data"][0]["embedding"] + assert isinstance(embedding, list) + assert len(embedding) > 0 + + def test_create_batch(self, embed_client: UiPathNormalizedClient) -> None: + texts = ["Hello world", "Goodbye world", "How are you?"] + response = embed_client.embeddings.create(input=texts) + + assert "data" in response + assert len(response["data"]) == len(texts) + for item in response["data"]: + assert "embedding" in item + assert isinstance(item["embedding"], list) + assert len(item["embedding"]) > 0 From 79eed4cc3faa4116efa078d970e43571ec2f3da7 Mon Sep 17 00:00:00 2001 From: Cosmin Maria Date: Wed, 1 Apr 2026 17:35:10 +0300 Subject: [PATCH 2/2] more fixes --- .../llm_client/clients/normalized/__init__.py | 16 +- .../llm_client/clients/normalized/client.py | 376 ++++++++++++++++-- tests/cassettes.db | Bin 46080000 -> 46125056 bytes .../core/normalized/test_normalized_client.py | 70 +++- 4 files changed, 415 insertions(+), 47 deletions(-) diff --git a/src/uipath/llm_client/clients/normalized/__init__.py b/src/uipath/llm_client/clients/normalized/__init__.py index f7a808e..43d1031 100644 --- a/src/uipath/llm_client/clients/normalized/__init__.py +++ b/src/uipath/llm_client/clients/normalized/__init__.py @@ -1,3 +1,15 @@ -from uipath.llm_client.clients.normalized.client import UiPathNormalizedClient +from uipath.llm_client.clients.normalized.client import ( + NormalizedCompletions, + NormalizedEmbeddings, + OutputFormatType, + ToolType, + UiPathNormalizedClient, +) -__all__ = ["UiPathNormalizedClient"] +__all__ = [ + "NormalizedCompletions", + "NormalizedEmbeddings", + "OutputFormatType", + "ToolType", + "UiPathNormalizedClient", +] diff --git a/src/uipath/llm_client/clients/normalized/client.py b/src/uipath/llm_client/clients/normalized/client.py index ca6d6fe..ede850a 100644 --- a/src/uipath/llm_client/clients/normalized/client.py +++ b/src/uipath/llm_client/clients/normalized/client.py @@ -19,6 +19,16 @@ ... ) >>> print(response["choices"][0]["message"]["content"]) >>> + >>> # Structured output with Pydantic + >>> from pydantic import BaseModel + >>> class Capital(BaseModel): + ... capital: str + ... country: str + >>> response = client.completions.create( + ... messages=[{"role": "user", "content": "Capital of France?"}], + ... output_format=Capital, + ... ) + >>> >>> # Embeddings >>> embed_client = UiPathNormalizedClient(model_name="text-embedding-3-large") >>> result = embed_client.embeddings.create(input=["Hello world"]) @@ -27,9 +37,11 @@ import json import logging -from collections.abc import AsyncIterator, Iterator, Mapping, Sequence +from collections.abc import AsyncIterator, Callable, Iterator, Mapping, Sequence from typing import Any +from pydantic import BaseModel + from uipath.llm_client.httpx_client import UiPathHttpxAsyncClient, UiPathHttpxClient from uipath.llm_client.settings import ( UiPathAPIConfig, @@ -39,6 +51,108 @@ from uipath.llm_client.settings.constants import ApiType, RoutingMode from uipath.llm_client.utils.retry import RetryConfig +# Type alias for tool definitions accepted by the normalized API. +# Each tool can be: +# - A dict in the flat OpenAI function format: {"name": ..., "description": ..., "parameters": ...} +# - A Pydantic BaseModel subclass (auto-converted to the flat format) +# - A callable with type annotations (auto-converted via docstring + signature) +ToolType = dict[str, Any] | type[BaseModel] | Callable[..., Any] + +# Type alias for structured output format. +# Can be: +# - A Pydantic BaseModel subclass (auto-converted to json_schema response_format) +# - A dict (passed through as-is to the API's response_format field) +OutputFormatType = type[BaseModel] | dict[str, Any] + + +def _pydantic_to_tool(model: type[BaseModel]) -> dict[str, Any]: + """Convert a Pydantic model class to the flat normalized API tool format.""" + schema = model.model_json_schema() + # Remove pydantic-internal keys that aren't part of JSON Schema + schema.pop("title", None) + return { + "name": model.__name__, + "description": model.__doc__ or model.__name__, + "parameters": schema, + } + + +def _callable_to_tool(func: Callable[..., Any]) -> dict[str, Any]: + """Convert a callable to the flat normalized API tool format using its signature.""" + import inspect + + sig = inspect.signature(func) + properties: dict[str, Any] = {} + required: list[str] = [] + for name, param in sig.parameters.items(): + prop: dict[str, Any] = {} + if param.annotation is not inspect.Parameter.empty: + type_map = {str: "string", int: "integer", float: "number", bool: "boolean"} + prop["type"] = type_map.get(param.annotation, "string") + else: + prop["type"] = "string" + properties[name] = prop + if param.default is inspect.Parameter.empty: + required.append(name) + + return { + "name": func.__name__, + "description": func.__doc__ or func.__name__, + "parameters": { + "type": "object", + "properties": properties, + "required": required, + }, + } + + +def _resolve_tool(tool: ToolType) -> dict[str, Any]: + """Convert a tool definition to the flat normalized API format.""" + if isinstance(tool, dict): + return tool + if isinstance(tool, type) and issubclass(tool, BaseModel): + return _pydantic_to_tool(tool) + if callable(tool): + return _callable_to_tool(tool) + raise TypeError(f"Unsupported tool type: {type(tool)}") + + +def _make_strict_schema(schema: dict[str, Any]) -> dict[str, Any]: + """Recursively add ``additionalProperties: false`` to all object schemas. + + Required by the ``strict: true`` mode of the normalized API's ``json_schema`` + response format. + """ + if schema.get("type") == "object": + schema.setdefault("additionalProperties", False) + for value in schema.values(): + if isinstance(value, dict): + _make_strict_schema(value) + elif isinstance(value, list): + for item in value: + if isinstance(item, dict): + _make_strict_schema(item) + return schema + + +def _resolve_output_format(output_format: OutputFormatType) -> dict[str, Any]: + """Convert an output format spec to the API's response_format field.""" + if isinstance(output_format, dict): + return output_format + if isinstance(output_format, type) and issubclass(output_format, BaseModel): + schema = output_format.model_json_schema() + schema.pop("title", None) + _make_strict_schema(schema) + return { + "type": "json_schema", + "json_schema": { + "name": output_format.__name__, + "strict": True, + "schema": schema, + }, + } + raise TypeError(f"Unsupported output_format type: {type(output_format)}") + class NormalizedCompletions: """Chat completions sub-resource for :class:`UiPathNormalizedClient`. @@ -59,14 +173,62 @@ def __init__( self._sync_client = sync_client self._async_client = async_client - def _build_body(self, messages: list[dict[str, Any]], **kwargs: Any) -> dict[str, Any]: + def _build_body( + self, + messages: list[dict[str, Any]], + *, + tools: list[ToolType] | None = None, + output_format: OutputFormatType | None = None, + tool_choice: str | dict[str, Any] | None = None, + temperature: float | None = None, + max_tokens: int | None = None, + top_p: float | None = None, + stop: list[str] | str | None = None, + n: int | None = None, + presence_penalty: float | None = None, + frequency_penalty: float | None = None, + **kwargs: Any, + ) -> dict[str, Any]: body: dict[str, Any] = {"model": self._model_name, "messages": messages} + + if tools is not None: + body["tools"] = [_resolve_tool(t) for t in tools] + if output_format is not None: + body["response_format"] = _resolve_output_format(output_format) + if tool_choice is not None: + body["tool_choice"] = tool_choice + if temperature is not None: + body["temperature"] = temperature + if max_tokens is not None: + body["max_tokens"] = max_tokens + if top_p is not None: + body["top_p"] = top_p + if stop is not None: + body["stop"] = stop + if n is not None: + body["n"] = n + if presence_penalty is not None: + body["presence_penalty"] = presence_penalty + if frequency_penalty is not None: + body["frequency_penalty"] = frequency_penalty + body.update(kwargs) return body def create( self, messages: list[dict[str, Any]], + *, + tools: list[ToolType] | None = None, + output_format: OutputFormatType | None = None, + tool_choice: str | dict[str, Any] | None = None, + temperature: float | None = None, + max_tokens: int | None = None, + top_p: float | None = None, + stop: list[str] | str | None = None, + n: int | None = None, + presence_penalty: float | None = None, + frequency_penalty: float | None = None, **kwargs: Any, ) -> dict[str, Any]: """Send a synchronous chat completion request. @@ -74,19 +236,41 @@ def create( Args: messages: List of message dicts in OpenAI format, e.g. ``[{"role": "user", "content": "Hello!"}]``. - **kwargs: Additional parameters forwarded to the API: - - temperature (float): Sampling temperature (0.0–2.0). - - max_tokens (int): Maximum tokens in the response. - - tools (list[dict]): Tool definitions for function calling. - - tool_choice (str | dict): Tool selection strategy. - - response_format (dict): Structured output format (JSON schema). - - stop (list[str]): Stop sequences. + tools: Tool definitions for function calling. Each element can be: + - A dict in flat format: ``{"name": ..., "description": ..., "parameters": ...}`` + - A Pydantic ``BaseModel`` subclass (auto-converted) + - A callable with type annotations (auto-converted) + output_format: Structured output format. Can be: + - A Pydantic ``BaseModel`` subclass (auto-converted to ``json_schema``) + - A dict passed as-is to ``response_format`` + tool_choice: Tool selection strategy (e.g., ``"auto"``, ``"required"``, + or ``{"type": "tool", "name": "..."}``). + temperature: Sampling temperature (0.0–2.0). + max_tokens: Maximum tokens in the response. + top_p: Nucleus sampling probability mass. + stop: Stop sequence(s) to end generation. + n: Number of completions to generate. + presence_penalty: Penalty for repeated tokens (-2.0 to 2.0). + frequency_penalty: Penalty based on token frequency (-2.0 to 2.0). + **kwargs: Additional parameters forwarded to the API. Returns: The API response as a dict with OpenAI-compatible structure. - Key fields: ``choices[0].message.content``, ``usage``. """ - body = self._build_body(messages, **kwargs) + body = self._build_body( + messages, + tools=tools, + output_format=output_format, + tool_choice=tool_choice, + temperature=temperature, + max_tokens=max_tokens, + top_p=top_p, + stop=stop, + n=n, + presence_penalty=presence_penalty, + frequency_penalty=frequency_penalty, + **kwargs, + ) response = self._sync_client.post("", json=body) response.raise_for_status() return response.json() # type: ignore[no-any-return] @@ -94,18 +278,52 @@ def create( async def acreate( self, messages: list[dict[str, Any]], + *, + tools: list[ToolType] | None = None, + output_format: OutputFormatType | None = None, + tool_choice: str | dict[str, Any] | None = None, + temperature: float | None = None, + max_tokens: int | None = None, + top_p: float | None = None, + stop: list[str] | str | None = None, + n: int | None = None, + presence_penalty: float | None = None, + frequency_penalty: float | None = None, **kwargs: Any, ) -> dict[str, Any]: """Send an asynchronous chat completion request. Args: messages: List of message dicts in OpenAI format. - **kwargs: Additional parameters forwarded to the API (see ``create()``). + tools: Tool definitions (see ``create()``). + output_format: Structured output format (see ``create()``). + tool_choice: Tool selection strategy. + temperature: Sampling temperature (0.0–2.0). + max_tokens: Maximum tokens in the response. + top_p: Nucleus sampling probability mass. + stop: Stop sequence(s). + n: Number of completions. + presence_penalty: Penalty for repeated tokens. + frequency_penalty: Penalty based on token frequency. + **kwargs: Additional parameters forwarded to the API. Returns: The API response as a dict with OpenAI-compatible structure. """ - body = self._build_body(messages, **kwargs) + body = self._build_body( + messages, + tools=tools, + output_format=output_format, + tool_choice=tool_choice, + temperature=temperature, + max_tokens=max_tokens, + top_p=top_p, + stop=stop, + n=n, + presence_penalty=presence_penalty, + frequency_penalty=frequency_penalty, + **kwargs, + ) response = await self._async_client.post("", json=body) response.raise_for_status() return response.json() # type: ignore[no-any-return] @@ -113,21 +331,52 @@ async def acreate( def stream( self, messages: list[dict[str, Any]], + *, + tools: list[ToolType] | None = None, + output_format: OutputFormatType | None = None, + tool_choice: str | dict[str, Any] | None = None, + temperature: float | None = None, + max_tokens: int | None = None, + top_p: float | None = None, + stop: list[str] | str | None = None, + n: int | None = None, + presence_penalty: float | None = None, + frequency_penalty: float | None = None, **kwargs: Any, ) -> Iterator[dict[str, Any]]: """Stream a synchronous chat completion, yielding parsed SSE chunks. - The ``X-UiPath-Streaming-Enabled: true`` header is set automatically by - the underlying httpx client when streaming is requested. - Args: messages: List of message dicts in OpenAI format. - **kwargs: Additional parameters forwarded to the API (see ``create()``). + tools: Tool definitions (see ``create()``). + output_format: Structured output format (see ``create()``). + tool_choice: Tool selection strategy. + temperature: Sampling temperature (0.0–2.0). + max_tokens: Maximum tokens in the response. + top_p: Nucleus sampling probability mass. + stop: Stop sequence(s). + n: Number of completions. + presence_penalty: Penalty for repeated tokens. + frequency_penalty: Penalty based on token frequency. + **kwargs: Additional parameters forwarded to the API. Yields: Parsed JSON dicts for each SSE chunk from the response stream. """ - body = self._build_body(messages, **kwargs) + body = self._build_body( + messages, + tools=tools, + output_format=output_format, + tool_choice=tool_choice, + temperature=temperature, + max_tokens=max_tokens, + top_p=top_p, + stop=stop, + n=n, + presence_penalty=presence_penalty, + frequency_penalty=frequency_penalty, + **kwargs, + ) with self._sync_client.stream("POST", "", json=body) as response: response.raise_for_status() for line in response.iter_lines(): @@ -143,21 +392,52 @@ def stream( async def astream( self, messages: list[dict[str, Any]], + *, + tools: list[ToolType] | None = None, + output_format: OutputFormatType | None = None, + tool_choice: str | dict[str, Any] | None = None, + temperature: float | None = None, + max_tokens: int | None = None, + top_p: float | None = None, + stop: list[str] | str | None = None, + n: int | None = None, + presence_penalty: float | None = None, + frequency_penalty: float | None = None, **kwargs: Any, ) -> AsyncIterator[dict[str, Any]]: """Stream an asynchronous chat completion, yielding parsed SSE chunks. - The ``X-UiPath-Streaming-Enabled: true`` header is set automatically by - the underlying httpx async client when streaming is requested. - Args: messages: List of message dicts in OpenAI format. - **kwargs: Additional parameters forwarded to the API (see ``create()``). + tools: Tool definitions (see ``create()``). + output_format: Structured output format (see ``create()``). + tool_choice: Tool selection strategy. + temperature: Sampling temperature (0.0–2.0). + max_tokens: Maximum tokens in the response. + top_p: Nucleus sampling probability mass. + stop: Stop sequence(s). + n: Number of completions. + presence_penalty: Penalty for repeated tokens. + frequency_penalty: Penalty based on token frequency. + **kwargs: Additional parameters forwarded to the API. Yields: Parsed JSON dicts for each SSE chunk from the response stream. """ - body = self._build_body(messages, **kwargs) + body = self._build_body( + messages, + tools=tools, + output_format=output_format, + tool_choice=tool_choice, + temperature=temperature, + max_tokens=max_tokens, + top_p=top_p, + stop=stop, + n=n, + presence_penalty=presence_penalty, + frequency_penalty=frequency_penalty, + **kwargs, + ) async with self._async_client.stream("POST", "", json=body) as response: response.raise_for_status() async for line in response.aiter_lines(): @@ -197,31 +477,50 @@ def __init__( self._sync_client = sync_client self._async_client = async_client - def _build_body(self, input: str | list[str], **kwargs: Any) -> dict[str, Any]: + def _build_body( + self, + input: str | list[str], + *, + encoding_format: str | None = None, + dimensions: int | None = None, + **kwargs: Any, + ) -> dict[str, Any]: # The normalized embeddings endpoint resolves the model from routing headers; # the body only needs "input" (matching UiPathEmbeddings in the langchain client). # The API requires input to always be a list. body: dict[str, Any] = {"input": [input] if isinstance(input, str) else input} + if encoding_format is not None: + body["encoding_format"] = encoding_format + if dimensions is not None: + body["dimensions"] = dimensions body.update(kwargs) return body def create( self, input: str | list[str], + *, + encoding_format: str | None = None, + dimensions: int | None = None, **kwargs: Any, ) -> dict[str, Any]: """Generate embeddings synchronously. Args: input: A single string or list of strings to embed. - **kwargs: Additional parameters forwarded to the API - (e.g., ``encoding_format``). + encoding_format: The format of the returned embeddings + (e.g., ``"float"``, ``"base64"``). + dimensions: The number of dimensions for the output embeddings + (only supported by some models). + **kwargs: Additional parameters forwarded to the API. Returns: The API response dict. Extract vectors via ``response["data"][i]["embedding"]``. """ - body = self._build_body(input, **kwargs) + body = self._build_body( + input, encoding_format=encoding_format, dimensions=dimensions, **kwargs + ) response = self._sync_client.post("", json=body) response.raise_for_status() return response.json() # type: ignore[no-any-return] @@ -229,19 +528,26 @@ def create( async def acreate( self, input: str | list[str], + *, + encoding_format: str | None = None, + dimensions: int | None = None, **kwargs: Any, ) -> dict[str, Any]: """Generate embeddings asynchronously. Args: input: A single string or list of strings to embed. - **kwargs: Additional parameters forwarded to the API (see ``create()``). + encoding_format: The format of the returned embeddings. + dimensions: The number of dimensions for the output embeddings. + **kwargs: Additional parameters forwarded to the API. Returns: The API response dict. Extract vectors via ``response["data"][i]["embedding"]``. """ - body = self._build_body(input, **kwargs) + body = self._build_body( + input, encoding_format=encoding_format, dimensions=dimensions, **kwargs + ) response = await self._async_client.post("", json=body) response.raise_for_status() return response.json() # type: ignore[no-any-return] @@ -285,11 +591,23 @@ class UiPathNormalizedClient: ... ) >>> print(response["choices"][0]["message"]["content"]) >>> + >>> # Structured output with Pydantic + >>> from pydantic import BaseModel + >>> class Answer(BaseModel): + ... result: int + >>> response = client.completions.create( + ... messages=[{"role": "user", "content": "What is 2+2?"}], + ... output_format=Answer, + ... ) + >>> >>> embed_client = UiPathNormalizedClient(model_name="text-embedding-3-large") >>> result = embed_client.embeddings.create(input="Hello world") >>> print(result["data"][0]["embedding"]) """ + completions: NormalizedCompletions + embeddings: NormalizedEmbeddings + def __init__( self, *, diff --git a/tests/cassettes.db b/tests/cassettes.db index 15fc86108faa9b48f672c8c8d6d6e1cdfd23fa82..f6d7f0ef89686ce6f9226cfca33bba54db690d03 100644 GIT binary patch delta 9673 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 WldyOiES`IP@PM&6Jp-Kby!l^AZDT$F diff --git a/tests/core/normalized/test_normalized_client.py b/tests/core/normalized/test_normalized_client.py index ec1e8a6..e484231 100644 --- a/tests/core/normalized/test_normalized_client.py +++ b/tests/core/normalized/test_normalized_client.py @@ -18,6 +18,7 @@ from typing import Any import pytest +from pydantic import BaseModel from uipath.llm_client.clients.normalized import UiPathNormalizedClient from uipath.llm_client.settings import UiPathBaseSettings @@ -33,10 +34,10 @@ "gemini-embedding-001", ] -# The normalized API expects the flat OpenAI function format (name/description/parameters -# at the top level), not the OpenAI tool format ({type: "function", function: {...}}). -# This matches what langchain's convert_to_openai_function() returns. -WEATHER_TOOL: dict[str, Any] = { + +# --- Tool definitions: dict, Pydantic, and callable forms --- + +WEATHER_TOOL_DICT: dict[str, Any] = { "name": "get_weather", "description": "Get the current weather for a given location.", "parameters": { @@ -51,10 +52,24 @@ }, } -CAPITAL_SCHEMA: dict[str, Any] = { + +class GetWeather(BaseModel): + """Get the current weather for a given location.""" + + location: str + + +def get_weather(location: str) -> str: + """Get the current weather for a given location.""" + return f"Sunny in {location}" + + +# --- Structured output: dict and Pydantic forms --- + +CAPITAL_SCHEMA_DICT: dict[str, Any] = { "type": "json_schema", "json_schema": { - "name": "capital_answer", + "name": "CapitalAnswer", "strict": True, "schema": { "type": "object", @@ -69,6 +84,11 @@ } +class CapitalAnswer(BaseModel): + capital: str + country: str + + @pytest.fixture(params=COMPLETION_MODELS) def model_name(request: pytest.FixtureRequest) -> str: return request.param # type: ignore[no-any-return] @@ -79,11 +99,15 @@ def embedding_model_name(request: pytest.FixtureRequest) -> str: return request.param # type: ignore[no-any-return] +_DEBUG_HEADERS = {"X-UiPath-LLMGateway-AllowFull4xxResponse": "true"} + + @pytest.fixture def client(model_name: str, client_settings: UiPathBaseSettings) -> UiPathNormalizedClient: return UiPathNormalizedClient( model_name=model_name, client_settings=client_settings, + default_headers=_DEBUG_HEADERS, ) @@ -94,6 +118,7 @@ def embed_client( return UiPathNormalizedClient( model_name=embedding_model_name, client_settings=client_settings, + default_headers=_DEBUG_HEADERS, ) @@ -125,10 +150,10 @@ async def test_acreate(self, client: UiPathNormalizedClient) -> None: assert message["role"] == "assistant" assert message.get("content") or message.get("tool_calls") - def test_structured_output(self, client: UiPathNormalizedClient) -> None: + def test_structured_output_pydantic(self, client: UiPathNormalizedClient) -> None: response = client.completions.create( messages=[{"role": "user", "content": "What is the capital of France?"}], - response_format=CAPITAL_SCHEMA, + output_format=CapitalAnswer, max_tokens=100, ) @@ -140,10 +165,10 @@ def test_structured_output(self, client: UiPathNormalizedClient) -> None: assert "Paris" in data["capital"] @pytest.mark.asyncio - async def test_astructured_output(self, client: UiPathNormalizedClient) -> None: + async def test_astructured_output_dict(self, client: UiPathNormalizedClient) -> None: response = await client.completions.acreate( messages=[{"role": "user", "content": "What is the capital of France?"}], - response_format=CAPITAL_SCHEMA, + output_format=CAPITAL_SCHEMA_DICT, max_tokens=100, ) @@ -154,10 +179,10 @@ async def test_astructured_output(self, client: UiPathNormalizedClient) -> None: assert "capital" in data assert "Paris" in data["capital"] - def test_tool_calling(self, client: UiPathNormalizedClient) -> None: + def test_tool_calling_dict(self, client: UiPathNormalizedClient) -> None: response = client.completions.create( messages=[{"role": "user", "content": "What's the weather in Paris?"}], - tools=[WEATHER_TOOL], + tools=[WEATHER_TOOL_DICT], tool_choice={"type": "auto"}, max_tokens=200, ) @@ -166,14 +191,27 @@ def test_tool_calling(self, client: UiPathNormalizedClient) -> None: choice = response["choices"][0] tool_calls = choice["message"].get("tool_calls", []) assert tool_calls, f"Expected tool_calls in response, got: {choice!r}" - # Normalized API returns tool calls with name at top level (flat format) assert tool_calls[0].get("name") == "get_weather" @pytest.mark.asyncio - async def test_atool_calling(self, client: UiPathNormalizedClient) -> None: + async def test_atool_calling_pydantic(self, client: UiPathNormalizedClient) -> None: response = await client.completions.acreate( messages=[{"role": "user", "content": "What's the weather in Paris?"}], - tools=[WEATHER_TOOL], + tools=[GetWeather], + tool_choice={"type": "auto"}, + max_tokens=200, + ) + + assert "choices" in response + choice = response["choices"][0] + tool_calls = choice["message"].get("tool_calls", []) + assert tool_calls, f"Expected tool_calls in response, got: {choice!r}" + assert tool_calls[0].get("name") == "GetWeather" + + def test_tool_calling_callable(self, client: UiPathNormalizedClient) -> None: + response = client.completions.create( + messages=[{"role": "user", "content": "What's the weather in Paris?"}], + tools=[get_weather], tool_choice={"type": "auto"}, max_tokens=200, ) @@ -188,7 +226,7 @@ def test_stream(self, client: UiPathNormalizedClient) -> None: chunks = list( client.completions.stream( messages=[{"role": "user", "content": "Say 'hello' and nothing else."}], - max_tokens=50, + max_tokens=500, ) )