unique-search-proxy 2026.28.0.dev1__tar.gz → 2026.28.0.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/PKG-INFO +3 -3
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/pyproject.toml +3 -3
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/bing/client.py +2 -2
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/bing/runner.py +7 -4
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/bing/service.py +2 -1
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/bing_agent.py +9 -4
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/README.md +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/health.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/agent_search.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/configuration.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/crawl.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/openapi_examples.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/search.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/app.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/factory.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/serialization.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/service_base.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/structured_output.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/vertexai/client.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/vertexai/gemini.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/vertexai/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/client/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/client/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/errors.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/html_markdown.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/processors/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/processors/html.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/processors/pdf.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/processors/plain_text.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/registry.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/settings.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/user_agent.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/factory.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/firecrawl/polling.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/firecrawl/request_body.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/firecrawl/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/jina/request_body.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/jina/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/pinned_egress.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/tavily/request_body.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/tavily/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/provider_response.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/providers.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/registry.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/brave/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/brave/pagination.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/brave/query_params.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/brave/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/descriptor.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/factory.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/google/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/google/pagination.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/google/query_params.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/google/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/pagination.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/perplexity/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/perplexity/request_body.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/perplexity/service.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/service_base.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/url_safety/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/url_safety/gate.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/error_handlers.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/introspect.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/schema.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/template.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/templates/provider_values_yaml.j2 +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/values_yaml.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/metadata.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/registry.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/url_safety_registration.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/logging_config.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/monitoring/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/monitoring/metrics.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/monitoring/setup.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/common.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/crawl.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/search.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/types.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/base.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/client.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/monitoring.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/base.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/brave.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/firecrawl.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/google.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/jina.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/perplexity.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/tavily.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/vertexai_agent.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/secret_str.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/startup_report.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/utils/__init__.py +0 -0
- {unique_search_proxy-2026.28.0.dev1 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/utils/url.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: unique-search-proxy
|
|
3
|
-
Version: 2026.28.0.
|
|
3
|
+
Version: 2026.28.0.dev3
|
|
4
4
|
Summary: Web Search Proxy implementation
|
|
5
5
|
Author: ThePhilAz
|
|
6
6
|
Author-email: ThePhilAz <rami.azouz@philico.com>
|
|
@@ -19,8 +19,8 @@ Requires-Dist: certifi>=2025.11.12,<2027
|
|
|
19
19
|
Requires-Dist: google-genai>=1.73.0,<2
|
|
20
20
|
Requires-Dist: google-auth>=2.43.0,<3
|
|
21
21
|
Requires-Dist: jinja2>=3.1.6,<4
|
|
22
|
-
Requires-Dist: unique-toolkit[monitoring]>=2026.28.0.
|
|
23
|
-
Requires-Dist: unique-search-proxy-core>=2026.28.0.
|
|
22
|
+
Requires-Dist: unique-toolkit[monitoring]>=2026.28.0.dev4,<2026.28.0rc0
|
|
23
|
+
Requires-Dist: unique-search-proxy-core>=2026.28.0.dev1,<2026.28.0rc0
|
|
24
24
|
Requires-Python: >=3.12
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "unique-search-proxy"
|
|
3
|
-
version = "2026.28.0.
|
|
3
|
+
version = "2026.28.0.dev3"
|
|
4
4
|
description = "Web Search Proxy implementation"
|
|
5
5
|
authors = [{ name = "ThePhilAz", email = "rami.azouz@philico.com" }]
|
|
6
6
|
readme = "README.md"
|
|
@@ -21,8 +21,8 @@ dependencies = [
|
|
|
21
21
|
"google-genai>=1.73.0,<2",
|
|
22
22
|
"google-auth>=2.43.0,<3",
|
|
23
23
|
"jinja2>=3.1.6,<4",
|
|
24
|
-
"unique-toolkit[monitoring]>=2026.28.0.
|
|
25
|
-
"unique-search-proxy-core>=2026.28.0.
|
|
24
|
+
"unique-toolkit[monitoring]>=2026.28.0.dev4,<2026.28.0rc0",
|
|
25
|
+
"unique-search-proxy-core>=2026.28.0.dev1,<2026.28.0rc0",
|
|
26
26
|
]
|
|
27
27
|
|
|
28
28
|
[dependency-groups]
|
|
@@ -11,7 +11,7 @@ from azure.identity.aio import DefaultAzureCredential, WorkloadIdentityCredentia
|
|
|
11
11
|
from unique_search_proxy_client.web.settings.providers.bing_agent import (
|
|
12
12
|
bing_agent_credentials,
|
|
13
13
|
)
|
|
14
|
-
from unique_search_proxy_client.web.settings.secret_str import NOT_PROVIDED
|
|
14
|
+
from unique_search_proxy_client.web.settings.secret_str import NOT_PROVIDED, read_secret
|
|
15
15
|
|
|
16
16
|
_LOGGER = logging.getLogger(__name__)
|
|
17
17
|
|
|
@@ -35,7 +35,7 @@ def get_project_client(
|
|
|
35
35
|
*,
|
|
36
36
|
endpoint: str | None = None,
|
|
37
37
|
) -> AIProjectClient:
|
|
38
|
-
resolved_endpoint = endpoint or bing_agent_credentials.endpoint
|
|
38
|
+
resolved_endpoint = endpoint or read_secret(bing_agent_credentials.endpoint)
|
|
39
39
|
if not resolved_endpoint or resolved_endpoint == NOT_PROVIDED:
|
|
40
40
|
msg = "Bing agent Azure AI project endpoint is not configured"
|
|
41
41
|
raise ValueError(msg)
|
|
@@ -20,6 +20,7 @@ from unique_search_proxy_client.web.core.agent_engines.structured_output import
|
|
|
20
20
|
build_agent_instructions,
|
|
21
21
|
)
|
|
22
22
|
from unique_search_proxy_client.web.settings.providers import bing_agent as settings
|
|
23
|
+
from unique_search_proxy_client.web.settings.secret_str import NOT_PROVIDED, read_secret
|
|
23
24
|
|
|
24
25
|
_LOGGER = logging.getLogger(__name__)
|
|
25
26
|
_AGENT_NAME_IDENTIFIER = "UNIQUE_GROUNDING_WITH_BING_AGENT"
|
|
@@ -38,7 +39,7 @@ async def _create_agent_id(agent_client: AIProjectClient) -> str:
|
|
|
38
39
|
creds = settings.bing_agent_credentials
|
|
39
40
|
agent = await agent_client.agents.create_agent(
|
|
40
41
|
name=_AGENT_NAME_IDENTIFIER,
|
|
41
|
-
model=creds.bing_agent_model,
|
|
42
|
+
model=read_secret(creds.bing_agent_model),
|
|
42
43
|
)
|
|
43
44
|
return agent.id
|
|
44
45
|
|
|
@@ -55,8 +56,10 @@ async def get_or_create_agent_id(agent_client: AIProjectClient) -> str:
|
|
|
55
56
|
|
|
56
57
|
|
|
57
58
|
def get_bing_grounding_tool(fetch_size: int) -> BingGroundingTool:
|
|
58
|
-
connection_id =
|
|
59
|
-
|
|
59
|
+
connection_id = read_secret(
|
|
60
|
+
settings.bing_agent_credentials.bing_resource_connection_string,
|
|
61
|
+
)
|
|
62
|
+
if not connection_id or connection_id == NOT_PROVIDED:
|
|
60
63
|
msg = "Bing agent resource connection string is not configured"
|
|
61
64
|
raise ValueError(msg)
|
|
62
65
|
return BingGroundingTool(connection_id=connection_id, count=fetch_size)
|
|
@@ -130,7 +133,7 @@ async def _create_agent_and_run_thread(
|
|
|
130
133
|
resolved_agent_id = await get_or_create_agent_id(agent_client)
|
|
131
134
|
return await agent_client.agents.create_thread_and_process_run(
|
|
132
135
|
agent_id=resolved_agent_id,
|
|
133
|
-
model=creds.bing_agent_model,
|
|
136
|
+
model=read_secret(creds.bing_agent_model),
|
|
134
137
|
toolset=get_bing_grounding_tool(fetch_size=fetch_size), # type: ignore[arg-type]
|
|
135
138
|
instructions=instructions,
|
|
136
139
|
thread=AgentThreadCreationOptions(
|
|
@@ -31,6 +31,7 @@ from unique_search_proxy_client.web.core.provider_response import transport_erro
|
|
|
31
31
|
from unique_search_proxy_client.web.settings.providers.bing_agent import (
|
|
32
32
|
bing_agent_credentials,
|
|
33
33
|
)
|
|
34
|
+
from unique_search_proxy_client.web.settings.secret_str import read_secret
|
|
34
35
|
|
|
35
36
|
_LOGGER = logging.getLogger(__name__)
|
|
36
37
|
|
|
@@ -59,7 +60,7 @@ class BingAgentSearchService(AgentSearchEngineService[BingAgentSearchRequest]):
|
|
|
59
60
|
try:
|
|
60
61
|
agent_client = get_project_client(
|
|
61
62
|
get_credentials(),
|
|
62
|
-
endpoint=creds.endpoint,
|
|
63
|
+
endpoint=read_secret(creds.endpoint),
|
|
63
64
|
)
|
|
64
65
|
output_schema = resolve_output_schema_for_engine(request.engine)
|
|
65
66
|
async with agent_client:
|
|
@@ -8,7 +8,10 @@ from unique_search_proxy_client.web.settings.providers.base import (
|
|
|
8
8
|
ProviderCredentials,
|
|
9
9
|
provider_credentials,
|
|
10
10
|
)
|
|
11
|
-
from unique_search_proxy_client.web.settings.secret_str import
|
|
11
|
+
from unique_search_proxy_client.web.settings.secret_str import (
|
|
12
|
+
NOT_PROVIDED,
|
|
13
|
+
LogSecretStr,
|
|
14
|
+
)
|
|
12
15
|
|
|
13
16
|
_ENV_PREFIX = "BING_AGENT_"
|
|
14
17
|
|
|
@@ -18,10 +21,12 @@ _ENV_PREFIX = "BING_AGENT_"
|
|
|
18
21
|
class _BingAgentCredentials(ProviderCredentials):
|
|
19
22
|
"""Environment-backed credentials for Bing grounding via Azure AI Projects."""
|
|
20
23
|
|
|
21
|
-
endpoint:
|
|
22
|
-
bing_resource_connection_string:
|
|
24
|
+
endpoint: LogSecretStr = Field(default=LogSecretStr(NOT_PROVIDED))
|
|
25
|
+
bing_resource_connection_string: LogSecretStr = Field(
|
|
26
|
+
default=LogSecretStr(NOT_PROVIDED),
|
|
27
|
+
)
|
|
23
28
|
agent_id: str | None = Field(default=None)
|
|
24
|
-
bing_agent_model:
|
|
29
|
+
bing_agent_model: LogSecretStr = Field(default=LogSecretStr(NOT_PROVIDED))
|
|
25
30
|
azure_identity_credential_type: str = Field(default="default")
|
|
26
31
|
azure_identity_validate_token_url: str = Field(
|
|
27
32
|
default="https://management.azure.com/.default",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|