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,直连正常
49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
"""Weave (W&B) preset."""
|
|
|
|
from litellm.integrations.otel.model.config import (
|
|
ExporterOwner,
|
|
ExporterSpec,
|
|
OpenTelemetryV2Config,
|
|
)
|
|
from litellm.integrations.otel.presets.utils import ensure_mappers
|
|
from litellm.integrations.weave.weave_otel import (
|
|
_get_weave_authorization_header,
|
|
get_weave_otel_config,
|
|
)
|
|
from litellm.types.utils import StandardCallbackDynamicParams
|
|
|
|
|
|
def weave_preset(
|
|
*,
|
|
config_overrides: OpenTelemetryV2Config | None = None,
|
|
) -> OpenTelemetryV2Config:
|
|
weave_cfg = get_weave_otel_config()
|
|
base = config_overrides or OpenTelemetryV2Config()
|
|
return base.model_copy(
|
|
update={
|
|
"exporters": [
|
|
*base.exporters,
|
|
ExporterSpec(
|
|
kind=weave_cfg.protocol or "otlp_http",
|
|
endpoint=weave_cfg.endpoint,
|
|
headers=weave_cfg.otlp_auth_headers,
|
|
owner=ExporterOwner.WEAVE_OTEL,
|
|
),
|
|
],
|
|
# Weave consumes OpenInference + a small Weave-specific overlay.
|
|
"mapper_names": ensure_mappers(base.mapper_names, "openinference", "weave"),
|
|
}
|
|
)
|
|
|
|
|
|
def weave_dynamic_headers(params: StandardCallbackDynamicParams) -> dict[str, str]:
|
|
"""Per-request Weave OTLP headers from team/key dynamic params."""
|
|
headers: dict[str, str] = {}
|
|
api_key = params.get("wandb_api_key")
|
|
if api_key:
|
|
headers["Authorization"] = _get_weave_authorization_header(api_key=api_key)
|
|
project_id = params.get("weave_project_id")
|
|
if project_id:
|
|
headers["project_id"] = project_id
|
|
return headers
|