From 186adc3e527ff5a98cd09d30422105e39ca7141c Mon Sep 17 00:00:00 2001 From: Dror Ivry Date: Sun, 1 Feb 2026 14:54:15 +0200 Subject: [PATCH 1/4] init --- assets/images/coverage.svg | 4 ++-- qualifire/consts.py | 2 +- uv.lock | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/images/coverage.svg b/assets/images/coverage.svg index 012a849..ffd257b 100644 --- a/assets/images/coverage.svg +++ b/assets/images/coverage.svg @@ -15,7 +15,7 @@ coverage coverage - 70% - 70% + 71% + 71% diff --git a/qualifire/consts.py b/qualifire/consts.py index 0e244fb..9d2b805 100644 --- a/qualifire/consts.py +++ b/qualifire/consts.py @@ -1,3 +1,3 @@ QUALIFIRE_API_KEY_ENV_VAR = "QUALIFIRE_API_KEY" QUALIFIRE_BASE_URL_ENV_VAR = "QUALIFIRE_BASE_URL" -_DEFAULT_BASE_URL = "https://proxy.qualifire.ai/" +_DEFAULT_BASE_URL = "https://api.qualifire.ai/" diff --git a/uv.lock b/uv.lock index bac7727..9ac184a 100644 --- a/uv.lock +++ b/uv.lock @@ -2771,7 +2771,7 @@ wheels = [ [[package]] name = "qualifire" -version = "0.14.0" +version = "0.15.0" source = { editable = "." } dependencies = [ { name = "pydantic", version = "2.10.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, From debf89b4e1481eba90a00a890217d051baa8a7fe Mon Sep 17 00:00:00 2001 From: Dror Ivry Date: Sun, 1 Feb 2026 14:55:27 +0200 Subject: [PATCH 2/4] version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7f67aaf..46eab94 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "qualifire" -version = "0.15.0" +version = "0.16.0" description = "Qualifire Python SDK" authors = [{ name = "qualifire-dev", email = "dror@qualifire.ai" }] requires-python = ">=3.8,<4" From 63a177071ab4ddc9bddbf91dff465dba375d7533 Mon Sep 17 00:00:00 2001 From: Dror Ivry Date: Sun, 1 Feb 2026 15:05:20 +0200 Subject: [PATCH 3/4] version --- qualifire/client.py | 4 ++-- uv.lock | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qualifire/client.py b/qualifire/client.py index 035cccb..ffa1463 100644 --- a/qualifire/client.py +++ b/qualifire/client.py @@ -207,7 +207,7 @@ def evaluate( ) ``` """ # noqa E501 - url = f"{self._base_url}/api/evaluation/evaluate" + url = f"{self._base_url}/api/v1/evaluation/evaluate" request = EvaluationRequest( input=input, output=output, @@ -269,7 +269,7 @@ def invoke_evaluation( available_tools: Optional[List[LLMToolDefinition]] = None, metadata: Optional[Dict[str, str]] = None, ) -> EvaluationResponse: - url = f"{self._base_url}/api/evaluation/invoke/" + url = f"{self._base_url}/api/v1/evaluation/invoke/" if messages is not None: if isinstance(messages, list) and all( diff --git a/uv.lock b/uv.lock index 9ac184a..448713b 100644 --- a/uv.lock +++ b/uv.lock @@ -2771,7 +2771,7 @@ wheels = [ [[package]] name = "qualifire" -version = "0.15.0" +version = "0.16.0" source = { editable = "." } dependencies = [ { name = "pydantic", version = "2.10.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, From 585fc54a46c841aa0439dddc2ec88e048e370a15 Mon Sep 17 00:00:00 2001 From: Dror Ivry Date: Sun, 1 Feb 2026 15:31:38 +0200 Subject: [PATCH 4/4] tracing --- assets/images/coverage.svg | 4 ++-- qualifire/consts.py | 2 ++ qualifire/tracer_init.py | 4 ++-- qualifire/utils.py | 9 +++++++++ 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/assets/images/coverage.svg b/assets/images/coverage.svg index ffd257b..012a849 100644 --- a/assets/images/coverage.svg +++ b/assets/images/coverage.svg @@ -15,7 +15,7 @@ coverage coverage - 71% - 71% + 70% + 70% diff --git a/qualifire/consts.py b/qualifire/consts.py index 9d2b805..65034b7 100644 --- a/qualifire/consts.py +++ b/qualifire/consts.py @@ -1,3 +1,5 @@ QUALIFIRE_API_KEY_ENV_VAR = "QUALIFIRE_API_KEY" QUALIFIRE_BASE_URL_ENV_VAR = "QUALIFIRE_BASE_URL" +QUALIFIRE_TRACING_URL_ENV_VAR = "QUALIFIRE_TRACING_URL" _DEFAULT_BASE_URL = "https://api.qualifire.ai/" +_DEFAULT_TRACING_URL = "https://tracing.qualifire.ai" diff --git a/qualifire/tracer_init.py b/qualifire/tracer_init.py index 34bbb3b..efc9f6e 100644 --- a/qualifire/tracer_init.py +++ b/qualifire/tracer_init.py @@ -10,7 +10,7 @@ except ImportError: traceloop_installed = False -from .utils import get_api_key, get_base_url +from .utils import get_api_key, get_tracing_url R = TypeVar("R") @@ -37,7 +37,7 @@ def __configure_tracer(api_key: str) -> None: __suppress_prints( Traceloop.init, app_name="qualifire-agent", - api_endpoint=f"{get_base_url()}/api/telemetry", # /v1/traces is automatically added # noqa: E501 + api_endpoint=f"{get_tracing_url()}/api/telemetry", # /v1/traces is automatically added # noqa: E501 headers={"X-Qualifire-API-Key": api_key}, telemetry_enabled=False, traceloop_sync_enabled=False, diff --git a/qualifire/utils.py b/qualifire/utils.py index 7a0cec6..d4dab24 100644 --- a/qualifire/utils.py +++ b/qualifire/utils.py @@ -2,8 +2,10 @@ from .consts import ( _DEFAULT_BASE_URL, + _DEFAULT_TRACING_URL, QUALIFIRE_API_KEY_ENV_VAR, QUALIFIRE_BASE_URL_ENV_VAR, + QUALIFIRE_TRACING_URL_ENV_VAR, ) @@ -19,3 +21,10 @@ def get_base_url() -> str: if not base_url: return _DEFAULT_BASE_URL return base_url + + +def get_tracing_url() -> str: + tracing_url = os.getenv(QUALIFIRE_TRACING_URL_ENV_VAR) + if not tracing_url: + return _DEFAULT_TRACING_URL + return tracing_url