Skip to content

Commit 4dd9ec9

Browse files
Copilotsingankit
andcommitted
Consolidate user agent logic into reusable helper function
Co-authored-by: singankit <[email protected]>
1 parent 2ddc2a6 commit 4dd9ec9

File tree

3 files changed

+22
-20
lines changed

3 files changed

+22
-20
lines changed

sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/_evaluate/_utils.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,21 @@
3838
)
3939

4040

41+
def construct_user_agent_string(base_user_agent: str = USER_AGENT) -> str:
42+
"""Construct a user agent string with custom user agent from context if available.
43+
44+
:param base_user_agent: The base user agent string to use. Defaults to USER_AGENT.
45+
:type base_user_agent: str
46+
:return: The constructed user agent string.
47+
:rtype: str
48+
"""
49+
custom_user_agent = get_current_user_agent()
50+
if custom_user_agent:
51+
return f"{base_user_agent} {custom_user_agent}"
52+
else:
53+
return base_user_agent
54+
55+
4156
class AzureMLWorkspace(NamedTuple):
4257
subscription_id: str
4358
resource_group_name: str
@@ -150,12 +165,11 @@ def _log_metrics_and_instance_results_onedp(
150165
)
151166

152167
# Use custom user agent from context if available
153-
custom_user_agent = get_current_user_agent()
154168
client_kwargs = {}
155-
if custom_user_agent:
169+
user_agent = construct_user_agent_string()
170+
if user_agent != USER_AGENT: # Only add custom policy if user agent is different from default
156171
# Create a user agent policy with the custom user agent
157172
from azure.core.pipeline.policies import UserAgentPolicy
158-
user_agent = f"{USER_AGENT} {custom_user_agent}"
159173
client_kwargs["user_agent_policy"] = UserAgentPolicy(base_user_agent=user_agent)
160174

161175
client = EvaluationServiceOneDPClient(

sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/_evaluators/_common/_base_prompty_eval.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,14 @@
1717
from azure.ai.evaluation._constants import EVALUATION_PASS_FAIL_MAPPING
1818
from azure.ai.evaluation._exceptions import EvaluationException, ErrorBlame, ErrorCategory, ErrorTarget
1919
from ..._common.utils import construct_prompty_model_config, validate_model_config, parse_quality_evaluator_reason_score
20+
from ..._evaluate._utils import construct_user_agent_string
2021
from . import EvaluatorBase
2122

2223
try:
2324
from ..._user_agent import USER_AGENT
2425
except ImportError:
2526
USER_AGENT = "None"
2627

27-
from ..._context import get_current_user_agent
28-
2928
T = TypeVar("T")
3029

3130

@@ -63,8 +62,7 @@ def __init__(self, *, result_key: str, prompty_file: str, model_config: dict, ev
6362

6463
subclass_name = self.__class__.__name__
6564
base_user_agent = f"{USER_AGENT} (type=evaluator; subtype={subclass_name})"
66-
custom_user_agent = get_current_user_agent()
67-
user_agent = f"{base_user_agent} {custom_user_agent}" if custom_user_agent else base_user_agent
65+
user_agent = construct_user_agent_string(base_user_agent)
6866
prompty_model_config = construct_prompty_model_config(
6967
validate_model_config(model_config),
7068
self._DEFAULT_OPEN_API_VERSION,

sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/_http_utils.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from typing_extensions import Self, Unpack
99

1010
from azure.ai.evaluation._user_agent import USER_AGENT
11-
from azure.ai.evaluation._context import get_current_user_agent
11+
from azure.ai.evaluation._evaluate._utils import construct_user_agent_string
1212
from azure.core.configuration import Configuration
1313
from azure.core.pipeline import AsyncPipeline, Pipeline
1414
from azure.core.pipeline.policies import (
@@ -455,12 +455,7 @@ def get_http_client(**kwargs: Any) -> HttpPipeline:
455455
:returns: An HttpPipeline with a set of applied policies:
456456
:rtype: HttpPipeline
457457
"""
458-
# Use custom user agent from context if available, otherwise use default
459-
custom_user_agent = get_current_user_agent()
460-
if custom_user_agent:
461-
user_agent = f"{USER_AGENT} {custom_user_agent}"
462-
else:
463-
user_agent = USER_AGENT
458+
user_agent = construct_user_agent_string()
464459

465460
kwargs.setdefault("user_agent_policy", UserAgentPolicy(base_user_agent=user_agent))
466461
return HttpPipeline(**kwargs)
@@ -472,12 +467,7 @@ def get_async_http_client(**kwargs: Any) -> AsyncHttpPipeline:
472467
:returns: An AsyncHttpPipeline with a set of applied policies:
473468
:rtype: AsyncHttpPipeline
474469
"""
475-
# Use custom user agent from context if available, otherwise use default
476-
custom_user_agent = get_current_user_agent()
477-
if custom_user_agent:
478-
user_agent = f"{USER_AGENT} {custom_user_agent}"
479-
else:
480-
user_agent = USER_AGENT
470+
user_agent = construct_user_agent_string()
481471

482472
kwargs.setdefault("user_agent_policy", UserAgentPolicy(base_user_agent=user_agent))
483473
return AsyncHttpPipeline(**kwargs)

0 commit comments

Comments
 (0)