fa45d8aa5f
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
Privoxy对node122:18003返回500,直连正常
53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
"""
|
|
Utility functions for the Agents API SDK.
|
|
"""
|
|
|
|
from typing import Dict, Mapping, Optional
|
|
|
|
from litellm.llms.base_llm.agents.transformation import BaseAgentsAPIConfig
|
|
|
|
|
|
def merge_agent_headers(
|
|
*,
|
|
dynamic_headers: Optional[Mapping[str, str]] = None,
|
|
static_headers: Optional[Mapping[str, str]] = None,
|
|
) -> Optional[Dict[str, str]]:
|
|
"""Merge outbound HTTP headers for A2A agent calls.
|
|
|
|
Merge rules:
|
|
- Start with ``dynamic_headers`` (values extracted from the incoming client request).
|
|
- Overlay ``static_headers`` (admin-configured per agent).
|
|
- Comparison is case-insensitive (HTTP headers are case-insensitive), so a
|
|
static ``Authorization`` strips any dynamic ``authorization`` before the
|
|
static value is written. The static side's casing is preserved.
|
|
|
|
If both contain the same header (case-insensitively), ``static_headers`` wins.
|
|
"""
|
|
merged: Dict[str, str] = {}
|
|
|
|
if dynamic_headers:
|
|
merged.update({str(k): str(v) for k, v in dynamic_headers.items()})
|
|
|
|
if static_headers:
|
|
static_lower = {str(k).lower() for k in static_headers}
|
|
merged = {k: v for k, v in merged.items() if k.lower() not in static_lower}
|
|
merged.update({str(k): str(v) for k, v in static_headers.items()})
|
|
|
|
return merged or None
|
|
|
|
|
|
def get_provider_agents_api_config(
|
|
custom_llm_provider: Optional[str],
|
|
) -> Optional[BaseAgentsAPIConfig]:
|
|
"""
|
|
Return a provider-specific BaseAgentsAPIConfig if the provider has a
|
|
native agent-creation API, or None otherwise.
|
|
"""
|
|
from litellm.types.utils import LlmProviders
|
|
|
|
if custom_llm_provider == LlmProviders.GEMINI.value:
|
|
from litellm.llms.gemini.agents.transformation import GeminiAgentsConfig
|
|
|
|
return GeminiAgentsConfig()
|
|
return None
|