unique-search-proxy 2026.28.0.dev2__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.
Files changed (109) hide show
  1. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/PKG-INFO +2 -2
  2. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/pyproject.toml +2 -2
  3. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/bing/client.py +2 -2
  4. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/bing/runner.py +7 -4
  5. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/bing/service.py +2 -1
  6. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/bing_agent.py +9 -4
  7. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/README.md +0 -0
  8. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/__init__.py +0 -0
  9. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/__init__.py +0 -0
  10. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/__init__.py +0 -0
  11. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/health.py +0 -0
  12. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/__init__.py +0 -0
  13. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/agent_search.py +0 -0
  14. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/configuration.py +0 -0
  15. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/crawl.py +0 -0
  16. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/openapi_examples.py +0 -0
  17. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/api/v1/search.py +0 -0
  18. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/app.py +0 -0
  19. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/__init__.py +0 -0
  20. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/__init__.py +0 -0
  21. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/factory.py +0 -0
  22. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/serialization.py +0 -0
  23. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/service_base.py +0 -0
  24. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/structured_output.py +0 -0
  25. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/vertexai/client.py +0 -0
  26. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/vertexai/gemini.py +0 -0
  27. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/agent_engines/vertexai/service.py +0 -0
  28. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/client/__init__.py +0 -0
  29. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/client/service.py +0 -0
  30. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/__init__.py +0 -0
  31. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/__init__.py +0 -0
  32. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/__init__.py +0 -0
  33. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/errors.py +0 -0
  34. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/html_markdown.py +0 -0
  35. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/processors/__init__.py +0 -0
  36. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/processors/html.py +0 -0
  37. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/processors/pdf.py +0 -0
  38. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/processors/plain_text.py +0 -0
  39. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/processing/registry.py +0 -0
  40. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/service.py +0 -0
  41. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/settings.py +0 -0
  42. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/basic/user_agent.py +0 -0
  43. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/factory.py +0 -0
  44. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/firecrawl/polling.py +0 -0
  45. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/firecrawl/request_body.py +0 -0
  46. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/firecrawl/service.py +0 -0
  47. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/jina/request_body.py +0 -0
  48. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/jina/service.py +0 -0
  49. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/pinned_egress.py +0 -0
  50. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/tavily/request_body.py +0 -0
  51. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/crawlers/tavily/service.py +0 -0
  52. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/provider_response.py +0 -0
  53. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/providers.py +0 -0
  54. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/registry.py +0 -0
  55. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/__init__.py +0 -0
  56. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/brave/__init__.py +0 -0
  57. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/brave/pagination.py +0 -0
  58. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/brave/query_params.py +0 -0
  59. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/brave/service.py +0 -0
  60. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/descriptor.py +0 -0
  61. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/factory.py +0 -0
  62. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/google/__init__.py +0 -0
  63. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/google/pagination.py +0 -0
  64. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/google/query_params.py +0 -0
  65. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/google/service.py +0 -0
  66. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/pagination.py +0 -0
  67. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/perplexity/__init__.py +0 -0
  68. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/perplexity/request_body.py +0 -0
  69. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/perplexity/service.py +0 -0
  70. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/search_engines/service_base.py +0 -0
  71. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/url_safety/__init__.py +0 -0
  72. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/core/url_safety/gate.py +0 -0
  73. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/error_handlers.py +0 -0
  74. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/__init__.py +0 -0
  75. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/__init__.py +0 -0
  76. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/introspect.py +0 -0
  77. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/schema.py +0 -0
  78. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/template.py +0 -0
  79. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/templates/provider_values_yaml.j2 +0 -0
  80. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/generator/values_yaml.py +0 -0
  81. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/metadata.py +0 -0
  82. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/registry.py +0 -0
  83. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/helm/url_safety_registration.py +0 -0
  84. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/logging_config.py +0 -0
  85. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/monitoring/__init__.py +0 -0
  86. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/monitoring/metrics.py +0 -0
  87. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/monitoring/setup.py +0 -0
  88. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/__init__.py +0 -0
  89. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/common.py +0 -0
  90. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/crawl.py +0 -0
  91. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/search.py +0 -0
  92. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/presets/types.py +0 -0
  93. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/__init__.py +0 -0
  94. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/base.py +0 -0
  95. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/client.py +0 -0
  96. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/monitoring.py +0 -0
  97. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/__init__.py +0 -0
  98. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/base.py +0 -0
  99. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/brave.py +0 -0
  100. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/firecrawl.py +0 -0
  101. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/google.py +0 -0
  102. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/jina.py +0 -0
  103. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/perplexity.py +0 -0
  104. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/tavily.py +0 -0
  105. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/providers/vertexai_agent.py +0 -0
  106. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/settings/secret_str.py +0 -0
  107. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/startup_report.py +0 -0
  108. {unique_search_proxy-2026.28.0.dev2 → unique_search_proxy-2026.28.0.dev3}/unique_search_proxy_client/web/utils/__init__.py +0 -0
  109. {unique_search_proxy-2026.28.0.dev2 → 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.dev2
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,7 +19,7 @@ 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.dev3,<2026.28.0rc0
22
+ Requires-Dist: unique-toolkit[monitoring]>=2026.28.0.dev4,<2026.28.0rc0
23
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique-search-proxy"
3
- version = "2026.28.0.dev2"
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,7 +21,7 @@ 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.dev3,<2026.28.0rc0",
24
+ "unique-toolkit[monitoring]>=2026.28.0.dev4,<2026.28.0rc0",
25
25
  "unique-search-proxy-core>=2026.28.0.dev1,<2026.28.0rc0",
26
26
  ]
27
27
 
@@ -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 = settings.bing_agent_credentials.bing_resource_connection_string
59
- if not connection_id or connection_id == "NOT_PROVIDED":
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 NOT_PROVIDED
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: str = Field(default=NOT_PROVIDED)
22
- bing_resource_connection_string: str = Field(default=NOT_PROVIDED)
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: str = Field(default="gpt-4o-deployment")
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",