From d8982f452c2ebf92d84b726058a54df78d0845ea Mon Sep 17 00:00:00 2001 From: vbeohar Date: Wed, 2 Sep 2026 00:57:12 -0400 Subject: [PATCH 1/7] First ipman agentic forecasting commit with data --- data/fred/IPMAN.parquet | Bin 0 -> 20621 bytes .../README.md | 67 +++++++++++ .../__init__.py | 16 +++ .../manufacturing_stress_forecasting/data.py | 98 ++++++++++++++++ .../features.py | 84 ++++++++++++++ .../predictors/__init__.py | 6 + .../predictors/logistic.py | 107 ++++++++++++++++++ .../run_smoke.py | 28 +++++ .../specs/manufacturing_stress_smoke.yaml | 21 ++++ .../targets.py | 42 +++++++ .../test_targets_and_features.py | 42 +++++++ scripts/fetch_manufacturing_stress.py | 28 +++++ uv.lock | 6 +- 13 files changed, 542 insertions(+), 3 deletions(-) create mode 100644 data/fred/IPMAN.parquet create mode 100644 implementations/manufacturing_stress_forecasting/README.md create mode 100644 implementations/manufacturing_stress_forecasting/__init__.py create mode 100644 implementations/manufacturing_stress_forecasting/data.py create mode 100644 implementations/manufacturing_stress_forecasting/features.py create mode 100644 implementations/manufacturing_stress_forecasting/predictors/__init__.py create mode 100644 implementations/manufacturing_stress_forecasting/predictors/logistic.py create mode 100644 implementations/manufacturing_stress_forecasting/run_smoke.py create mode 100644 implementations/manufacturing_stress_forecasting/specs/manufacturing_stress_smoke.yaml create mode 100644 implementations/manufacturing_stress_forecasting/targets.py create mode 100644 implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py create mode 100644 scripts/fetch_manufacturing_stress.py diff --git a/data/fred/IPMAN.parquet b/data/fred/IPMAN.parquet new file mode 100644 index 0000000000000000000000000000000000000000..0c2bd4e4e69445fc6d8e8e3230e9b7495169f9d8 GIT binary patch literal 20621 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 E0ZIcfjsO4v literal 0 HcmV?d00001 diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md new file mode 100644 index 000000000..bf130759b --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -0,0 +1,67 @@ +# Manufacturing stress forecasting — minimal IPMAN MVP + +This implementation asks one Track 1 question: + +> Given information available at a monthly forecast origin, what is the +> probability that U.S. manufacturing will be under stress three months later? + +The first version intentionally uses only FRED's `IPMAN` series. It excludes +Yahoo Finance, macro covariates, news, LLMs, and agents until the target and +backtest are easy to inspect. + +## Target + +A month is labelled `1` (stress) when IPMAN has declined by at least 2% over +its preceding three months; otherwise it is `0`. The threshold is a provisional +version-1 definition and should be reviewed visually before expanding the +project. + +The forecast made at month `t` predicts the stress label at `t + 3 months`. +That distinction makes this forecasting rather than current-state detection. + +## Predictors + +- `HistoricalFrequencyPredictor`: the visible historical stress rate. +- `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on + trailing 1-, 3-, 6-, and 12-month IPMAN percentage changes. + +Both return `BinaryForecast` probabilities and are scored with Brier score. + +## Data and cutoff assumptions + +`FREDAdapter` caches `IPMAN` at `data/fred/IPMAN.parquet`. Because the standard +FRED response does not provide point-in-time release vintages, this prototype +conservatively shifts `released_at` one month beyond each reference timestamp. +The limitation remains: historical FRED observations may contain later +revisions. A production-quality study should use ALFRED vintages. + +## Run + +From the repository root, put a personal FRED key in `.env` or export it: + +```bash +export FRED_API_KEY="..." +``` + +Populate the cache and inspect the registered series: + +```bash +uv run python scripts/fetch_manufacturing_stress.py +``` + +Run the small backtest: + +```bash +uv run --directory implementations python -m manufacturing_stress_forecasting.run_smoke +``` + +The output prints one mean Brier score per predictor; lower is better. The +logistic model should be compared against historical frequency, not judged in +isolation. + +## Next steps + +1. Plot IPMAN and the derived stress months; confirm or revise the 2% threshold. +2. Add a full monthly development backtest after the smoke run is stable. +3. Add a small FRED macro panel. +4. Add an agent only after the deterministic Track 1 experiment is credible. diff --git a/implementations/manufacturing_stress_forecasting/__init__.py b/implementations/manufacturing_stress_forecasting/__init__.py new file mode 100644 index 000000000..e4cbe5929 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/__init__.py @@ -0,0 +1,16 @@ +"""Minimal IPMAN-based manufacturing-stress forecasting use case.""" + +from manufacturing_stress_forecasting.data import ( + IPMAN_SERIES_ID, + STRESS_SERIES_ID, + build_manufacturing_stress_service, +) +from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor + + +__all__ = [ + "IPMAN_SERIES_ID", + "STRESS_SERIES_ID", + "ManufacturingStressLogisticPredictor", + "build_manufacturing_stress_service", +] diff --git a/implementations/manufacturing_stress_forecasting/data.py b/implementations/manufacturing_stress_forecasting/data.py new file mode 100644 index 000000000..187254448 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/data.py @@ -0,0 +1,98 @@ +"""FRED/IPMAN data service for the manufacturing-stress MVP.""" + +from __future__ import annotations + +from pathlib import Path + +from aieng.forecasting.data import DataService, SeriesMetadata +from aieng.forecasting.data.adapters import FREDAdapter +from aieng.forecasting.data.features import StaticFrameAdapter +from manufacturing_stress_forecasting.features import ( + FEATURE_PERIODS, + apply_conservative_monthly_release_lag, + build_ipman_feature_frames, +) +from manufacturing_stress_forecasting.targets import ( + DEFAULT_LOOKBACK_MONTHS, + DEFAULT_STRESS_THRESHOLD_PCT, + derive_manufacturing_stress_labels, +) + + +IPMAN_FRED_ID = "IPMAN" +IPMAN_SERIES_ID = "ipman_us_manufacturing_production" +STRESS_SERIES_ID = "manufacturing_stress" + +_REPO_ROOT = Path(__file__).resolve().parents[2] +DEFAULT_FRED_CACHE_DIR = _REPO_ROOT / "data" / "fred" + + +def build_manufacturing_stress_service( + *, + cache_dir: str | Path = DEFAULT_FRED_CACHE_DIR, + refresh: bool = False, + release_lag_months: int = 1, + stress_lookback_months: int = DEFAULT_LOOKBACK_MONTHS, + stress_threshold_pct: float = DEFAULT_STRESS_THRESHOLD_PCT, +) -> DataService: + """Build a service containing IPMAN, momentum features, and stress labels.""" + raw_ipman = FREDAdapter(IPMAN_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + ipman = apply_conservative_monthly_release_lag(raw_ipman, months=release_lag_months) + feature_frames = build_ipman_feature_frames(ipman) + stress = derive_manufacturing_stress_labels( + ipman, + lookback_months=stress_lookback_months, + threshold_pct=stress_threshold_pct, + ) + + service = DataService() + service.register( + IPMAN_SERIES_ID, + StaticFrameAdapter(ipman), + SeriesMetadata( + series_id=IPMAN_SERIES_ID, + description="U.S. manufacturing industrial production index (IPMAN)", + source="FRED (IPMAN)", + units="Index", + frequency="MS", + ), + ) + + for series_id, frame in feature_frames.items(): + periods = FEATURE_PERIODS[series_id] + service.register( + series_id, + StaticFrameAdapter(frame), + SeriesMetadata( + series_id=series_id, + description=f"Trailing {periods}-month percentage change in IPMAN", + source="Derived from FRED IPMAN", + units="Percent", + frequency="MS", + ), + ) + + service.register( + STRESS_SERIES_ID, + StaticFrameAdapter(stress), + SeriesMetadata( + series_id=STRESS_SERIES_ID, + description=( + "Binary U.S. manufacturing stress label: 1 when trailing " + f"{stress_lookback_months}-month IPMAN change is at or below {stress_threshold_pct:.1f}%" + ), + source="Derived from FRED IPMAN", + units="Binary event (0=no stress, 1=stress)", + frequency="MS", + ), + ) + return service + + +__all__ = [ + "DEFAULT_FRED_CACHE_DIR", + "IPMAN_FRED_ID", + "IPMAN_SERIES_ID", + "STRESS_SERIES_ID", + "build_manufacturing_stress_service", +] diff --git a/implementations/manufacturing_stress_forecasting/features.py b/implementations/manufacturing_stress_forecasting/features.py new file mode 100644 index 000000000..535aee05d --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/features.py @@ -0,0 +1,84 @@ +"""Leak-safe monthly features for the manufacturing-stress MVP.""" + +from __future__ import annotations + +import pandas as pd +from aieng.forecasting.data.features import canonical_three_col + + +IPMAN_CHANGE_1M_SERIES_ID = "ipman_change_1m_pct" +IPMAN_CHANGE_3M_SERIES_ID = "ipman_change_3m_pct" +IPMAN_CHANGE_6M_SERIES_ID = "ipman_change_6m_pct" +IPMAN_CHANGE_12M_SERIES_ID = "ipman_change_12m_pct" + +FEATURE_PERIODS: dict[str, int] = { + IPMAN_CHANGE_1M_SERIES_ID: 1, + IPMAN_CHANGE_3M_SERIES_ID: 3, + IPMAN_CHANGE_6M_SERIES_ID: 6, + IPMAN_CHANGE_12M_SERIES_ID: 12, +} +FEATURE_SERIES_IDS: tuple[str, ...] = tuple(FEATURE_PERIODS) + + +def apply_conservative_monthly_release_lag(frame: pd.DataFrame, months: int = 1) -> pd.DataFrame: + """Stamp observations as available ``months`` after their reference month. + + The standard FRED adapter uses ``released_at = timestamp`` because it does + not retrieve release vintages. For this monthly prototype, one month is a + deliberately conservative approximation that prevents a month-start + forecast from seeing that same month's completed production observation. + """ + if months < 0: + raise ValueError(f"months must be non-negative; got {months}") + out = frame.copy() + out["released_at"] = pd.to_datetime(out["timestamp"]) + pd.offsets.MonthBegin(months) + return canonical_three_col(out) + + +def percent_change_feature(ipman: pd.DataFrame, periods: int) -> pd.DataFrame: + """Return the trailing ``periods``-month IPMAN percentage change.""" + if periods < 1: + raise ValueError(f"periods must be positive; got {periods}") + out = ipman.copy().sort_values("timestamp").reset_index(drop=True) + out["value"] = out["value"].pct_change(periods=periods, fill_method=None) * 100.0 + return canonical_three_col(out) + + +def build_ipman_feature_frames(ipman: pd.DataFrame) -> dict[str, pd.DataFrame]: + """Build the four small momentum features used by the first baseline.""" + return {series_id: percent_change_feature(ipman, periods) for series_id, periods in FEATURE_PERIODS.items()} + + +def build_feature_snapshot( + origin: pd.Timestamp, + feature_frames: dict[str, pd.DataFrame], +) -> dict[str, float] | None: + """Return the latest feature values that were published by ``origin``. + + Filtering on ``released_at`` here is essential when reconstructing older + training examples: the surrounding ``ForecastContext`` protects the current + forecast origin, while this function recreates the stricter cutoff at each + past origin used to train the fit-at-origin logistic model. + """ + snapshot: dict[str, float] = {} + for series_id in FEATURE_SERIES_IDS: + frame = feature_frames[series_id] + visible = frame[pd.to_datetime(frame["released_at"]) <= origin] + if visible.empty: + return None + snapshot[series_id] = float(visible.sort_values("timestamp")["value"].iloc[-1]) + return snapshot + + +__all__ = [ + "FEATURE_PERIODS", + "FEATURE_SERIES_IDS", + "IPMAN_CHANGE_1M_SERIES_ID", + "IPMAN_CHANGE_3M_SERIES_ID", + "IPMAN_CHANGE_6M_SERIES_ID", + "IPMAN_CHANGE_12M_SERIES_ID", + "apply_conservative_monthly_release_lag", + "build_feature_snapshot", + "build_ipman_feature_frames", + "percent_change_feature", +] diff --git a/implementations/manufacturing_stress_forecasting/predictors/__init__.py b/implementations/manufacturing_stress_forecasting/predictors/__init__.py new file mode 100644 index 000000000..a9dad38c7 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/predictors/__init__.py @@ -0,0 +1,6 @@ +"""Predictors for the manufacturing-stress implementation.""" + +from manufacturing_stress_forecasting.predictors.logistic import ManufacturingStressLogisticPredictor + + +__all__ = ["ManufacturingStressLogisticPredictor"] diff --git a/implementations/manufacturing_stress_forecasting/predictors/logistic.py b/implementations/manufacturing_stress_forecasting/predictors/logistic.py new file mode 100644 index 000000000..a0c5d3632 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/predictors/logistic.py @@ -0,0 +1,107 @@ +"""Fit-at-origin logistic baseline for three-month-ahead manufacturing stress.""" + +from __future__ import annotations + +from datetime import datetime, timezone + +import numpy as np +import pandas as pd +from aieng.forecasting.data.context import ForecastContext +from aieng.forecasting.evaluation.prediction import BinaryForecast, Prediction +from aieng.forecasting.evaluation.predictor import Predictor +from aieng.forecasting.evaluation.task import ForecastingTask +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot + + +class ManufacturingStressLogisticPredictor(Predictor): + """Forecast manufacturing stress from four trailing IPMAN changes. + + The model is rebuilt at every backtest origin. For each resolved historical + outcome at month ``r``, its feature vector is reconstructed at ``r - lead`` + so the training examples obey the same three-month forecast horizon as the + current prediction. + """ + + def __init__(self, *, regularization_c: float = 1.0, min_training_examples: int = 24) -> None: + self._c = regularization_c + self._min_training_examples = min_training_examples + + @property + def predictor_id(self) -> str: + """Return the stable artifact identifier.""" + return "manufacturing_stress_logistic_ipman" + + def predict(self, task: ForecastingTask, context: ForecastContext) -> list[Prediction]: + """Fit on visible history and return one binary stress probability.""" + if task.payload_type != "binary": + raise ValueError(f"{type(self).__name__} requires payload_type='binary'.") + if len(task.horizons) != 1: + raise ValueError(f"{type(self).__name__} supports exactly one horizon; got {task.horizons}.") + + as_of = pd.Timestamp(context.as_of) + target = context.get_series(task.target_series_id) + feature_frames = {series_id: context.get_series(series_id) for series_id in FEATURE_SERIES_IDS} + lead = pd.tseries.frequencies.to_offset(task.frequency) * task.horizons[0] + + rows, outcomes = self._training_data(target, feature_frames, lead) + current = build_feature_snapshot(as_of, feature_frames) + payload, model_metadata = self._fit_and_predict(rows, outcomes, current) + + return [ + Prediction( + predictor_id=self.predictor_id, + task_id=task.task_id, + issued_at=datetime.now(tz=timezone.utc).replace(tzinfo=None), + as_of=context.as_of, + forecast_date=(as_of + lead).to_pydatetime(), + payload=payload, + metadata={"n_train": len(outcomes), **model_metadata}, + ) + ] + + def _training_data( + self, + target: pd.DataFrame, + feature_frames: dict[str, pd.DataFrame], + lead: pd.DateOffset, + ) -> tuple[list[list[float]], list[float]]: + rows: list[list[float]] = [] + outcomes: list[float] = [] + for resolution_date, outcome in zip(target["timestamp"], target["value"], strict=True): + past_origin = pd.Timestamp(resolution_date) - lead + snapshot = build_feature_snapshot(past_origin, feature_frames) + if snapshot is None: + continue + rows.append([snapshot[series_id] for series_id in FEATURE_SERIES_IDS]) + outcomes.append(float(outcome)) + return rows, outcomes + + def _fit_and_predict( + self, + rows: list[list[float]], + outcomes: list[float], + current: dict[str, float] | None, + ) -> tuple[BinaryForecast, dict[str, object]]: + base_rate = float(np.mean(outcomes)) if outcomes else 0.1 + if current is None: + return BinaryForecast(probability=base_rate), {"model": "base_rate_fallback"} + if len(outcomes) < self._min_training_examples or len(set(outcomes)) < 2: + return BinaryForecast(probability=base_rate), {"model": "base_rate_fallback"} + + from sklearn.linear_model import LogisticRegression # noqa: PLC0415 + from sklearn.pipeline import make_pipeline # noqa: PLC0415 + from sklearn.preprocessing import StandardScaler # noqa: PLC0415 + + model = make_pipeline(StandardScaler(), LogisticRegression(C=self._c, max_iter=1000)) + model.fit(np.asarray(rows), np.asarray(outcomes)) + current_row = np.asarray([[current[series_id] for series_id in FEATURE_SERIES_IDS]]) + probability = float(model.predict_proba(current_row)[0, 1]) + coefficients = model.named_steps["logisticregression"].coef_[0] + return BinaryForecast(probability=probability), { + "model": "logistic_regression", + "features": dict(zip(FEATURE_SERIES_IDS, (float(value) for value in current_row[0]), strict=True)), + "coefficients": dict(zip(FEATURE_SERIES_IDS, (float(value) for value in coefficients), strict=True)), + } + + +__all__ = ["ManufacturingStressLogisticPredictor"] diff --git a/implementations/manufacturing_stress_forecasting/run_smoke.py b/implementations/manufacturing_stress_forecasting/run_smoke.py new file mode 100644 index 000000000..fdef561b8 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/run_smoke.py @@ -0,0 +1,28 @@ +"""Run the two-predictor manufacturing-stress smoke backtest.""" + +from pathlib import Path + +import yaml +from aieng.forecasting.evaluation import BacktestSpec, backtest +from aieng.forecasting.methods import HistoricalFrequencyPredictor +from manufacturing_stress_forecasting.data import build_manufacturing_stress_service +from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor + + +SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" + + +def main() -> None: + """Load data, run both baselines, and print their mean Brier scores.""" + with SPEC_PATH.open() as file: + spec = BacktestSpec.model_validate(yaml.safe_load(file)) + + service = build_manufacturing_stress_service() + predictors = [HistoricalFrequencyPredictor(), ManufacturingStressLogisticPredictor()] + for predictor in predictors: + result = backtest(predictor=predictor, spec=spec, data_service=service) + print(f"{predictor.predictor_id}: {result.mean_score:.4f} mean {result.metric}") + + +if __name__ == "__main__": + main() diff --git a/implementations/manufacturing_stress_forecasting/specs/manufacturing_stress_smoke.yaml b/implementations/manufacturing_stress_forecasting/specs/manufacturing_stress_smoke.yaml new file mode 100644 index 000000000..39cc9e5cc --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/specs/manufacturing_stress_smoke.yaml @@ -0,0 +1,21 @@ +# Initial Track 1 experiment: one binary target, one three-month horizon. + +description: >- + Development backtest for forecasting whether U.S. manufacturing will be + under IPMAN-defined stress three months after each forecast origin. + +task: + task_id: manufacturing_stress_3m + target_series_id: manufacturing_stress + horizons: [3] + frequency: MS + payload_type: binary + description: >- + Probability that U.S. manufacturing will be under stress three months + ahead. A resolved month is stressed when IPMAN has declined by at least + 2 percent over its preceding three months. + +start: "2018-01-01" +end: "2024-12-01" +stride: 3 +warmup: 60 diff --git a/implementations/manufacturing_stress_forecasting/targets.py b/implementations/manufacturing_stress_forecasting/targets.py new file mode 100644 index 000000000..d2db91aa7 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/targets.py @@ -0,0 +1,42 @@ +"""Deterministic manufacturing-stress target construction.""" + +from __future__ import annotations + +import pandas as pd +from aieng.forecasting.data.features import canonical_three_col + + +DEFAULT_LOOKBACK_MONTHS = 3 +DEFAULT_STRESS_THRESHOLD_PCT = -2.0 + + +def derive_manufacturing_stress_labels( + ipman: pd.DataFrame, + *, + lookback_months: int = DEFAULT_LOOKBACK_MONTHS, + threshold_pct: float = DEFAULT_STRESS_THRESHOLD_PCT, +) -> pd.DataFrame: + """Create a monthly 0/1 target from trailing IPMAN deterioration. + + A month is labelled stressed when IPMAN has fallen by at least + ``abs(threshold_pct)`` percent over the preceding ``lookback_months``. + The label inherits the current IPMAN observation's ``released_at`` date, + because it cannot be known before that observation is published. + """ + if lookback_months < 1: + raise ValueError(f"lookback_months must be positive; got {lookback_months}") + if threshold_pct >= 0: + raise ValueError(f"threshold_pct must be negative; got {threshold_pct}") + + out = ipman.copy().sort_values("timestamp").reset_index(drop=True) + deterioration = out["value"].pct_change(periods=lookback_months, fill_method=None) * 100.0 + out["value"] = (deterioration <= threshold_pct).astype(float) + out.loc[deterioration.isna(), "value"] = float("nan") + return canonical_three_col(out) + + +__all__ = [ + "DEFAULT_LOOKBACK_MONTHS", + "DEFAULT_STRESS_THRESHOLD_PCT", + "derive_manufacturing_stress_labels", +] diff --git a/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py b/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py new file mode 100644 index 000000000..6afdd3e1e --- /dev/null +++ b/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py @@ -0,0 +1,42 @@ +"""Focused tests for label construction and historical feature cutoffs.""" + +import pandas as pd +import pytest +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot +from manufacturing_stress_forecasting.targets import derive_manufacturing_stress_labels + + +def test_stress_label_uses_trailing_three_month_decline() -> None: + dates = pd.date_range("2024-01-01", periods=5, freq="MS") + ipman = pd.DataFrame( + { + "timestamp": dates, + "value": [100.0, 100.0, 100.0, 100.0, 97.9], + "released_at": dates + pd.offsets.MonthBegin(1), + } + ) + + labels = derive_manufacturing_stress_labels(ipman) + + assert labels["value"].tolist() == [0.0, 1.0] + assert labels["timestamp"].tolist() == [pd.Timestamp("2024-04-01"), pd.Timestamp("2024-05-01")] + assert labels["released_at"].tolist() == [pd.Timestamp("2024-05-01"), pd.Timestamp("2024-06-01")] + + +def test_feature_snapshot_ignores_values_released_after_origin() -> None: + origin = pd.Timestamp("2024-03-01") + frames: dict[str, pd.DataFrame] = {} + for index, series_id in enumerate(FEATURE_SERIES_IDS): + frames[series_id] = pd.DataFrame( + { + "timestamp": [pd.Timestamp("2024-01-01"), pd.Timestamp("2024-02-01")], + "value": [float(index), 999.0], + "released_at": [pd.Timestamp("2024-02-01"), pd.Timestamp("2024-04-01")], + } + ) + + snapshot = build_feature_snapshot(origin, frames) + + assert snapshot is not None + for index, series_id in enumerate(FEATURE_SERIES_IDS): + assert snapshot[series_id] == pytest.approx(float(index)) diff --git a/scripts/fetch_manufacturing_stress.py b/scripts/fetch_manufacturing_stress.py new file mode 100644 index 000000000..af1ed1871 --- /dev/null +++ b/scripts/fetch_manufacturing_stress.py @@ -0,0 +1,28 @@ +"""Fetch/cache IPMAN and print the manufacturing-stress series summary.""" + +from __future__ import annotations + +import sys +from pathlib import Path + + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "implementations")) + +from dotenv import load_dotenv + + +load_dotenv(REPO_ROOT / ".env", override=False) + +from manufacturing_stress_forecasting.data import build_manufacturing_stress_service + + +def main() -> None: + """Populate the IPMAN cache and report the derived series.""" + service = build_manufacturing_stress_service() + print(service.summary().to_string(index=False)) + + +if __name__ == "__main__": + main() diff --git a/uv.lock b/uv.lock index 7314a4a59..a1ba2aec6 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.12, <4.0" resolution-markers = [ "python_full_version >= '3.15' and sys_platform == 'win32'", @@ -70,7 +70,7 @@ dev = [ [package.metadata] requires-dist = [ - { name = "agentic-forecasting-implementations", editable = "implementations" }, + { name = "agentic-forecasting-implementations", virtual = "implementations" }, { name = "ipykernel", specifier = ">=7.3.0" }, { name = "jupyter", specifier = ">=1.1.1" }, { name = "lightgbm", specifier = ">=4.0.0" }, @@ -97,7 +97,7 @@ dev = [ [[package]] name = "agentic-forecasting-implementations" version = "0.1.0" -source = { editable = "implementations" } +source = { virtual = "implementations" } dependencies = [ { name = "aieng-forecasting", extra = ["agentic", "documents", "llm", "numerical"] }, { name = "beautifulsoup4" }, From 19f86a9e0d467d22a16c682d9a189490f41a62a2 Mon Sep 17 00:00:00 2001 From: vbeohar Date: Mon, 21 Sep 2026 23:52:15 -0400 Subject: [PATCH 2/7] Added agent predictor --- .../analyst_agent/__init__.py | 14 ++ .../analyst_agent/agent.py | 146 ++++++++++++++++++ .../run_agent_prediction.py | 54 +++++++ .../test_agent_prompt.py | 71 +++++++++ 4 files changed, 285 insertions(+) create mode 100644 implementations/manufacturing_stress_forecasting/analyst_agent/__init__.py create mode 100644 implementations/manufacturing_stress_forecasting/analyst_agent/agent.py create mode 100644 implementations/manufacturing_stress_forecasting/run_agent_prediction.py create mode 100644 implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/__init__.py b/implementations/manufacturing_stress_forecasting/analyst_agent/__init__.py new file mode 100644 index 000000000..4d704e53c --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/__init__.py @@ -0,0 +1,14 @@ +"""Quantitative-only manufacturing-stress analyst agent.""" + +from manufacturing_stress_forecasting.analyst_agent.agent import ( + ManufacturingStressPromptBuilder, + build_manufacturing_stress_agent_config, + build_manufacturing_stress_agent_predictor, +) + + +__all__ = [ + "ManufacturingStressPromptBuilder", + "build_manufacturing_stress_agent_config", + "build_manufacturing_stress_agent_predictor", +] diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py new file mode 100644 index 000000000..5fc32724c --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py @@ -0,0 +1,146 @@ +"""Quantitative-only ADK agent for binary manufacturing-stress forecasts.""" + +from __future__ import annotations + +import json +from typing import Any + +import pandas as pd +from aieng.forecasting.data.context import ForecastContext +from aieng.forecasting.evaluation.task import ForecastingTask +from aieng.forecasting.methods.agentic import ( + AgentPredictor, + DiscreteAgentForecastOutput, + build_adk_agent, +) +from aieng.forecasting.methods.agentic.agent_factory import AgentConfig +from aieng.forecasting.models import LITE_MODEL +from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot +from manufacturing_stress_forecasting.targets import ( + DEFAULT_LOOKBACK_MONTHS, + DEFAULT_STRESS_THRESHOLD_PCT, +) +from pydantic import BaseModel, Field + + +def _build_instruction() -> str: + schema = DiscreteAgentForecastOutput.prompt_schema_json() + return ( + "## Role\n\n" + "You are a cautious U.S. manufacturing-cycle analyst. Estimate the probability that the " + "binary IPMAN stress event in the supplied task resolves to 1 at the specified forecast date.\n\n" + "## Rules\n\n" + "1. Use only the JSON payload. Do not use remembered events or facts after `as_of`.\n" + "2. Start from the supplied historical base rate, then adjust using the current IPMAN momentum signals.\n" + "3. Treat more-negative short- and medium-horizon IPMAN changes as evidence for stress, but do not " + "turn a weak signal into certainty.\n" + "4. `probability` means P(stress=1), not confidence in your explanation.\n" + "5. Give a concise rationale, identify both supporting and countervailing evidence, and remain calibrated.\n" + "6. Use `direction_bias='down'` when signals point toward manufacturing stress, `up` when they point " + "away from stress, and `neutral` when mixed.\n\n" + "## Output\n\n" + "Return exactly one JSON object matching this structure, with no markdown fence or preamble:\n\n" + schema + ) + + +class ManufacturingStressPromptBuilder(BaseModel): + """Serialize cutoff-safe IPMAN evidence into the agent's prompt.""" + + model_config = {"extra": "forbid"} + + recent_history_months: int = Field(default=24, ge=6, le=120) + trailing_base_rate_months: int = Field(default=60, ge=12, le=240) + + def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: + """Build one structured, cutoff-safe forecast payload.""" + if task.payload_type != "binary" or len(task.horizons) != 1: + raise ValueError("ManufacturingStressPromptBuilder requires one binary forecast horizon.") + + as_of = pd.Timestamp(context.as_of) + offset = pd.tseries.frequencies.to_offset(task.frequency) + forecast_date = as_of + offset * task.horizons[0] + ipman = context.get_series(IPMAN_SERIES_ID).sort_values("timestamp") + target = context.get_series(task.target_series_id).sort_values("timestamp") + feature_frames = {series_id: context.get_series(series_id) for series_id in FEATURE_SERIES_IDS} + current_signals = build_feature_snapshot(as_of, feature_frames) + + target_values = target["value"].astype(float) + trailing_values = target_values.tail(self.trailing_base_rate_months) + recent_ipman = [ + { + "reference_month": str(pd.Timestamp(timestamp).date()), + "value": float(value), + "released_at": str(pd.Timestamp(released_at).date()), + } + for timestamp, value, released_at in zip( + ipman["timestamp"].tail(self.recent_history_months), + ipman["value"].tail(self.recent_history_months), + ipman["released_at"].tail(self.recent_history_months), + strict=True, + ) + ] + + payload: dict[str, Any] = { + "task": { + "task_id": task.task_id, + "question": task.description, + "horizon_months": task.horizons[0], + }, + "as_of": str(as_of.date()), + "forecast_date": str(forecast_date.date()), + "target_definition": { + "event": "manufacturing stress", + "stress_value": 1, + "no_stress_value": 0, + "lookback_months": DEFAULT_LOOKBACK_MONTHS, + "threshold_pct": DEFAULT_STRESS_THRESHOLD_PCT, + "rule": ("stress=1 when trailing IPMAN percentage change is less than or equal to threshold_pct"), + }, + "current_ipman_signals_pct": current_signals, + "historical_stress": { + "n_visible_months": len(target_values), + "all_history_base_rate": float(target_values.mean()) if len(target_values) else None, + "trailing_window_months": self.trailing_base_rate_months, + "trailing_base_rate": float(trailing_values.mean()) if len(trailing_values) else None, + }, + "recent_ipman": recent_ipman, + } + return json.dumps(payload, indent=2) + + +def build_manufacturing_stress_agent_config(model: str = LITE_MODEL) -> AgentConfig: + """Build the tool-free manufacturing analyst configuration.""" + return AgentConfig( + name="manufacturing_stress_analyst", + model=model, + instruction=_build_instruction(), + temperature=0.1, + seed=42, + max_output_tokens=2_048, + ) + + +def build_manufacturing_stress_agent_predictor( + config: AgentConfig | None = None, +) -> AgentPredictor: + """Wrap the analyst in the standard binary AgentPredictor contract.""" + return AgentPredictor( + agent_config=config or build_manufacturing_stress_agent_config(), + prompt_builder=ManufacturingStressPromptBuilder(), + output_schema=DiscreteAgentForecastOutput, + ) + + +def __getattr__(name: str) -> Any: + """Expose a schema-free root agent for ``adk run`` and ``adk web``.""" + if name == "root_agent": + return build_adk_agent(build_manufacturing_stress_agent_config()) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__all__ = [ + "ManufacturingStressPromptBuilder", + "build_manufacturing_stress_agent_config", + "build_manufacturing_stress_agent_predictor", +] diff --git a/implementations/manufacturing_stress_forecasting/run_agent_prediction.py b/implementations/manufacturing_stress_forecasting/run_agent_prediction.py new file mode 100644 index 000000000..5a7245df1 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/run_agent_prediction.py @@ -0,0 +1,54 @@ +"""Run one current, quantitative-only manufacturing-stress agent forecast.""" + +from __future__ import annotations + +import json +from pathlib import Path + +import pandas as pd +import yaml +from aieng.forecasting.evaluation import BacktestSpec +from aieng.forecasting.methods import HistoricalFrequencyPredictor +from manufacturing_stress_forecasting.analyst_agent import build_manufacturing_stress_agent_predictor +from manufacturing_stress_forecasting.data import ( + IPMAN_SERIES_ID, + build_manufacturing_stress_service, +) +from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor + + +SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" + + +def main() -> None: + """Forecast from the most recent cached IPMAN release date.""" + with SPEC_PATH.open() as file: + task = BacktestSpec.model_validate(yaml.safe_load(file)).task + + service = build_manufacturing_stress_service() + full_ipman = service.get_series(IPMAN_SERIES_ID, as_of=pd.Timestamp("2100-01-01").to_pydatetime()) + as_of = pd.Timestamp(full_ipman["released_at"].max()) + context = service.context(as_of=as_of.to_pydatetime()) + + predictors = [ + HistoricalFrequencyPredictor(), + ManufacturingStressLogisticPredictor(), + build_manufacturing_stress_agent_predictor(), + ] + print(f"Forecast origin: {as_of.date()}") + print( + f"Latest visible IPMAN reference month: {pd.Timestamp(context.get_series(IPMAN_SERIES_ID)['timestamp'].max()).date()}" + ) + for predictor in predictors: + prediction = predictor.predict(task, context)[0] + output = { + "predictor_id": prediction.predictor_id, + "forecast_date": str(pd.Timestamp(prediction.forecast_date).date()), + "stress_probability": prediction.payload.probability, + "metadata": prediction.metadata, + } + print(json.dumps(output, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py new file mode 100644 index 000000000..88c46263b --- /dev/null +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py @@ -0,0 +1,71 @@ +"""Tests for the manufacturing-stress agent payload.""" + +import json +from datetime import datetime + +import pandas as pd +from aieng.forecasting.data import DataService, SeriesMetadata +from aieng.forecasting.data.features import StaticFrameAdapter +from aieng.forecasting.evaluation import ForecastingTask +from manufacturing_stress_forecasting.analyst_agent import ManufacturingStressPromptBuilder +from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID, STRESS_SERIES_ID +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS + + +def _frame(values: list[float], *, future_value: float | None = None) -> pd.DataFrame: + dates = pd.date_range("2020-01-01", periods=len(values), freq="MS") + frame = pd.DataFrame({"timestamp": dates, "value": values, "released_at": dates}) + if future_value is not None: + frame = pd.concat( + [ + frame, + pd.DataFrame( + { + "timestamp": [pd.Timestamp("2020-07-01")], + "value": [future_value], + "released_at": [pd.Timestamp("2020-08-01")], + } + ), + ], + ignore_index=True, + ) + return frame + + +def test_prompt_uses_only_cutoff_visible_evidence() -> None: + service = DataService() + metadata = lambda series_id: SeriesMetadata( # noqa: E731 + series_id=series_id, + description=series_id, + source="test", + units="test", + frequency="MS", + ) + service.register( + IPMAN_SERIES_ID, + StaticFrameAdapter(_frame([100, 101, 102, 103, 104, 105], future_value=999)), + metadata(IPMAN_SERIES_ID), + ) + service.register( + STRESS_SERIES_ID, StaticFrameAdapter(_frame([0, 0, 1, 0, 0, 0], future_value=1)), metadata(STRESS_SERIES_ID) + ) + for index, series_id in enumerate(FEATURE_SERIES_IDS): + service.register( + series_id, StaticFrameAdapter(_frame([float(index)] * 6, future_value=999)), metadata(series_id) + ) + + task = ForecastingTask( + task_id="manufacturing_stress_3m", + target_series_id=STRESS_SERIES_ID, + horizons=[3], + frequency="MS", + payload_type="binary", + description="Will manufacturing be stressed three months ahead?", + ) + prompt = ManufacturingStressPromptBuilder()(task=task, context=service.context(datetime(2020, 6, 1))) + payload = json.loads(prompt) + + assert payload["as_of"] == "2020-06-01" + assert payload["forecast_date"] == "2020-09-01" + assert payload["recent_ipman"][-1]["value"] == 105.0 + assert 999.0 not in payload["current_ipman_signals_pct"].values() From 3c909b9e1a6531f2fecc5a88b9b7eb6982f15d0f Mon Sep 17 00:00:00 2001 From: vbeohar Date: Tue, 22 Sep 2026 01:08:47 -0400 Subject: [PATCH 3/7] Added 5 more macro expl vars --- .../README.md | 35 ++++++---- .../analyst_agent/agent.py | 33 +++++++--- .../manufacturing_stress_forecasting/data.py | 50 ++++++++++++-- .../features.py | 66 +++++++++++++++++-- .../predictors/logistic.py | 6 +- .../test_agent_prompt.py | 3 + .../test_targets_and_features.py | 36 +++++++++- scripts/fetch_manufacturing_stress.py | 4 +- 8 files changed, 196 insertions(+), 37 deletions(-) diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md index bf130759b..c31f8b881 100644 --- a/implementations/manufacturing_stress_forecasting/README.md +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -5,9 +5,10 @@ This implementation asks one Track 1 question: > Given information available at a monthly forecast origin, what is the > probability that U.S. manufacturing will be under stress three months later? -The first version intentionally uses only FRED's `IPMAN` series. It excludes -Yahoo Finance, macro covariates, news, LLMs, and agents until the target and -backtest are easy to inspect. +The model deliberately uses only five explanatory variables: trailing +1-, 3-, and 6-month IPMAN changes, the effective federal funds rate, and the +10-year minus 2-year Treasury yield spread. The small panel keeps the first +multivariate experiment interpretable. ## Target @@ -23,17 +24,20 @@ That distinction makes this forecasting rather than current-state detection. - `HistoricalFrequencyPredictor`: the visible historical stress rate. - `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on - trailing 1-, 3-, 6-, and 12-month IPMAN percentage changes. + the five IPMAN/rate variables. +- `manufacturing_stress_analyst`: a structured LLM predictor receiving the same + five cutoff-safe signals plus recent IPMAN history and historical base rates. -Both return `BinaryForecast` probabilities and are scored with Brier score. +All predictors return `BinaryForecast` probabilities; backtested predictors are scored with Brier score. ## Data and cutoff assumptions -`FREDAdapter` caches `IPMAN` at `data/fred/IPMAN.parquet`. Because the standard -FRED response does not provide point-in-time release vintages, this prototype -conservatively shifts `released_at` one month beyond each reference timestamp. -The limitation remains: historical FRED observations may contain later -revisions. A production-quality study should use ALFRED vintages. +`FREDAdapter` caches `IPMAN`, `DFF`, `DGS10`, and `DGS2` under `data/fred/`. +IPMAN is conservatively treated as available one month after its reference +month. Daily rate observations are treated as available on the next business +day and collapsed to their final monthly observation. The standard FRED API +does not provide full point-in-time vintages, so historical observations may +still contain later revisions; a production study should use ALFRED vintages. ## Run @@ -59,9 +63,14 @@ The output prints one mean Brier score per predictor; lower is better. The logistic model should be compared against historical frequency, not judged in isolation. +Run one current forecast, including the structured agent: + +```bash +uv run --directory implementations python -m manufacturing_stress_forecasting.run_agent_prediction +``` + ## Next steps 1. Plot IPMAN and the derived stress months; confirm or revise the 2% threshold. -2. Add a full monthly development backtest after the smoke run is stable. -3. Add a small FRED macro panel. -4. Add an agent only after the deterministic Track 1 experiment is credible. +2. Compare the five-variable logistic score with the earlier IPMAN-only result. +3. Backtest the agent only after the deterministic model is stable. diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py index 5fc32724c..1f3c7e3b9 100644 --- a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py @@ -16,7 +16,12 @@ from aieng.forecasting.methods.agentic.agent_factory import AgentConfig from aieng.forecasting.models import LITE_MODEL from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID -from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot +from manufacturing_stress_forecasting.features import ( + FEATURE_SERIES_IDS, + IPMAN_FEATURE_SERIES_IDS, + MACRO_FEATURE_SERIES_IDS, + build_feature_snapshot, +) from manufacturing_stress_forecasting.targets import ( DEFAULT_LOOKBACK_MONTHS, DEFAULT_STRESS_THRESHOLD_PCT, @@ -32,12 +37,13 @@ def _build_instruction() -> str: "binary IPMAN stress event in the supplied task resolves to 1 at the specified forecast date.\n\n" "## Rules\n\n" "1. Use only the JSON payload. Do not use remembered events or facts after `as_of`.\n" - "2. Start from the supplied historical base rate, then adjust using the current IPMAN momentum signals.\n" - "3. Treat more-negative short- and medium-horizon IPMAN changes as evidence for stress, but do not " - "turn a weak signal into certainty.\n" - "4. `probability` means P(stress=1), not confidence in your explanation.\n" - "5. Give a concise rationale, identify both supporting and countervailing evidence, and remain calibrated.\n" - "6. Use `direction_bias='down'` when signals point toward manufacturing stress, `up` when they point " + "2. Start from the supplied historical base rate, then adjust using the five supplied signals.\n" + "3. Treat negative IPMAN momentum, a restrictive fed funds rate, and an inverted 10Y-2Y spread " + "as possible evidence for stress; explain how the signals interact.\n" + "4. Do not double-count correlated signals or turn a weak signal into certainty.\n" + "5. `probability` means P(stress=1), not confidence in your explanation.\n" + "6. Give a concise rationale, identify both supporting and countervailing evidence, and remain calibrated.\n" + "7. Use `direction_bias='down'` when signals point toward manufacturing stress, `up` when they point " "away from stress, and `neutral` when mixed.\n\n" "## Output\n\n" "Return exactly one JSON object matching this structure, with no markdown fence or preamble:\n\n" + schema @@ -64,6 +70,16 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: target = context.get_series(task.target_series_id).sort_values("timestamp") feature_frames = {series_id: context.get_series(series_id) for series_id in FEATURE_SERIES_IDS} current_signals = build_feature_snapshot(as_of, feature_frames) + current_ipman_signals = ( + {series_id: current_signals[series_id] for series_id in IPMAN_FEATURE_SERIES_IDS} + if current_signals is not None + else None + ) + current_macro_signals = ( + {series_id: current_signals[series_id] for series_id in MACRO_FEATURE_SERIES_IDS} + if current_signals is not None + else None + ) target_values = target["value"].astype(float) trailing_values = target_values.tail(self.trailing_base_rate_months) @@ -97,7 +113,8 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: "threshold_pct": DEFAULT_STRESS_THRESHOLD_PCT, "rule": ("stress=1 when trailing IPMAN percentage change is less than or equal to threshold_pct"), }, - "current_ipman_signals_pct": current_signals, + "current_ipman_signals_pct": current_ipman_signals, + "current_macro_signals": current_macro_signals, "historical_stress": { "n_visible_months": len(target_values), "all_history_base_rate": float(target_values.mean()) if len(target_values) else None, diff --git a/implementations/manufacturing_stress_forecasting/data.py b/implementations/manufacturing_stress_forecasting/data.py index 187254448..5a6f184d5 100644 --- a/implementations/manufacturing_stress_forecasting/data.py +++ b/implementations/manufacturing_stress_forecasting/data.py @@ -1,4 +1,4 @@ -"""FRED/IPMAN data service for the manufacturing-stress MVP.""" +"""FRED data service for the five-variable manufacturing-stress MVP.""" from __future__ import annotations @@ -9,8 +9,11 @@ from aieng.forecasting.data.features import StaticFrameAdapter from manufacturing_stress_forecasting.features import ( FEATURE_PERIODS, + FED_FUNDS_SERIES_ID, + YIELD_CURVE_SERIES_ID, apply_conservative_monthly_release_lag, build_ipman_feature_frames, + build_macro_feature_frames, ) from manufacturing_stress_forecasting.targets import ( DEFAULT_LOOKBACK_MONTHS, @@ -20,6 +23,10 @@ IPMAN_FRED_ID = "IPMAN" +FED_FUNDS_FRED_ID = "DFF" +TREASURY_10Y_FRED_ID = "DGS10" +TREASURY_2Y_FRED_ID = "DGS2" + IPMAN_SERIES_ID = "ipman_us_manufacturing_production" STRESS_SERIES_ID = "manufacturing_stress" @@ -35,10 +42,19 @@ def build_manufacturing_stress_service( stress_lookback_months: int = DEFAULT_LOOKBACK_MONTHS, stress_threshold_pct: float = DEFAULT_STRESS_THRESHOLD_PCT, ) -> DataService: - """Build a service containing IPMAN, momentum features, and stress labels.""" + """Build a service containing the target and five cutoff-aware input features.""" raw_ipman = FREDAdapter(IPMAN_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + raw_fed_funds = FREDAdapter(FED_FUNDS_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + raw_treasury_10y = FREDAdapter(TREASURY_10Y_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + raw_treasury_2y = FREDAdapter(TREASURY_2Y_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + ipman = apply_conservative_monthly_release_lag(raw_ipman, months=release_lag_months) - feature_frames = build_ipman_feature_frames(ipman) + ipman_feature_frames = build_ipman_feature_frames(ipman) + macro_feature_frames = build_macro_feature_frames( + raw_fed_funds, + raw_treasury_10y, + raw_treasury_2y, + ) stress = derive_manufacturing_stress_labels( ipman, lookback_months=stress_lookback_months, @@ -58,7 +74,7 @@ def build_manufacturing_stress_service( ), ) - for series_id, frame in feature_frames.items(): + for series_id, frame in ipman_feature_frames.items(): periods = FEATURE_PERIODS[series_id] service.register( series_id, @@ -72,6 +88,29 @@ def build_manufacturing_stress_service( ), ) + service.register( + FED_FUNDS_SERIES_ID, + StaticFrameAdapter(macro_feature_frames[FED_FUNDS_SERIES_ID]), + SeriesMetadata( + series_id=FED_FUNDS_SERIES_ID, + description="Month-end effective federal funds rate", + source="FRED (DFF), derived monthly", + units="Percent", + frequency="MS", + ), + ) + service.register( + YIELD_CURVE_SERIES_ID, + StaticFrameAdapter(macro_feature_frames[YIELD_CURVE_SERIES_ID]), + SeriesMetadata( + series_id=YIELD_CURVE_SERIES_ID, + description="Month-end 10-year minus 2-year Treasury yield spread", + source="FRED (DGS10 minus DGS2), derived monthly", + units="Percentage points", + frequency="MS", + ), + ) + service.register( STRESS_SERIES_ID, StaticFrameAdapter(stress), @@ -91,8 +130,11 @@ def build_manufacturing_stress_service( __all__ = [ "DEFAULT_FRED_CACHE_DIR", + "FED_FUNDS_FRED_ID", "IPMAN_FRED_ID", "IPMAN_SERIES_ID", "STRESS_SERIES_ID", + "TREASURY_10Y_FRED_ID", + "TREASURY_2Y_FRED_ID", "build_manufacturing_stress_service", ] diff --git a/implementations/manufacturing_stress_forecasting/features.py b/implementations/manufacturing_stress_forecasting/features.py index 535aee05d..3599a2106 100644 --- a/implementations/manufacturing_stress_forecasting/features.py +++ b/implementations/manufacturing_stress_forecasting/features.py @@ -2,6 +2,8 @@ from __future__ import annotations +from collections.abc import Sequence + import pandas as pd from aieng.forecasting.data.features import canonical_three_col @@ -9,15 +11,20 @@ IPMAN_CHANGE_1M_SERIES_ID = "ipman_change_1m_pct" IPMAN_CHANGE_3M_SERIES_ID = "ipman_change_3m_pct" IPMAN_CHANGE_6M_SERIES_ID = "ipman_change_6m_pct" -IPMAN_CHANGE_12M_SERIES_ID = "ipman_change_12m_pct" +FED_FUNDS_SERIES_ID = "fed_funds_rate_pct" +YIELD_CURVE_SERIES_ID = "treasury_10y_minus_2y_pct_points" FEATURE_PERIODS: dict[str, int] = { IPMAN_CHANGE_1M_SERIES_ID: 1, IPMAN_CHANGE_3M_SERIES_ID: 3, IPMAN_CHANGE_6M_SERIES_ID: 6, - IPMAN_CHANGE_12M_SERIES_ID: 12, } -FEATURE_SERIES_IDS: tuple[str, ...] = tuple(FEATURE_PERIODS) +IPMAN_FEATURE_SERIES_IDS: tuple[str, ...] = tuple(FEATURE_PERIODS) +MACRO_FEATURE_SERIES_IDS: tuple[str, ...] = ( + FED_FUNDS_SERIES_ID, + YIELD_CURVE_SERIES_ID, +) +FEATURE_SERIES_IDS: tuple[str, ...] = IPMAN_FEATURE_SERIES_IDS + MACRO_FEATURE_SERIES_IDS def apply_conservative_monthly_release_lag(frame: pd.DataFrame, months: int = 1) -> pd.DataFrame: @@ -45,13 +52,55 @@ def percent_change_feature(ipman: pd.DataFrame, periods: int) -> pd.DataFrame: def build_ipman_feature_frames(ipman: pd.DataFrame) -> dict[str, pd.DataFrame]: - """Build the four small momentum features used by the first baseline.""" + """Build the three IPMAN momentum features used by the model.""" return {series_id: percent_change_feature(ipman, periods) for series_id, periods in FEATURE_PERIODS.items()} +def monthly_last_observation(frame: pd.DataFrame) -> pd.DataFrame: + """Collapse a daily canonical series to its final observation each month.""" + out = canonical_three_col(frame) + out["month"] = out["timestamp"].dt.to_period("M") + out = out.sort_values(["month", "timestamp"]).groupby("month", as_index=False).tail(1) + out["timestamp"] = out["month"].dt.to_timestamp() + return canonical_three_col(out) + + +def build_macro_feature_frames( + fed_funds: pd.DataFrame, + treasury_10y: pd.DataFrame, + treasury_2y: pd.DataFrame, +) -> dict[str, pd.DataFrame]: + """Build monthly fed-funds and 10Y-minus-2Y rate features. + + Daily FRED observations are treated as available on the next business day. + The model then uses the final published observation associated with each + calendar month. This keeps the monthly feature panel small while preserving + an honest ``released_at`` cutoff. + """ + fed = canonical_three_col(fed_funds) + fed["released_at"] = fed["timestamp"] + pd.offsets.BDay(1) + fed_monthly = monthly_last_observation(fed) + + ten_year = canonical_three_col(treasury_10y).rename( + columns={"value": "value_10y", "released_at": "released_at_10y"} + ) + two_year = canonical_three_col(treasury_2y).rename(columns={"value": "value_2y", "released_at": "released_at_2y"}) + spread = pd.merge(ten_year, two_year, on="timestamp", how="inner") + spread["value"] = spread["value_10y"] - spread["value_2y"] + spread["released_at"] = spread[["released_at_10y", "released_at_2y"]].max(axis=1) + pd.offsets.BDay(1) + spread_monthly = monthly_last_observation(spread[["timestamp", "value", "released_at"]]) + + return { + FED_FUNDS_SERIES_ID: fed_monthly, + YIELD_CURVE_SERIES_ID: spread_monthly, + } + + def build_feature_snapshot( origin: pd.Timestamp, feature_frames: dict[str, pd.DataFrame], + *, + series_ids: Sequence[str] = FEATURE_SERIES_IDS, ) -> dict[str, float] | None: """Return the latest feature values that were published by ``origin``. @@ -61,7 +110,7 @@ def build_feature_snapshot( past origin used to train the fit-at-origin logistic model. """ snapshot: dict[str, float] = {} - for series_id in FEATURE_SERIES_IDS: + for series_id in series_ids: frame = feature_frames[series_id] visible = frame[pd.to_datetime(frame["released_at"]) <= origin] if visible.empty: @@ -71,14 +120,19 @@ def build_feature_snapshot( __all__ = [ + "FED_FUNDS_SERIES_ID", "FEATURE_PERIODS", "FEATURE_SERIES_IDS", + "IPMAN_FEATURE_SERIES_IDS", "IPMAN_CHANGE_1M_SERIES_ID", "IPMAN_CHANGE_3M_SERIES_ID", "IPMAN_CHANGE_6M_SERIES_ID", - "IPMAN_CHANGE_12M_SERIES_ID", + "MACRO_FEATURE_SERIES_IDS", + "YIELD_CURVE_SERIES_ID", "apply_conservative_monthly_release_lag", "build_feature_snapshot", "build_ipman_feature_frames", + "build_macro_feature_frames", + "monthly_last_observation", "percent_change_feature", ] diff --git a/implementations/manufacturing_stress_forecasting/predictors/logistic.py b/implementations/manufacturing_stress_forecasting/predictors/logistic.py index a0c5d3632..bfea5de23 100644 --- a/implementations/manufacturing_stress_forecasting/predictors/logistic.py +++ b/implementations/manufacturing_stress_forecasting/predictors/logistic.py @@ -1,4 +1,4 @@ -"""Fit-at-origin logistic baseline for three-month-ahead manufacturing stress.""" +"""Five-variable logistic baseline for three-month-ahead manufacturing stress.""" from __future__ import annotations @@ -14,7 +14,7 @@ class ManufacturingStressLogisticPredictor(Predictor): - """Forecast manufacturing stress from four trailing IPMAN changes. + """Forecast manufacturing stress from three IPMAN and two rate signals. The model is rebuilt at every backtest origin. For each resolved historical outcome at month ``r``, its feature vector is reconstructed at ``r - lead`` @@ -29,7 +29,7 @@ def __init__(self, *, regularization_c: float = 1.0, min_training_examples: int @property def predictor_id(self) -> str: """Return the stable artifact identifier.""" - return "manufacturing_stress_logistic_ipman" + return "manufacturing_stress_logistic_ipman_rates" def predict(self, task: ForecastingTask, context: ForecastContext) -> list[Prediction]: """Fit on visible history and return one binary stress probability.""" diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py index 88c46263b..d3220fe39 100644 --- a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py @@ -68,4 +68,7 @@ def test_prompt_uses_only_cutoff_visible_evidence() -> None: assert payload["as_of"] == "2020-06-01" assert payload["forecast_date"] == "2020-09-01" assert payload["recent_ipman"][-1]["value"] == 105.0 + assert len(payload["current_ipman_signals_pct"]) == 3 + assert len(payload["current_macro_signals"]) == 2 assert 999.0 not in payload["current_ipman_signals_pct"].values() + assert 999.0 not in payload["current_macro_signals"].values() diff --git a/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py b/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py index 6afdd3e1e..3b94d08ea 100644 --- a/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py +++ b/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py @@ -2,7 +2,13 @@ import pandas as pd import pytest -from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot +from manufacturing_stress_forecasting.features import ( + FEATURE_SERIES_IDS, + FED_FUNDS_SERIES_ID, + YIELD_CURVE_SERIES_ID, + build_feature_snapshot, + build_macro_feature_frames, +) from manufacturing_stress_forecasting.targets import derive_manufacturing_stress_labels @@ -40,3 +46,31 @@ def test_feature_snapshot_ignores_values_released_after_origin() -> None: assert snapshot is not None for index, series_id in enumerate(FEATURE_SERIES_IDS): assert snapshot[series_id] == pytest.approx(float(index)) + + +def test_macro_features_use_month_end_values_with_next_business_day_release() -> None: + timestamps = pd.to_datetime(["2024-01-30", "2024-01-31", "2024-02-28", "2024-02-29"]) + + def frame(values: list[float]) -> pd.DataFrame: + return pd.DataFrame( + { + "timestamp": timestamps, + "value": values, + "released_at": timestamps, + } + ) + + features = build_macro_feature_frames( + frame([5.30, 5.31, 5.32, 5.33]), + frame([4.00, 4.10, 4.20, 4.30]), + frame([4.40, 4.50, 4.55, 4.60]), + ) + + fed = features[FED_FUNDS_SERIES_ID] + spread = features[YIELD_CURVE_SERIES_ID] + + assert fed["timestamp"].tolist() == [pd.Timestamp("2024-01-01"), pd.Timestamp("2024-02-01")] + assert fed["value"].tolist() == pytest.approx([5.31, 5.33]) + assert fed["released_at"].tolist() == [pd.Timestamp("2024-02-01"), pd.Timestamp("2024-03-01")] + assert spread["value"].tolist() == pytest.approx([-0.40, -0.30]) + assert spread["released_at"].tolist() == [pd.Timestamp("2024-02-01"), pd.Timestamp("2024-03-01")] diff --git a/scripts/fetch_manufacturing_stress.py b/scripts/fetch_manufacturing_stress.py index af1ed1871..240114b33 100644 --- a/scripts/fetch_manufacturing_stress.py +++ b/scripts/fetch_manufacturing_stress.py @@ -1,4 +1,4 @@ -"""Fetch/cache IPMAN and print the manufacturing-stress series summary.""" +"""Fetch/cache IPMAN and rate inputs, then print the registered-series summary.""" from __future__ import annotations @@ -19,7 +19,7 @@ def main() -> None: - """Populate the IPMAN cache and report the derived series.""" + """Populate the IPMAN/rates cache and report the derived series.""" service = build_manufacturing_stress_service() print(service.summary().to_string(index=False)) From 255b5922cf6dcaf579c2f3bb765633c2cd1c4f2b Mon Sep 17 00:00:00 2001 From: default Date: Tue, 22 Sep 2026 20:13:44 +0000 Subject: [PATCH 4/7] Add XGBoost manufacturing stress predictor --- .../README.md | 8 +- .../predictors/__init__.py | 3 +- .../predictors/xgboost.py | 69 +++++++++++++++ .../run_agent_prediction.py | 6 +- .../run_smoke.py | 11 ++- implementations/pyproject.toml | 1 + uv.lock | 88 +++++++++++++------ 7 files changed, 149 insertions(+), 37 deletions(-) create mode 100644 implementations/manufacturing_stress_forecasting/predictors/xgboost.py diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md index c31f8b881..2b24643a9 100644 --- a/implementations/manufacturing_stress_forecasting/README.md +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -22,16 +22,16 @@ That distinction makes this forecasting rather than current-state detection. ## Predictors -- `HistoricalFrequencyPredictor`: the visible historical stress rate. -- `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on the five IPMAN/rate variables. -- `manufacturing_stress_analyst`: a structured LLM predictor receiving the same + `ManufacturingStressXGBoostPredictor`: a small fit-at-origin gradient-boosted + tree classifier using the same five variables and cutoff-safe training rows. five cutoff-safe signals plus recent IPMAN history and historical base rates. All predictors return `BinaryForecast` probabilities; backtested predictors are scored with Brier score. ## Data and cutoff assumptions - +Compare XGBoost with logistic regression and historical frequency rather than judging it +in isolation, because this small monthly dataset can overfit flexible models. `FREDAdapter` caches `IPMAN`, `DFF`, `DGS10`, and `DGS2` under `data/fred/`. IPMAN is conservatively treated as available one month after its reference month. Daily rate observations are treated as available on the next business diff --git a/implementations/manufacturing_stress_forecasting/predictors/__init__.py b/implementations/manufacturing_stress_forecasting/predictors/__init__.py index a9dad38c7..c5cbd12ef 100644 --- a/implementations/manufacturing_stress_forecasting/predictors/__init__.py +++ b/implementations/manufacturing_stress_forecasting/predictors/__init__.py @@ -1,6 +1,7 @@ """Predictors for the manufacturing-stress implementation.""" from manufacturing_stress_forecasting.predictors.logistic import ManufacturingStressLogisticPredictor +from manufacturing_stress_forecasting.predictors.xgboost import ManufacturingStressXGBoostPredictor -__all__ = ["ManufacturingStressLogisticPredictor"] +__all__ = ["ManufacturingStressLogisticPredictor", "ManufacturingStressXGBoostPredictor"] diff --git a/implementations/manufacturing_stress_forecasting/predictors/xgboost.py b/implementations/manufacturing_stress_forecasting/predictors/xgboost.py new file mode 100644 index 000000000..3092187d3 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/predictors/xgboost.py @@ -0,0 +1,69 @@ +"""Five-variable XGBoost predictor for three-month-ahead manufacturing stress.""" + +from __future__ import annotations + +import numpy as np +from aieng.forecasting.evaluation.prediction import BinaryForecast +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS +from manufacturing_stress_forecasting.predictors.logistic import ManufacturingStressLogisticPredictor + + +class ManufacturingStressXGBoostPredictor(ManufacturingStressLogisticPredictor): + """Forecast manufacturing stress with a small gradient-boosted tree model.""" + + def __init__( + self, + *, + n_estimators: int = 100, + max_depth: int = 2, + learning_rate: float = 0.05, + min_training_examples: int = 24, + ) -> None: + super().__init__(min_training_examples=min_training_examples) + self._n_estimators = n_estimators + self._max_depth = max_depth + self._learning_rate = learning_rate + + @property + def predictor_id(self) -> str: + """Return the stable artifact identifier.""" + return "manufacturing_stress_xgboost_ipman_rates" + + def _fit_and_predict( + self, + rows: list[list[float]], + outcomes: list[float], + current: dict[str, float] | None, + ) -> tuple[BinaryForecast, dict[str, object]]: + base_rate = float(np.mean(outcomes)) if outcomes else 0.1 + if current is None: + return BinaryForecast(probability=base_rate), {"model": "base_rate_fallback"} + if len(outcomes) < self._min_training_examples or len(set(outcomes)) < 2: + return BinaryForecast(probability=base_rate), {"model": "base_rate_fallback"} + + from xgboost import XGBClassifier # noqa: PLC0415 + + model = XGBClassifier( + n_estimators=self._n_estimators, + max_depth=self._max_depth, + learning_rate=self._learning_rate, + objective="binary:logistic", + eval_metric="logloss", + subsample=0.8, + colsample_bytree=0.8, + random_state=42, + n_jobs=1, + ) + model.fit(np.asarray(rows), np.asarray(outcomes)) + current_row = np.asarray([[current[series_id] for series_id in FEATURE_SERIES_IDS]]) + probability = float(model.predict_proba(current_row)[0, 1]) + return BinaryForecast(probability=probability), { + "model": "xgboost_classifier", + "features": dict(zip(FEATURE_SERIES_IDS, (float(value) for value in current_row[0]), strict=True)), + "feature_importances": dict( + zip(FEATURE_SERIES_IDS, (float(value) for value in model.feature_importances_), strict=True) + ), + } + + +__all__ = ["ManufacturingStressXGBoostPredictor"] diff --git a/implementations/manufacturing_stress_forecasting/run_agent_prediction.py b/implementations/manufacturing_stress_forecasting/run_agent_prediction.py index 5a7245df1..2c2f668f7 100644 --- a/implementations/manufacturing_stress_forecasting/run_agent_prediction.py +++ b/implementations/manufacturing_stress_forecasting/run_agent_prediction.py @@ -14,7 +14,10 @@ IPMAN_SERIES_ID, build_manufacturing_stress_service, ) -from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor +from manufacturing_stress_forecasting.predictors import ( + ManufacturingStressLogisticPredictor, + ManufacturingStressXGBoostPredictor, +) SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" @@ -33,6 +36,7 @@ def main() -> None: predictors = [ HistoricalFrequencyPredictor(), ManufacturingStressLogisticPredictor(), + ManufacturingStressXGBoostPredictor(), build_manufacturing_stress_agent_predictor(), ] print(f"Forecast origin: {as_of.date()}") diff --git a/implementations/manufacturing_stress_forecasting/run_smoke.py b/implementations/manufacturing_stress_forecasting/run_smoke.py index fdef561b8..3105e92d9 100644 --- a/implementations/manufacturing_stress_forecasting/run_smoke.py +++ b/implementations/manufacturing_stress_forecasting/run_smoke.py @@ -6,7 +6,10 @@ from aieng.forecasting.evaluation import BacktestSpec, backtest from aieng.forecasting.methods import HistoricalFrequencyPredictor from manufacturing_stress_forecasting.data import build_manufacturing_stress_service -from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor +from manufacturing_stress_forecasting.predictors import ( + ManufacturingStressLogisticPredictor, + ManufacturingStressXGBoostPredictor, +) SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" @@ -18,7 +21,11 @@ def main() -> None: spec = BacktestSpec.model_validate(yaml.safe_load(file)) service = build_manufacturing_stress_service() - predictors = [HistoricalFrequencyPredictor(), ManufacturingStressLogisticPredictor()] + predictors = [ + HistoricalFrequencyPredictor(), + ManufacturingStressLogisticPredictor(), + ManufacturingStressXGBoostPredictor(), + ] for predictor in predictors: result = backtest(predictor=predictor, spec=spec, data_service=service) print(f"{predictor.predictor_id}: {result.mean_score:.4f} mean {result.metric}") diff --git a/implementations/pyproject.toml b/implementations/pyproject.toml index 7467a9c70..0b14070c1 100644 --- a/implementations/pyproject.toml +++ b/implementations/pyproject.toml @@ -10,6 +10,7 @@ requires-python = ">=3.12" dependencies = [ "aieng-forecasting[numerical,llm,agentic,documents]", "beautifulsoup4>=4.12,<5", # BoC press-release HTML extraction (boc_rate_decisions.press_releases) + "xgboost>=2.1,<4", ] [tool.setuptools.packages.find] diff --git a/uv.lock b/uv.lock index a1ba2aec6..1b79f4a07 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.12, <4.0" resolution-markers = [ "python_full_version >= '3.15' and sys_platform == 'win32'", @@ -11,11 +11,11 @@ resolution-markers = [ "python_full_version == '3.14.*' and platform_machine == 'x86_64' and sys_platform == 'darwin'", "(python_full_version == '3.14.*' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version == '3.14.*' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", "python_full_version == '3.13.*' and sys_platform == 'win32'", - "python_full_version < '3.13' and sys_platform == 'win32'", "python_full_version == '3.13.*' and sys_platform == 'emscripten'", - "python_full_version < '3.13' and sys_platform == 'emscripten'", "python_full_version == '3.13.*' and platform_machine == 'x86_64' and sys_platform == 'darwin'", "(python_full_version == '3.13.*' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.13' and sys_platform == 'win32'", + "python_full_version < '3.13' and sys_platform == 'emscripten'", "python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform == 'darwin'", "(python_full_version < '3.13' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", ] @@ -70,7 +70,7 @@ dev = [ [package.metadata] requires-dist = [ - { name = "agentic-forecasting-implementations", virtual = "implementations" }, + { name = "agentic-forecasting-implementations", editable = "implementations" }, { name = "ipykernel", specifier = ">=7.3.0" }, { name = "jupyter", specifier = ">=1.1.1" }, { name = "lightgbm", specifier = ">=4.0.0" }, @@ -97,16 +97,18 @@ dev = [ [[package]] name = "agentic-forecasting-implementations" version = "0.1.0" -source = { virtual = "implementations" } +source = { editable = "implementations" } dependencies = [ { name = "aieng-forecasting", extra = ["agentic", "documents", "llm", "numerical"] }, { name = "beautifulsoup4" }, + { name = "xgboost" }, ] [package.metadata] requires-dist = [ { name = "aieng-forecasting", extras = ["numerical", "llm", "agentic", "documents"], editable = "aieng-forecasting" }, { name = "beautifulsoup4", specifier = ">=4.12,<5" }, + { name = "xgboost", specifier = ">=2.1,<4" }, ] [[package]] @@ -3405,6 +3407,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", size = 10565867, upload-time = "2026-05-18T23:36:47.114Z" }, ] +[[package]] +name = "nvidia-nccl-cu13" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/0a/c29c302036a06d27dd732588f3fd8ee89b1f7b0087e38c668ae7be8ff7b2/nvidia_nccl_cu13-2.32.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:a5bee92b2f4af218c109f8d221c3c9adcc752b94ae0ffcb0ed5abf9341a7724c", size = 305107282, upload-time = "2026-09-22T08:30:28.048Z" }, + { url = "https://files.pythonhosted.org/packages/5b/29/6b277e63c92d91f9cb4d1a3a554e148983de39d54baa652bb52c798af78e/nvidia_nccl_cu13-2.32.3-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:1459723080ac889d73a26edfa3e04383a7928ab31ac8f0ec43b3ea9548b04ff3", size = 305100071, upload-time = "2026-09-22T08:30:53.705Z" }, +] + [[package]] name = "onnxruntime" version = "1.26.0" @@ -3737,7 +3748,7 @@ name = "pexpect" version = "4.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ptyprocess", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "ptyprocess" }, ] sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } wheels = [ @@ -5073,16 +5084,16 @@ resolution-markers = [ "python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform == 'darwin'", ] dependencies = [ - { name = "cloudpickle", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "numba", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "numpy", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "packaging", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "pandas", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "scikit-learn", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "scipy", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "slicer", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "tqdm", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "typing-extensions", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "cloudpickle" }, + { name = "numba" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "slicer" }, + { name = "tqdm" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/dc/c6/9823a7f483aa9f3179fc359c10d22da9e418b1a7a3fc99a42b705d05e82a/shap-0.49.1.tar.gz", hash = "sha256:1114ecd804fff29f50d522ce6031082fcf42fe4a32fb1b5da233b2415d784c8c", size = 4084725, upload-time = "2025-10-14T10:04:49.75Z" } wheels = [ @@ -5102,24 +5113,24 @@ resolution-markers = [ "python_full_version == '3.14.*' and sys_platform == 'emscripten'", "(python_full_version == '3.14.*' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version == '3.14.*' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", "python_full_version == '3.13.*' and sys_platform == 'win32'", - "python_full_version < '3.13' and sys_platform == 'win32'", "python_full_version == '3.13.*' and sys_platform == 'emscripten'", - "python_full_version < '3.13' and sys_platform == 'emscripten'", "(python_full_version == '3.13.*' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.13' and sys_platform == 'win32'", + "python_full_version < '3.13' and sys_platform == 'emscripten'", "(python_full_version < '3.13' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", ] dependencies = [ - { name = "cloudpickle", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "llvmlite", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "numba", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "numpy", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "packaging", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "pandas", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "scikit-learn", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "scipy", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "slicer", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "tqdm", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "typing-extensions", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "cloudpickle" }, + { name = "llvmlite" }, + { name = "numba" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "slicer" }, + { name = "tqdm" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a4/0a/4a3ee4b1a3654f2a9ae038a64bb3e91a42af3da07577d69b65241f010970/shap-0.51.0.tar.gz", hash = "sha256:cfa17ff213657c9d50285aa923d79b0037a62e2ee1a31bc3eec7e196b00bdb59", size = 4108336, upload-time = "2026-03-04T09:18:19.985Z" } wheels = [ @@ -5910,6 +5921,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/dc/83/6d810a8a9ebc9c307989b418840c20e46907c74d707beb67ab566773e6fc/xarray-2026.4.0-py3-none-any.whl", hash = "sha256:d43751d9fb4a90f9249c30431684f00c41bc874f1edccd862631a40cbc0edf08", size = 1414326, upload-time = "2026-04-13T19:45:34.659Z" }, ] +[[package]] +name = "xgboost" +version = "3.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "nvidia-nccl-cu13", marker = "sys_platform == 'linux'" }, + { name = "scipy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/a9/295320f741c5be4be996c73ee65a2a11852028c50daa7229adb0d61c330b/xgboost-3.4.1.tar.gz", hash = "sha256:6968a4c71efdfa859df0dfcad0d99211c95c28c4ffd6aecff46efff77d18026a", size = 1231819, upload-time = "2026-08-15T08:39:21.197Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/ea/0bdcd374241a86f1986e87e272516f0a70d841c3aa86aa9ca167fb651573/xgboost-3.4.1-py3-none-macosx_10_15_x86_64.whl", hash = "sha256:1ea15f15f661825b6a67d87674fb9604a1abb38dd0d4c5cf0486fc85f5203e83", size = 2541584, upload-time = "2026-08-15T08:38:48.484Z" }, + { url = "https://files.pythonhosted.org/packages/f7/94/e5c37a8972ad780edc1d8459d1931356344ca133f7f99ba9cfda516b5bba/xgboost-3.4.1-py3-none-macosx_12_0_arm64.whl", hash = "sha256:a7afd7dbace0951c93aa85ffe046e54bc40893f5b51cd3e7991eb157bf9c7c7c", size = 2365501, upload-time = "2026-08-15T08:38:52.366Z" }, + { url = "https://files.pythonhosted.org/packages/a7/11/4ff1f36ca5c32c642c71c88bec1508ee98b2c3b1e9eb169e8c82de303522/xgboost-3.4.1-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:7faaf99de26719c22bfae883a02bd56b5a3c2203122616e563cc72b7191b5c96", size = 57196172, upload-time = "2026-08-15T08:39:03.288Z" }, + { url = "https://files.pythonhosted.org/packages/99/c7/bd05c5c430feb347aa040fcc8870135d70b256718deee9bc7d2ca74a77ff/xgboost-3.4.1-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:6adf2afa396da2ae8ed30295b50b99d4712eed9a6e0ce6cfe069290e4335e51f", size = 57615456, upload-time = "2026-08-15T08:39:09.983Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3c/925394671f6a1668e2a71886de66e80be694eaf37f615cec74eefaf43107/xgboost-3.4.1-py3-none-win_amd64.whl", hash = "sha256:2d30fa513673101f542fdcbd18f30c8f96c064046f798635ac08663e9969f81b", size = 48942686, upload-time = "2026-08-15T08:39:16.182Z" }, + { url = "https://files.pythonhosted.org/packages/90/2f/f2fbe984ca095709fd246546125e78834740f347e3aa7561a22a1e928510/xgboost-3.4.1-py3-none-win_arm64.whl", hash = "sha256:e9312b30e5679d27c1d8b9ee97e092b964d960a672d5d406d9fb3cd0845c9797", size = 2094178, upload-time = "2026-08-15T08:39:19.308Z" }, +] + [[package]] name = "yarl" version = "1.24.2" From 9abcd9345b4645a6185ade2b88aed71c56a63e3b Mon Sep 17 00:00:00 2001 From: minaattari Date: Wed, 23 Sep 2026 00:58:10 -0400 Subject: [PATCH 5/7] feat(manufacturing): add notebook workbench and cached LLMP backtest --- .../README.md | 33 +- .../analyst_agent/agent.py | 8 +- .../manufacturing_stress_workbench.ipynb | 7348 +++++++++++++++++ .../run_agent_backtest.py | 89 + .../test_agent_prompt.py | 15 +- 5 files changed, 7486 insertions(+), 7 deletions(-) create mode 100644 implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb create mode 100644 implementations/manufacturing_stress_forecasting/run_agent_backtest.py diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md index 2b24643a9..59bb4cfd5 100644 --- a/implementations/manufacturing_stress_forecasting/README.md +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -22,9 +22,12 @@ That distinction makes this forecasting rather than current-state detection. ## Predictors +- `HistoricalFrequencyPredictor`: the visible historical stress rate. +- `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on the five IPMAN/rate variables. `ManufacturingStressXGBoostPredictor`: a small fit-at-origin gradient-boosted tree classifier using the same five variables and cutoff-safe training rows. +- `manufacturing_stress_analyst`: a structured LLM predictor receiving the same five cutoff-safe signals plus recent IPMAN history and historical base rates. All predictors return `BinaryForecast` probabilities; backtested predictors are scored with Brier score. @@ -41,6 +44,12 @@ still contain later revisions; a production study should use ALFRED vintages. ## Run +The primary interactive entry point is +[`manufacturing_stress_workbench.ipynb`](manufacturing_stress_workbench.ipynb). +Open it in VS Code or Jupyter and use its configuration cell to refresh FRED +data, run the deterministic smoke test, and explicitly opt in to the cached +LLMP backtest without using the terminal. + From the repository root, put a personal FRED key in `.env` or export it: ```bash @@ -53,7 +62,7 @@ Populate the cache and inspect the registered series: uv run python scripts/fetch_manufacturing_stress.py ``` -Run the small backtest: +Run the deterministic small backtest: ```bash uv run --directory implementations python -m manufacturing_stress_forecasting.run_smoke @@ -63,6 +72,25 @@ The output prints one mean Brier score per predictor; lower is better. The logistic model should be compared against historical frequency, not judged in isolation. +Run the token-limited LLMP backtest explicitly: + +```bash +uv run --directory implementations python -m manufacturing_stress_forecasting.run_agent_backtest +``` + +This evaluates historical frequency, logistic regression, XGBoost, and the +`manufacturing_stress_analyst` agent through the same binary backtest and +Brier-score calculation. The agent run uses the default lite model, a +12-month IPMAN history, compact JSON prompts, a 384-token response cap, and +one retry per failed origin. Complete results are cached under +`data/predictions/manufacturing_stress_smoke_llmp_v1/`, so rerunning the +command does not make new model calls. Use `--force-refresh` to intentionally +re-run the predictors. + +Compare scores only when the results have the same scored-origin count. The +command prints both `scored` and `skipped` counts because failed agent origins +are excluded from the mean Brier score. + Run one current forecast, including the structured agent: ```bash @@ -73,4 +101,5 @@ uv run --directory implementations python -m manufacturing_stress_forecasting.ru 1. Plot IPMAN and the derived stress months; confirm or revise the 2% threshold. 2. Compare the five-variable logistic score with the earlier IPMAN-only result. -3. Backtest the agent only after the deterministic model is stable. +3. Compare the cached agent backtest against the deterministic baselines only + after checking scored and skipped origin counts. diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py index 1f3c7e3b9..9e1e1a845 100644 --- a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py @@ -42,7 +42,7 @@ def _build_instruction() -> str: "as possible evidence for stress; explain how the signals interact.\n" "4. Do not double-count correlated signals or turn a weak signal into certainty.\n" "5. `probability` means P(stress=1), not confidence in your explanation.\n" - "6. Give a concise rationale, identify both supporting and countervailing evidence, and remain calibrated.\n" + "6. Give a rationale of at most 40 words, identify supporting and countervailing evidence, and remain calibrated.\n" "7. Use `direction_bias='down'` when signals point toward manufacturing stress, `up` when they point " "away from stress, and `neutral` when mixed.\n\n" "## Output\n\n" @@ -55,7 +55,7 @@ class ManufacturingStressPromptBuilder(BaseModel): model_config = {"extra": "forbid"} - recent_history_months: int = Field(default=24, ge=6, le=120) + recent_history_months: int = Field(default=12, ge=6, le=120) trailing_base_rate_months: int = Field(default=60, ge=12, le=240) def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: @@ -123,7 +123,7 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: }, "recent_ipman": recent_ipman, } - return json.dumps(payload, indent=2) + return json.dumps(payload, separators=(",", ":")) def build_manufacturing_stress_agent_config(model: str = LITE_MODEL) -> AgentConfig: @@ -134,7 +134,7 @@ def build_manufacturing_stress_agent_config(model: str = LITE_MODEL) -> AgentCon instruction=_build_instruction(), temperature=0.1, seed=42, - max_output_tokens=2_048, + max_output_tokens=384, ) diff --git a/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb b/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb new file mode 100644 index 000000000..22e3719f5 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb @@ -0,0 +1,7348 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 21, + "id": "988dada7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running: uv sync --all-extras --dev --all-packages\n", + "\n", + "Environment synchronized successfully.\n", + "If packages changed, restart the notebook kernel before continuing.\n" + ] + } + ], + "source": [ + "# Cell 0: synchronize the repository environment before running the workbench.\n", + "from pathlib import Path\n", + "import subprocess\n", + "\n", + "SETUP_ROOT = Path.cwd()\n", + "while not (SETUP_ROOT / \"pyproject.toml\").exists() and SETUP_ROOT != SETUP_ROOT.parent:\n", + " SETUP_ROOT = SETUP_ROOT.parent\n", + "\n", + "if not (SETUP_ROOT / \"pyproject.toml\").exists():\n", + " raise FileNotFoundError(\"Could not find the repository root containing pyproject.toml.\")\n", + "\n", + "print(\"Running: uv sync --all-extras --dev --all-packages\")\n", + "setup_result = subprocess.run(\n", + " [\"uv\", \"sync\", \"--all-extras\", \"--dev\", \"--all-packages\"],\n", + " cwd=SETUP_ROOT,\n", + " check=False,\n", + " text=True,\n", + " capture_output=True,\n", + ")\n", + "print(setup_result.stdout)\n", + "if setup_result.returncode != 0:\n", + " print(setup_result.stderr)\n", + " raise RuntimeError(\n", + " \"uv sync failed. Install uv or restart the notebook with the repository environment selected.\"\n", + " )\n", + "print(\"Environment synchronized successfully.\")\n", + "print(\"If packages changed, restart the notebook kernel before continuing.\")" + ] + }, + { + "cell_type": "markdown", + "id": "b696c087", + "metadata": {}, + "source": [ + "# Manufacturing Stress Forecasting Workbench\n", + "\n", + "This notebook is the main interactive entry point for the manufacturing-stress experiment. It creates or refreshes the FRED data cache, runs the deterministic baselines, and optionally runs the token-limited LLMP backtest.\n", + "\n", + "All predictors use the same backtest specification and shared Brier-score implementation. The LLMP is opt-in and cached so repeated analysis does not make new model calls." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1b6955d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'refresh_fred_data': False, 'backtest_stride': 3, 'run_llmp_backtest': True, 'force_refresh_llmp_cache': True, 'run_current_forecast': False}\n" + ] + } + ], + "source": [ + "# Main controls: change these values, then run the notebook from top to bottom.\n", + "REFRESH_FRED_DATA = False\n", + "BACKTEST_STRIDE = 3\n", + "RUN_LLMP_BACKTEST = False\n", + "FORCE_REFRESH_LLMP_CACHE = False\n", + "RUN_CURRENT_FORECAST = False\n", + "\n", + "# BACKTEST_STRIDE = 1 evaluates every month; 3 evaluates every third month.\n", + "# False: one smoke run for historical frequency, logistic regression, and XGBoost.\n", + "# True: the same smoke run also includes the cached, token-limited LLMP.\n", + "# RUN_CURRENT_FORECAST controls the separate latest-data forecast section.\n", + "print({\n", + " \"refresh_fred_data\": REFRESH_FRED_DATA,\n", + " \"backtest_stride\": BACKTEST_STRIDE,\n", + " \"run_llmp_backtest\": RUN_LLMP_BACKTEST,\n", + " \"force_refresh_llmp_cache\": FORCE_REFRESH_LLMP_CACHE,\n", + " \"run_current_forecast\": RUN_CURRENT_FORECAST,\n", + "})" + ] + }, + { + "cell_type": "markdown", + "id": "e43fbfdd", + "metadata": {}, + "source": [ + "## Imports and project paths\n", + "\n", + "Run this notebook with the repository environment selected as the Jupyter kernel. The `.env` file is loaded for the FRED key and, when needed, the LLM proxy credentials." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "2e5a002b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Repository: c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "\n", + "import pandas as pd\n", + "import yaml\n", + "from dotenv import load_dotenv\n", + "from aieng.forecasting.evaluation import BacktestSpec, backtest\n", + "from aieng.forecasting.evaluation.artifacts import load_backtest_result, save_backtest_result\n", + "from aieng.forecasting.methods import HistoricalFrequencyPredictor\n", + "from manufacturing_stress_forecasting.analyst_agent import build_manufacturing_stress_agent_predictor\n", + "from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID, build_manufacturing_stress_service\n", + "from manufacturing_stress_forecasting.predictors import (\n", + " ManufacturingStressLogisticPredictor,\n", + " ManufacturingStressXGBoostPredictor,\n", + ")\n", + "\n", + "REPO_ROOT = Path.cwd()\n", + "if not (REPO_ROOT / \"pyproject.toml\").exists():\n", + " REPO_ROOT = Path.cwd().parents[1]\n", + "\n", + "load_dotenv(REPO_ROOT / \".env\", override=False)\n", + "SPEC_PATH = REPO_ROOT / \"implementations\" / \"manufacturing_stress_forecasting\" / \"specs\" / \"manufacturing_stress_smoke.yaml\"\n", + "STORE_DIR = REPO_ROOT / \"data\" / \"predictions\"\n", + "LLMP_SPEC_ID = \"manufacturing_stress_smoke_llmp_v1\"\n", + "print(f\"Repository: {REPO_ROOT}\")" + ] + }, + { + "cell_type": "markdown", + "id": "549de858", + "metadata": {}, + "source": [ + "## Create or refresh the data\n", + "\n", + "The service loads `IPMAN`, `DFF`, `DGS10`, and `DGS2` from the FRED cache. Set `REFRESH_FRED_DATA = True` in the first cell when the cache should be updated from FRED." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "7cd4ad0a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " series_id description source units frequency n_obs start end\n", + " fed_funds_rate_pct Month-end effective federal funds rate FRED (DFF), derived monthly Percent MS 867 1954-07-01 2026-09-01\n", + " ipman_change_1m_pct Trailing 1-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 654 1972-02-01 2026-07-01\n", + " ipman_change_3m_pct Trailing 3-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 652 1972-04-01 2026-07-01\n", + " ipman_change_6m_pct Trailing 6-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 649 1972-07-01 2026-07-01\n", + "ipman_us_manufacturing_production U.S. manufacturing industrial production index (IPMAN) FRED (IPMAN) Index MS 655 1972-01-01 2026-07-01\n", + " manufacturing_stress Binary U.S. manufacturing stress label: 1 when trailing 3-month IPMAN change is at or below -2.0% Derived from FRED IPMAN Binary event (0=no stress, 1=stress) MS 652 1972-04-01 2026-07-01\n", + " treasury_10y_minus_2y_pct_points Month-end 10-year minus 2-year Treasury yield spread FRED (DGS10 minus DGS2), derived monthly Percentage points MS 604 1976-06-01 2026-09-01\n" + ] + } + ], + "source": [ + "service = build_manufacturing_stress_service(\n", + " cache_dir=REPO_ROOT / \"data\" / \"fred\",\n", + " refresh=REFRESH_FRED_DATA,\n", + ")\n", + "print(service.summary().to_string(index=False))" + ] + }, + { + "cell_type": "markdown", + "id": "095e4106", + "metadata": {}, + "source": [ + "## Load the common backtest specification\n", + "\n", + "Every predictor below receives this same target, horizon, forecast-origin schedule, warmup, and cutoff-aware data service." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "36a12895", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that U.S. manufacturing will be under stress three months ahead. A resolved month is stressed when IPMAN has declined by at least 2 percent over its preceding three months.\n", + "Origins: 2018-01-01 to 2024-12-01, stride=3, warmup=60\n", + "Target: manufacturing_stress; horizon=3 MS\n" + ] + } + ], + "source": [ + "with SPEC_PATH.open() as file:\n", + " spec = BacktestSpec.model_validate(yaml.safe_load(file))\n", + "spec = spec.model_copy(update={\"stride\": BACKTEST_STRIDE})\n", + "\n", + "print(spec.task.description)\n", + "print(f\"Origins: {spec.start.date()} to {spec.end.date()}, stride={spec.stride}, warmup={spec.warmup}\")\n", + "print(f\"Target: {spec.task.target_series_id}; horizon={spec.task.horizons[0]} {spec.task.frequency}\")" + ] + }, + { + "cell_type": "markdown", + "id": "5c5d451c", + "metadata": {}, + "source": [ + "## Run one smoke test\n", + "\n", + "This is the single execution path. It always runs the historical-frequency, logistic-regression, and XGBoost predictors. Set `RUN_LLMP_BACKTEST = True` in the first cell to include the token-limited LLMP in the same run. When LLMP mode is enabled, completed results are loaded from cache unless `FORCE_REFRESH_LLMP_CACHE = True`." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "345f6b3e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "historical_frequency: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\historical_frequency.yaml\n", + "historical_frequency: 0.0356 mean brier; scored=28 skipped=0\n", + "manufacturing_stress_logistic_ipman_rates: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\manufacturing_stress_logistic_ipman_rates.yaml\n", + "manufacturing_stress_logistic_ipman_rates: 0.0471 mean brier; scored=28 skipped=0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "manufacturing_stress_xgboost_ipman_rates: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\manufacturing_stress_xgboost_ipman_rates.yaml\n", + "manufacturing_stress_xgboost_ipman_rates: 0.0413 mean brier; scored=28 skipped=0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n" + ] + }, + { + "ename": "ValueError", + "evalue": "No predictions were scored. All 28 candidate origins were skipped. Check that the target series covers the evaluation window and that warmup (60) is not too large.", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 33\u001b[39m\n\u001b[32m 29\u001b[39m \n\u001b[32m 30\u001b[39m results = {}\n\u001b[32m 31\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m predictor \u001b[38;5;28;01min\u001b[39;00m predictors:\n\u001b[32m 32\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m RUN_LLMP_BACKTEST:\n\u001b[32m---> \u001b[39m\u001b[32m33\u001b[39m result = run_cached_backtest(predictor, force_refresh=FORCE_REFRESH_LLMP_CACHE)\n\u001b[32m 34\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 35\u001b[39m result = backtest(predictor=predictor, spec=spec, data_service=service)\n\u001b[32m 36\u001b[39m results[predictor.predictor_id] = result\n", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 10\u001b[39m, in \u001b[36mrun_cached_backtest\u001b[39m\u001b[34m(predictor, force_refresh)\u001b[39m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m cached \u001b[38;5;28;01mis\u001b[39;00m \u001b[38;5;28;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 7\u001b[39m print(f\"{predictor_id}: loaded {artifact_path}\")\n\u001b[32m 8\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m cached\n\u001b[32m 9\u001b[39m \n\u001b[32m---> \u001b[39m\u001b[32m10\u001b[39m result = backtest(\n\u001b[32m 11\u001b[39m predictor=predictor,\n\u001b[32m 12\u001b[39m spec=spec,\n\u001b[32m 13\u001b[39m data_service=service,\n", + "\u001b[36mFile \u001b[39m\u001b[32m~\\BMO-C2-agentic-forecasting\\aieng-forecasting\\aieng\\forecasting\\evaluation\\backtest.py:661\u001b[39m, in \u001b[36mbacktest\u001b[39m\u001b[34m(predictor, spec, data_service, max_retries, retry_delay)\u001b[39m\n\u001b[32m 611\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mbacktest\u001b[39m(\n\u001b[32m 612\u001b[39m predictor: Predictor,\n\u001b[32m 613\u001b[39m spec: BacktestSpec,\n\u001b[32m (...)\u001b[39m\u001b[32m 616\u001b[39m retry_delay: \u001b[38;5;28mfloat\u001b[39m = \u001b[32m2.0\u001b[39m,\n\u001b[32m 617\u001b[39m ) -> BacktestResult:\n\u001b[32m 618\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Run a backtest of a predictor against a BacktestSpec.\u001b[39;00m\n\u001b[32m 619\u001b[39m \n\u001b[32m 620\u001b[39m \u001b[33;03m Iterates over forecast origins derived from the spec, calls the predictor\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 659\u001b[39m \u001b[33;03m >>> print(f\"Mean {results.metric.upper()}: {results.mean_score:.4f}\")\u001b[39;00m\n\u001b[32m 660\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m661\u001b[39m predictions, scores, skipped = \u001b[30;43mrun_eval_loop\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 662\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mpredictor\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mpredictor\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 663\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mtask\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mtask\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 664\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43morigins\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43morigins\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 665\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mwarmup\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mwarmup\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 666\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mdata_service\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mdata_service\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 667\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmax_retries\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mmax_retries\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 668\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mretry_delay\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mretry_delay\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 669\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 670\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m BacktestResult(\n\u001b[32m 671\u001b[39m spec=spec,\n\u001b[32m 672\u001b[39m predictor_id=predictor.predictor_id,\n\u001b[32m (...)\u001b[39m\u001b[32m 678\u001b[39m skipped_origins=skipped,\n\u001b[32m 679\u001b[39m )\n", + "\u001b[36mFile \u001b[39m\u001b[32m~\\BMO-C2-agentic-forecasting\\aieng-forecasting\\aieng\\forecasting\\evaluation\\backtest.py:602\u001b[39m, in \u001b[36mrun_eval_loop\u001b[39m\u001b[34m(predictor, task, origins, warmup, data_service, max_retries, retry_delay)\u001b[39m\n\u001b[32m 599\u001b[39m skipped += \u001b[32m1\u001b[39m\n\u001b[32m 601\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m predictions:\n\u001b[32m--> \u001b[39m\u001b[32m602\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 603\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mNo predictions were scored. All \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(origins)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m candidate origins were skipped. \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 604\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mCheck that the target series covers the evaluation window and that warmup (\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mwarmup\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m) \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 605\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mis not too large.\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 606\u001b[39m )\n\u001b[32m 608\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m predictions, scores, skipped\n", + "\u001b[31mValueError\u001b[39m: No predictions were scored. All 28 candidate origins were skipped. Check that the target series covers the evaluation window and that warmup (60) is not too large." + ] + } + ], + "source": [ + "def run_cached_backtest(predictor, *, force_refresh=False):\n", + " predictor_id = predictor.predictor_id\n", + " artifact_path = STORE_DIR / LLMP_SPEC_ID / f\"{predictor_id}.yaml\"\n", + " if not force_refresh:\n", + " cached = load_backtest_result(LLMP_SPEC_ID, predictor_id, store_dir=STORE_DIR)\n", + " if cached is not None:\n", + " print(f\"{predictor_id}: loaded {artifact_path}\")\n", + " return cached\n", + "\n", + " result = backtest(\n", + " predictor=predictor,\n", + " spec=spec,\n", + " data_service=service,\n", + " max_retries=1,\n", + " retry_delay=1.0,\n", + " )\n", + " path = save_backtest_result(result, spec_id=LLMP_SPEC_ID, store_dir=STORE_DIR)\n", + " print(f\"{predictor_id}: saved {path}\")\n", + " return result\n", + "\n", + "\n", + "predictors = [\n", + " HistoricalFrequencyPredictor(),\n", + " ManufacturingStressLogisticPredictor(),\n", + " ManufacturingStressXGBoostPredictor(),\n", + "]\n", + "if RUN_LLMP_BACKTEST:\n", + " predictors.append(build_manufacturing_stress_agent_predictor())\n", + "\n", + "results = {}\n", + "for predictor in predictors:\n", + " if RUN_LLMP_BACKTEST:\n", + " result = run_cached_backtest(predictor, force_refresh=FORCE_REFRESH_LLMP_CACHE)\n", + " else:\n", + " result = backtest(predictor=predictor, spec=spec, data_service=service)\n", + " results[predictor.predictor_id] = result\n", + " print(\n", + " f\"{result.predictor_id}: {result.mean_score:.4f} mean {result.metric}; \"\n", + " f\"scored={len(result.scores)} skipped={result.skipped_origins}\"\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "b9382397", + "metadata": {}, + "source": [ + "## Compare results\n", + "\n", + "Use only results with matching scored-origin counts for a fair comparison. Lower Brier score is better." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "e7c1bd4f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
predictormetricmean_brierscoredskipped
0historical_frequencybrier0.035598280
2manufacturing_stress_xgboost_ipman_ratesbrier0.041290280
1manufacturing_stress_logistic_ipman_ratesbrier0.047142280
\n", + "
" + ], + "text/plain": [ + " predictor metric mean_brier scored \\\n", + "0 historical_frequency brier 0.035598 28 \n", + "2 manufacturing_stress_xgboost_ipman_rates brier 0.041290 28 \n", + "1 manufacturing_stress_logistic_ipman_rates brier 0.047142 28 \n", + "\n", + " skipped \n", + "0 0 \n", + "2 0 \n", + "1 0 " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparison = pd.DataFrame(\n", + " [\n", + " {\n", + " \"predictor\": result.predictor_id,\n", + " \"metric\": result.metric,\n", + " \"mean_brier\": result.mean_score,\n", + " \"scored\": len(result.scores),\n", + " \"skipped\": result.skipped_origins,\n", + " }\n", + " for result in results.values()\n", + " ]\n", + ")\n", + "comparison.sort_values(\"mean_brier\") if not comparison.empty else comparison" + ] + }, + { + "cell_type": "markdown", + "id": "266430ff", + "metadata": {}, + "source": [ + "## Optional current forecast\n", + "\n", + "Set `RUN_CURRENT_FORECAST = True` in the first cell to run the selected predictors against the latest released IPMAN data. This is a current forecast, not a historical backtest, so it does not produce a Brier score. `RUN_LLMP_BACKTEST` controls whether the LLMP is included here too." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f360e6c3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Current forecast is disabled. Set RUN_CURRENT_FORECAST = True to enable it.\n" + ] + } + ], + "source": [ + "if RUN_CURRENT_FORECAST:\n", + " with SPEC_PATH.open() as file:\n", + " current_task = BacktestSpec.model_validate(yaml.safe_load(file)).task\n", + "\n", + " full_ipman = service.get_series(\n", + " IPMAN_SERIES_ID,\n", + " as_of=pd.Timestamp(\"2100-01-01\").to_pydatetime(),\n", + " )\n", + " current_as_of = pd.Timestamp(full_ipman[\"released_at\"].max())\n", + " current_context = service.context(as_of=current_as_of.to_pydatetime())\n", + "\n", + " current_predictors = [\n", + " HistoricalFrequencyPredictor(),\n", + " ManufacturingStressLogisticPredictor(),\n", + " ManufacturingStressXGBoostPredictor(),\n", + " ]\n", + " if RUN_LLMP_BACKTEST:\n", + " current_predictors.append(build_manufacturing_stress_agent_predictor())\n", + "\n", + " print(f\"Forecast origin: {current_as_of.date()}\")\n", + " print(\n", + " \"Latest visible IPMAN reference month: \"\n", + " f\"{pd.Timestamp(current_context.get_series(IPMAN_SERIES_ID)['timestamp'].max()).date()}\"\n", + " )\n", + " for predictor in current_predictors:\n", + " prediction = predictor.predict(current_task, current_context)[0]\n", + " print({\n", + " \"predictor\": prediction.predictor_id,\n", + " \"forecast_date\": str(pd.Timestamp(prediction.forecast_date).date()),\n", + " \"stress_probability\": prediction.payload.probability,\n", + " \"metadata\": prediction.metadata,\n", + " })\n", + "else:\n", + " print(\"Current forecast is disabled. Set RUN_CURRENT_FORECAST = True to enable it.\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "agentic-forecasting-bootcamp (3.12.14.final.0)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/implementations/manufacturing_stress_forecasting/run_agent_backtest.py b/implementations/manufacturing_stress_forecasting/run_agent_backtest.py new file mode 100644 index 000000000..17fd1b982 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/run_agent_backtest.py @@ -0,0 +1,89 @@ +"""Run the cached, token-limited manufacturing-stress agent backtest.""" + +from __future__ import annotations + +import argparse +from pathlib import Path + +import yaml +from aieng.forecasting.data import DataService +from aieng.forecasting.evaluation import BacktestSpec, backtest +from aieng.forecasting.evaluation.artifacts import load_backtest_result, save_backtest_result +from aieng.forecasting.evaluation.backtest import BacktestResult +from aieng.forecasting.evaluation.predictor import Predictor +from aieng.forecasting.methods import HistoricalFrequencyPredictor +from manufacturing_stress_forecasting.analyst_agent import build_manufacturing_stress_agent_predictor +from manufacturing_stress_forecasting.data import build_manufacturing_stress_service +from manufacturing_stress_forecasting.predictors import ( + ManufacturingStressLogisticPredictor, + ManufacturingStressXGBoostPredictor, +) + + +REPO_ROOT = Path(__file__).resolve().parents[2] +SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" +STORE_DIR = REPO_ROOT / "data" / "predictions" +SPEC_ID = "manufacturing_stress_smoke_llmp_v1" + + +def _parse_args() -> argparse.Namespace: + """Parse explicit controls for the paid backtest.""" + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--force-refresh", + action="store_true", + help="Re-run predictors and overwrite cached results.", + ) + return parser.parse_args() + + +def _run_or_load( + predictor: Predictor, + spec: BacktestSpec, + service: DataService, + *, + force_refresh: bool, +) -> BacktestResult: + """Load one cached result or run it with one retry and persist it.""" + predictor_id = predictor.predictor_id + if not force_refresh: + cached = load_backtest_result(SPEC_ID, predictor_id, store_dir=STORE_DIR) + if cached is not None: + print(f"{predictor_id}: loaded {STORE_DIR / SPEC_ID / (predictor_id + '.yaml')}") + return cached + + result = backtest( + predictor=predictor, + spec=spec, + data_service=service, + max_retries=1, + retry_delay=1.0, + ) + path = save_backtest_result(result, spec_id=SPEC_ID, store_dir=STORE_DIR) + print(f"{predictor_id}: saved {path}") + return result + + +def main() -> None: + """Run all predictors under the identical binary Brier-score harness.""" + args = _parse_args() + with SPEC_PATH.open() as file: + spec = BacktestSpec.model_validate(yaml.safe_load(file)) + + service = build_manufacturing_stress_service() + predictors = [ + HistoricalFrequencyPredictor(), + ManufacturingStressLogisticPredictor(), + ManufacturingStressXGBoostPredictor(), + build_manufacturing_stress_agent_predictor(), + ] + for predictor in predictors: + result = _run_or_load(predictor, spec, service, force_refresh=args.force_refresh) + print( + f"{result.predictor_id}: {result.mean_score:.4f} mean {result.metric}; " + f"scored={len(result.scores)} skipped={result.skipped_origins}" + ) + + +if __name__ == "__main__": + main() diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py index d3220fe39..c6729d3e8 100644 --- a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py @@ -7,7 +7,10 @@ from aieng.forecasting.data import DataService, SeriesMetadata from aieng.forecasting.data.features import StaticFrameAdapter from aieng.forecasting.evaluation import ForecastingTask -from manufacturing_stress_forecasting.analyst_agent import ManufacturingStressPromptBuilder +from manufacturing_stress_forecasting.analyst_agent import ( + ManufacturingStressPromptBuilder, + build_manufacturing_stress_agent_config, +) from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID, STRESS_SERIES_ID from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS @@ -68,7 +71,17 @@ def test_prompt_uses_only_cutoff_visible_evidence() -> None: assert payload["as_of"] == "2020-06-01" assert payload["forecast_date"] == "2020-09-01" assert payload["recent_ipman"][-1]["value"] == 105.0 + assert len(payload["recent_ipman"]) <= 12 assert len(payload["current_ipman_signals_pct"]) == 3 assert len(payload["current_macro_signals"]) == 2 assert 999.0 not in payload["current_ipman_signals_pct"].values() assert 999.0 not in payload["current_macro_signals"].values() + assert "\n" not in prompt + + +def test_agent_config_limits_output_tokens() -> None: + config = build_manufacturing_stress_agent_config() + + assert config.max_output_tokens == 384 + assert config.temperature == 0.1 + assert config.seed == 42 From 6877b06e9d07add56b1fc141389364fe6d1aae6f Mon Sep 17 00:00:00 2001 From: vbeohar Date: Wed, 23 Sep 2026 10:03:42 -0400 Subject: [PATCH 6/7] fix(manufacturing): harden agent backtest evaluation --- .../README.md | 24 +- .../analyst_agent/agent.py | 46 +- .../manufacturing_stress_workbench.ipynb | 7118 +---------------- .../run_agent_backtest.py | 79 +- .../test_agent_backtest.py | 122 + .../test_agent_prompt.py | 49 + 6 files changed, 340 insertions(+), 7098 deletions(-) create mode 100644 implementations/tests/manufacturing_stress_forecasting/test_agent_backtest.py diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md index 59bb4cfd5..68a0512d3 100644 --- a/implementations/manufacturing_stress_forecasting/README.md +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -25,7 +25,7 @@ That distinction makes this forecasting rather than current-state detection. - `HistoricalFrequencyPredictor`: the visible historical stress rate. - `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on the five IPMAN/rate variables. - `ManufacturingStressXGBoostPredictor`: a small fit-at-origin gradient-boosted +- `ManufacturingStressXGBoostPredictor`: a small fit-at-origin gradient-boosted tree classifier using the same five variables and cutoff-safe training rows. - `manufacturing_stress_analyst`: a structured LLM predictor receiving the same five cutoff-safe signals plus recent IPMAN history and historical base rates. @@ -82,14 +82,20 @@ This evaluates historical frequency, logistic regression, XGBoost, and the `manufacturing_stress_analyst` agent through the same binary backtest and Brier-score calculation. The agent run uses the default lite model, a 12-month IPMAN history, compact JSON prompts, a 384-token response cap, and -one retry per failed origin. Complete results are cached under -`data/predictions/manufacturing_stress_smoke_llmp_v1/`, so rerunning the -command does not make new model calls. Use `--force-refresh` to intentionally -re-run the predictors. - -Compare scores only when the results have the same scored-origin count. The -command prints both `scored` and `skipped` counts because failed agent origins -are excluded from the mean Brier score. +one retry per failed origin. Calendar dates are replaced by relative month +offsets in retrospective agent prompts to reduce historical-event recall. + +Complete results are cached under a specification-fingerprinted directory in +`data/predictions/`, so changing the stride, horizon, dates, or warmup cannot +silently reuse an incompatible result. Incomplete runs with skipped origins +are not cached. Use `--force-refresh` to intentionally re-run every predictor. +The command also verifies that every reported model was scored on the exact +same origin and forecast-date pairs. + +This remains a retrospective LLM pseudo-backtest: anonymizing dates reduces, +but cannot eliminate, the possibility that a modern model recognizes a +historical episode from its training knowledge. Use prospectively recorded +forecasts for a clean out-of-sample LLM evaluation. Run one current forecast, including the structured agent: diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py index 9e1e1a845..67053b677 100644 --- a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py @@ -34,9 +34,10 @@ def _build_instruction() -> str: return ( "## Role\n\n" "You are a cautious U.S. manufacturing-cycle analyst. Estimate the probability that the " - "binary IPMAN stress event in the supplied task resolves to 1 at the specified forecast date.\n\n" + "binary IPMAN stress event in the supplied task resolves to 1 at the specified forecast horizon.\n\n" "## Rules\n\n" - "1. Use only the JSON payload. Do not use remembered events or facts after `as_of`.\n" + "1. Use only the JSON payload. Do not use remembered events or facts after the forecast origin.\n" + " Historical backtests may anonymize calendar dates; do not try to infer the hidden dates.\n" "2. Start from the supplied historical base rate, then adjust using the five supplied signals.\n" "3. Treat negative IPMAN momentum, a restrictive fed funds rate, and an inverted 10Y-2Y spread " "as possible evidence for stress; explain how the signals interact.\n" @@ -57,6 +58,7 @@ class ManufacturingStressPromptBuilder(BaseModel): recent_history_months: int = Field(default=12, ge=6, le=120) trailing_base_rate_months: int = Field(default=60, ge=12, le=240) + anonymize_dates: bool = False def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: """Build one structured, cutoff-safe forecast payload.""" @@ -83,19 +85,32 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: target_values = target["value"].astype(float) trailing_values = target_values.tail(self.trailing_base_rate_months) - recent_ipman = [ - { - "reference_month": str(pd.Timestamp(timestamp).date()), - "value": float(value), - "released_at": str(pd.Timestamp(released_at).date()), - } - for timestamp, value, released_at in zip( + recent_rows = list( + zip( ipman["timestamp"].tail(self.recent_history_months), ipman["value"].tail(self.recent_history_months), ipman["released_at"].tail(self.recent_history_months), strict=True, ) - ] + ) + if self.anonymize_dates: + origin_month = as_of.to_period("M").ordinal + recent_ipman = [ + { + "months_before_origin": origin_month - pd.Timestamp(timestamp).to_period("M").ordinal, + "value": float(value), + } + for timestamp, value, _released_at in recent_rows + ] + else: + recent_ipman = [ + { + "reference_month": str(pd.Timestamp(timestamp).date()), + "value": float(value), + "released_at": str(pd.Timestamp(released_at).date()), + } + for timestamp, value, released_at in recent_rows + ] payload: dict[str, Any] = { "task": { @@ -103,8 +118,6 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: "question": task.description, "horizon_months": task.horizons[0], }, - "as_of": str(as_of.date()), - "forecast_date": str(forecast_date.date()), "target_definition": { "event": "manufacturing stress", "stress_value": 1, @@ -123,6 +136,11 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: }, "recent_ipman": recent_ipman, } + if self.anonymize_dates: + payload["timing"] = {"calendar_dates_anonymized": True} + else: + payload["as_of"] = str(as_of.date()) + payload["forecast_date"] = str(forecast_date.date()) return json.dumps(payload, separators=(",", ":")) @@ -140,11 +158,13 @@ def build_manufacturing_stress_agent_config(model: str = LITE_MODEL) -> AgentCon def build_manufacturing_stress_agent_predictor( config: AgentConfig | None = None, + *, + anonymize_dates: bool = False, ) -> AgentPredictor: """Wrap the analyst in the standard binary AgentPredictor contract.""" return AgentPredictor( agent_config=config or build_manufacturing_stress_agent_config(), - prompt_builder=ManufacturingStressPromptBuilder(), + prompt_builder=ManufacturingStressPromptBuilder(anonymize_dates=anonymize_dates), output_schema=DiscreteAgentForecastOutput, ) diff --git a/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb b/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb index 22e3719f5..a9f800bce 100644 --- a/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb +++ b/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb @@ -2,33 +2,29 @@ "cells": [ { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "988dada7", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running: uv sync --all-extras --dev --all-packages\n", - "\n", - "Environment synchronized successfully.\n", - "If packages changed, restart the notebook kernel before continuing.\n" - ] - } - ], + "outputs": [], "source": [ "# Cell 0: synchronize the repository environment before running the workbench.\n", - "from pathlib import Path\n", "import subprocess\n", + "from pathlib import Path\n", "\n", - "SETUP_ROOT = Path.cwd()\n", - "while not (SETUP_ROOT / \"pyproject.toml\").exists() and SETUP_ROOT != SETUP_ROOT.parent:\n", - " SETUP_ROOT = SETUP_ROOT.parent\n", "\n", - "if not (SETUP_ROOT / \"pyproject.toml\").exists():\n", - " raise FileNotFoundError(\"Could not find the repository root containing pyproject.toml.\")\n", + "def find_repo_root(start: Path) -> Path:\n", + " \"\"\"Find the workspace root without confusing member pyproject files for it.\"\"\"\n", + " for candidate in (start, *start.parents):\n", + " if (\n", + " (candidate / \"uv.lock\").exists()\n", + " and (candidate / \"implementations\").is_dir()\n", + " and (candidate / \"aieng-forecasting\").is_dir()\n", + " ):\n", + " return candidate\n", + " raise FileNotFoundError(\"Could not find the agentic-forecasting repository root.\")\n", "\n", + "\n", + "SETUP_ROOT = find_repo_root(Path.cwd().resolve())\n", "print(\"Running: uv sync --all-extras --dev --all-packages\")\n", "setup_result = subprocess.run(\n", " [\"uv\", \"sync\", \"--all-extras\", \"--dev\", \"--all-packages\"],\n", @@ -44,7 +40,7 @@ " \"uv sync failed. Install uv or restart the notebook with the repository environment selected.\"\n", " )\n", "print(\"Environment synchronized successfully.\")\n", - "print(\"If packages changed, restart the notebook kernel before continuing.\")" + "print(\"If packages changed, restart the notebook kernel before continuing.\")\n" ] }, { @@ -56,7 +52,7 @@ "\n", "This notebook is the main interactive entry point for the manufacturing-stress experiment. It creates or refreshes the FRED data cache, runs the deterministic baselines, and optionally runs the token-limited LLMP backtest.\n", "\n", - "All predictors use the same backtest specification and shared Brier-score implementation. The LLMP is opt-in and cached so repeated analysis does not make new model calls." + "All predictors use the same backtest specification and shared Brier-score implementation. Complete LLMP results are cached by backtest-specification fingerprint so repeated analysis does not make new model calls. Historical agent prompts use relative month offsets instead of calendar dates, but this remains a retrospective pseudo-backtest: model-training knowledge leakage cannot be eliminated completely.\n" ] }, { @@ -64,15 +60,7 @@ "execution_count": null, "id": "d1b6955d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'refresh_fred_data': False, 'backtest_stride': 3, 'run_llmp_backtest': True, 'force_refresh_llmp_cache': True, 'run_current_forecast': False}\n" - ] - } - ], + "outputs": [], "source": [ "# Main controls: change these values, then run the notebook from top to bottom.\n", "REFRESH_FRED_DATA = False\n", @@ -106,43 +94,35 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "2e5a002b", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Repository: c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\n" - ] - } - ], + "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import pandas as pd\n", "import yaml\n", - "from dotenv import load_dotenv\n", "from aieng.forecasting.evaluation import BacktestSpec, backtest\n", - "from aieng.forecasting.evaluation.artifacts import load_backtest_result, save_backtest_result\n", "from aieng.forecasting.methods import HistoricalFrequencyPredictor\n", + "from dotenv import load_dotenv\n", "from manufacturing_stress_forecasting.analyst_agent import build_manufacturing_stress_agent_predictor\n", "from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID, build_manufacturing_stress_service\n", "from manufacturing_stress_forecasting.predictors import (\n", " ManufacturingStressLogisticPredictor,\n", " ManufacturingStressXGBoostPredictor,\n", ")\n", + "from manufacturing_stress_forecasting.run_agent_backtest import (\n", + " run_or_load_backtest,\n", + " validate_comparable_results,\n", + ")\n", "\n", - "REPO_ROOT = Path.cwd()\n", - "if not (REPO_ROOT / \"pyproject.toml\").exists():\n", - " REPO_ROOT = Path.cwd().parents[1]\n", "\n", + "REPO_ROOT = SETUP_ROOT\n", "load_dotenv(REPO_ROOT / \".env\", override=False)\n", "SPEC_PATH = REPO_ROOT / \"implementations\" / \"manufacturing_stress_forecasting\" / \"specs\" / \"manufacturing_stress_smoke.yaml\"\n", "STORE_DIR = REPO_ROOT / \"data\" / \"predictions\"\n", - "LLMP_SPEC_ID = \"manufacturing_stress_smoke_llmp_v1\"\n", - "print(f\"Repository: {REPO_ROOT}\")" + "print(f\"Repository: {REPO_ROOT}\")\n" ] }, { @@ -157,25 +137,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "7cd4ad0a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " series_id description source units frequency n_obs start end\n", - " fed_funds_rate_pct Month-end effective federal funds rate FRED (DFF), derived monthly Percent MS 867 1954-07-01 2026-09-01\n", - " ipman_change_1m_pct Trailing 1-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 654 1972-02-01 2026-07-01\n", - " ipman_change_3m_pct Trailing 3-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 652 1972-04-01 2026-07-01\n", - " ipman_change_6m_pct Trailing 6-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 649 1972-07-01 2026-07-01\n", - "ipman_us_manufacturing_production U.S. manufacturing industrial production index (IPMAN) FRED (IPMAN) Index MS 655 1972-01-01 2026-07-01\n", - " manufacturing_stress Binary U.S. manufacturing stress label: 1 when trailing 3-month IPMAN change is at or below -2.0% Derived from FRED IPMAN Binary event (0=no stress, 1=stress) MS 652 1972-04-01 2026-07-01\n", - " treasury_10y_minus_2y_pct_points Month-end 10-year minus 2-year Treasury yield spread FRED (DGS10 minus DGS2), derived monthly Percentage points MS 604 1976-06-01 2026-09-01\n" - ] - } - ], + "outputs": [], "source": [ "service = build_manufacturing_stress_service(\n", " cache_dir=REPO_ROOT / \"data\" / \"fred\",\n", @@ -196,20 +161,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "36a12895", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Probability that U.S. manufacturing will be under stress three months ahead. A resolved month is stressed when IPMAN has declined by at least 2 percent over its preceding three months.\n", - "Origins: 2018-01-01 to 2024-12-01, stride=3, warmup=60\n", - "Target: manufacturing_stress; horizon=3 MS\n" - ] - } - ], + "outputs": [], "source": [ "with SPEC_PATH.open() as file:\n", " spec = BacktestSpec.model_validate(yaml.safe_load(file))\n", @@ -227,6933 +182,44 @@ "source": [ "## Run one smoke test\n", "\n", - "This is the single execution path. It always runs the historical-frequency, logistic-regression, and XGBoost predictors. Set `RUN_LLMP_BACKTEST = True` in the first cell to include the token-limited LLMP in the same run. When LLMP mode is enabled, completed results are loaded from cache unless `FORCE_REFRESH_LLMP_CACHE = True`." + "This is the single execution path. It always runs the historical-frequency, logistic-regression, and XGBoost predictors. Set `RUN_LLMP_BACKTEST = True` in the first cell to include the token-limited LLMP in the same run. Compatible complete results are loaded from cache unless `FORCE_REFRESH_LLMP_CACHE = True`; refreshed FRED data also forces a rerun.\n" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "345f6b3e", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "historical_frequency: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\historical_frequency.yaml\n", - "historical_frequency: 0.0356 mean brier; scored=28 skipped=0\n", - "manufacturing_stress_logistic_ipman_rates: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\manufacturing_stress_logistic_ipman_rates.yaml\n", - "manufacturing_stress_logistic_ipman_rates: 0.0471 mean brier; scored=28 skipped=0\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "manufacturing_stress_xgboost_ipman_rates: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\manufacturing_stress_xgboost_ipman_rates.yaml\n", - "manufacturing_stress_xgboost_ipman_rates: 0.0413 mean brier; scored=28 skipped=0\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n" - ] - }, - { - "ename": "ValueError", - "evalue": "No predictions were scored. All 28 candidate origins were skipped. Check that the target series covers the evaluation window and that warmup (60) is not too large.", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 33\u001b[39m\n\u001b[32m 29\u001b[39m \n\u001b[32m 30\u001b[39m results = {}\n\u001b[32m 31\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m predictor \u001b[38;5;28;01min\u001b[39;00m predictors:\n\u001b[32m 32\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m RUN_LLMP_BACKTEST:\n\u001b[32m---> \u001b[39m\u001b[32m33\u001b[39m result = run_cached_backtest(predictor, force_refresh=FORCE_REFRESH_LLMP_CACHE)\n\u001b[32m 34\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 35\u001b[39m result = backtest(predictor=predictor, spec=spec, data_service=service)\n\u001b[32m 36\u001b[39m results[predictor.predictor_id] = result\n", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 10\u001b[39m, in \u001b[36mrun_cached_backtest\u001b[39m\u001b[34m(predictor, force_refresh)\u001b[39m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m cached \u001b[38;5;28;01mis\u001b[39;00m \u001b[38;5;28;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 7\u001b[39m print(f\"{predictor_id}: loaded {artifact_path}\")\n\u001b[32m 8\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m cached\n\u001b[32m 9\u001b[39m \n\u001b[32m---> \u001b[39m\u001b[32m10\u001b[39m result = backtest(\n\u001b[32m 11\u001b[39m predictor=predictor,\n\u001b[32m 12\u001b[39m spec=spec,\n\u001b[32m 13\u001b[39m data_service=service,\n", - "\u001b[36mFile \u001b[39m\u001b[32m~\\BMO-C2-agentic-forecasting\\aieng-forecasting\\aieng\\forecasting\\evaluation\\backtest.py:661\u001b[39m, in \u001b[36mbacktest\u001b[39m\u001b[34m(predictor, spec, data_service, max_retries, retry_delay)\u001b[39m\n\u001b[32m 611\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mbacktest\u001b[39m(\n\u001b[32m 612\u001b[39m predictor: Predictor,\n\u001b[32m 613\u001b[39m spec: BacktestSpec,\n\u001b[32m (...)\u001b[39m\u001b[32m 616\u001b[39m retry_delay: \u001b[38;5;28mfloat\u001b[39m = \u001b[32m2.0\u001b[39m,\n\u001b[32m 617\u001b[39m ) -> BacktestResult:\n\u001b[32m 618\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Run a backtest of a predictor against a BacktestSpec.\u001b[39;00m\n\u001b[32m 619\u001b[39m \n\u001b[32m 620\u001b[39m \u001b[33;03m Iterates over forecast origins derived from the spec, calls the predictor\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 659\u001b[39m \u001b[33;03m >>> print(f\"Mean {results.metric.upper()}: {results.mean_score:.4f}\")\u001b[39;00m\n\u001b[32m 660\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m661\u001b[39m predictions, scores, skipped = \u001b[30;43mrun_eval_loop\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 662\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mpredictor\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mpredictor\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 663\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mtask\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mtask\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 664\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43morigins\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43morigins\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 665\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mwarmup\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mwarmup\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 666\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mdata_service\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mdata_service\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 667\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmax_retries\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mmax_retries\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 668\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mretry_delay\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mretry_delay\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 669\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 670\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m BacktestResult(\n\u001b[32m 671\u001b[39m spec=spec,\n\u001b[32m 672\u001b[39m predictor_id=predictor.predictor_id,\n\u001b[32m (...)\u001b[39m\u001b[32m 678\u001b[39m skipped_origins=skipped,\n\u001b[32m 679\u001b[39m )\n", - "\u001b[36mFile \u001b[39m\u001b[32m~\\BMO-C2-agentic-forecasting\\aieng-forecasting\\aieng\\forecasting\\evaluation\\backtest.py:602\u001b[39m, in \u001b[36mrun_eval_loop\u001b[39m\u001b[34m(predictor, task, origins, warmup, data_service, max_retries, retry_delay)\u001b[39m\n\u001b[32m 599\u001b[39m skipped += \u001b[32m1\u001b[39m\n\u001b[32m 601\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m predictions:\n\u001b[32m--> \u001b[39m\u001b[32m602\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 603\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mNo predictions were scored. All \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(origins)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m candidate origins were skipped. \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 604\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mCheck that the target series covers the evaluation window and that warmup (\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mwarmup\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m) \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 605\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mis not too large.\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 606\u001b[39m )\n\u001b[32m 608\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m predictions, scores, skipped\n", - "\u001b[31mValueError\u001b[39m: No predictions were scored. All 28 candidate origins were skipped. Check that the target series covers the evaluation window and that warmup (60) is not too large." - ] - } - ], + "outputs": [], "source": [ - "def run_cached_backtest(predictor, *, force_refresh=False):\n", - " predictor_id = predictor.predictor_id\n", - " artifact_path = STORE_DIR / LLMP_SPEC_ID / f\"{predictor_id}.yaml\"\n", - " if not force_refresh:\n", - " cached = load_backtest_result(LLMP_SPEC_ID, predictor_id, store_dir=STORE_DIR)\n", - " if cached is not None:\n", - " print(f\"{predictor_id}: loaded {artifact_path}\")\n", - " return cached\n", - "\n", - " result = backtest(\n", - " predictor=predictor,\n", - " spec=spec,\n", - " data_service=service,\n", - " max_retries=1,\n", - " retry_delay=1.0,\n", - " )\n", - " path = save_backtest_result(result, spec_id=LLMP_SPEC_ID, store_dir=STORE_DIR)\n", - " print(f\"{predictor_id}: saved {path}\")\n", - " return result\n", - "\n", - "\n", "predictors = [\n", " HistoricalFrequencyPredictor(),\n", " ManufacturingStressLogisticPredictor(),\n", " ManufacturingStressXGBoostPredictor(),\n", "]\n", "if RUN_LLMP_BACKTEST:\n", - " predictors.append(build_manufacturing_stress_agent_predictor())\n", + " predictors.append(build_manufacturing_stress_agent_predictor(anonymize_dates=True))\n", "\n", "results = {}\n", "for predictor in predictors:\n", " if RUN_LLMP_BACKTEST:\n", - " result = run_cached_backtest(predictor, force_refresh=FORCE_REFRESH_LLMP_CACHE)\n", + " result = run_or_load_backtest(\n", + " predictor,\n", + " spec,\n", + " service,\n", + " force_refresh=FORCE_REFRESH_LLMP_CACHE or REFRESH_FRED_DATA,\n", + " store_dir=STORE_DIR,\n", + " )\n", " else:\n", " result = backtest(predictor=predictor, spec=spec, data_service=service)\n", " results[predictor.predictor_id] = result\n", " print(\n", " f\"{result.predictor_id}: {result.mean_score:.4f} mean {result.metric}; \"\n", " f\"scored={len(result.scores)} skipped={result.skipped_origins}\"\n", - " )" + " )\n", + "\n", + "validate_comparable_results(list(results.values()))\n", + "print(\"All predictors were scored on identical forecast origins.\")\n" ] }, { @@ -7163,89 +229,15 @@ "source": [ "## Compare results\n", "\n", - "Use only results with matching scored-origin counts for a fair comparison. Lower Brier score is better." + "Lower Brier score is better. The notebook refuses to compare results unless every predictor was scored on the exact same forecast-origin and forecast-date pairs.\n" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "e7c1bd4f", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
predictormetricmean_brierscoredskipped
0historical_frequencybrier0.035598280
2manufacturing_stress_xgboost_ipman_ratesbrier0.041290280
1manufacturing_stress_logistic_ipman_ratesbrier0.047142280
\n", - "
" - ], - "text/plain": [ - " predictor metric mean_brier scored \\\n", - "0 historical_frequency brier 0.035598 28 \n", - "2 manufacturing_stress_xgboost_ipman_rates brier 0.041290 28 \n", - "1 manufacturing_stress_logistic_ipman_rates brier 0.047142 28 \n", - "\n", - " skipped \n", - "0 0 \n", - "2 0 \n", - "1 0 " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "comparison = pd.DataFrame(\n", " [\n", @@ -7274,18 +266,10 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "f360e6c3", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Current forecast is disabled. Set RUN_CURRENT_FORECAST = True to enable it.\n" - ] - } - ], + "outputs": [], "source": [ "if RUN_CURRENT_FORECAST:\n", " with SPEC_PATH.open() as file:\n", diff --git a/implementations/manufacturing_stress_forecasting/run_agent_backtest.py b/implementations/manufacturing_stress_forecasting/run_agent_backtest.py index 17fd1b982..488631234 100644 --- a/implementations/manufacturing_stress_forecasting/run_agent_backtest.py +++ b/implementations/manufacturing_stress_forecasting/run_agent_backtest.py @@ -3,6 +3,9 @@ from __future__ import annotations import argparse +import hashlib +import json +from datetime import datetime from pathlib import Path import yaml @@ -23,7 +26,24 @@ REPO_ROOT = Path(__file__).resolve().parents[2] SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" STORE_DIR = REPO_ROOT / "data" / "predictions" -SPEC_ID = "manufacturing_stress_smoke_llmp_v1" +# Bump when prompt or predictor semantics change without changing predictor IDs. +CACHE_VERSION = "v2" + + +def backtest_cache_id(spec: BacktestSpec) -> str: + """Return a versioned cache key tied to the complete backtest spec.""" + serialized = json.dumps(spec.model_dump(mode="json"), sort_keys=True, separators=(",", ":")) + fingerprint = hashlib.sha256(serialized.encode()).hexdigest()[:10] + return f"manufacturing_stress_smoke_llmp_{CACHE_VERSION}_{fingerprint}" + + +def _cache_rejection_reason(cached: BacktestResult, spec: BacktestSpec) -> str | None: + """Explain why a cached result is unsafe to reuse, if applicable.""" + if cached.spec != spec: + return "the cached backtest specification differs" + if cached.skipped_origins: + return f"the cached result skipped {cached.skipped_origins} origin(s)" + return None def _parse_args() -> argparse.Namespace: @@ -37,20 +57,27 @@ def _parse_args() -> argparse.Namespace: return parser.parse_args() -def _run_or_load( +def run_or_load_backtest( predictor: Predictor, spec: BacktestSpec, service: DataService, *, force_refresh: bool, + spec_id: str | None = None, + store_dir: Path = STORE_DIR, ) -> BacktestResult: - """Load one cached result or run it with one retry and persist it.""" + """Load a compatible complete result or run it and cache only if complete.""" predictor_id = predictor.predictor_id + resolved_spec_id = spec_id or backtest_cache_id(spec) if not force_refresh: - cached = load_backtest_result(SPEC_ID, predictor_id, store_dir=STORE_DIR) + cached = load_backtest_result(resolved_spec_id, predictor_id, store_dir=store_dir) if cached is not None: - print(f"{predictor_id}: loaded {STORE_DIR / SPEC_ID / (predictor_id + '.yaml')}") - return cached + rejection_reason = _cache_rejection_reason(cached, spec) + if rejection_reason is None: + path = store_dir / resolved_spec_id / f"{predictor_id}.yaml" + print(f"{predictor_id}: loaded {path}") + return cached + print(f"{predictor_id}: ignoring cache because {rejection_reason}") result = backtest( predictor=predictor, @@ -59,11 +86,41 @@ def _run_or_load( max_retries=1, retry_delay=1.0, ) - path = save_backtest_result(result, spec_id=SPEC_ID, store_dir=STORE_DIR) + if result.skipped_origins: + print( + f"{predictor_id}: not cached because the run skipped " + f"{result.skipped_origins} origin(s)" + ) + return result + + path = save_backtest_result(result, spec_id=resolved_spec_id, store_dir=store_dir) print(f"{predictor_id}: saved {path}") return result +def scored_origin_keys(result: BacktestResult) -> set[tuple[datetime, datetime]]: + """Return the exact forecast-origin/date pairs scored in a result.""" + return {(prediction.as_of, prediction.forecast_date) for prediction in result.predictions} + + +def validate_comparable_results(results: list[BacktestResult]) -> None: + """Require all model comparisons to use identical scored origins.""" + if len(results) < 2: + return + + reference = results[0] + reference_keys = scored_origin_keys(reference) + for result in results[1:]: + result_keys = scored_origin_keys(result) + if result_keys != reference_keys: + missing = len(reference_keys - result_keys) + extra = len(result_keys - reference_keys) + raise ValueError( + f"Cannot compare {result.predictor_id} with {reference.predictor_id}: " + f"scored origins differ (missing={missing}, extra={extra})." + ) + + def main() -> None: """Run all predictors under the identical binary Brier-score harness.""" args = _parse_args() @@ -75,14 +132,18 @@ def main() -> None: HistoricalFrequencyPredictor(), ManufacturingStressLogisticPredictor(), ManufacturingStressXGBoostPredictor(), - build_manufacturing_stress_agent_predictor(), + build_manufacturing_stress_agent_predictor(anonymize_dates=True), ] + results: list[BacktestResult] = [] for predictor in predictors: - result = _run_or_load(predictor, spec, service, force_refresh=args.force_refresh) + result = run_or_load_backtest(predictor, spec, service, force_refresh=args.force_refresh) + results.append(result) print( f"{result.predictor_id}: {result.mean_score:.4f} mean {result.metric}; " f"scored={len(result.scores)} skipped={result.skipped_origins}" ) + validate_comparable_results(results) + print("All predictors were scored on identical forecast origins.") if __name__ == "__main__": diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_backtest.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_backtest.py new file mode 100644 index 000000000..5792afcb0 --- /dev/null +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_backtest.py @@ -0,0 +1,122 @@ +"""Tests for manufacturing-stress backtest caching and comparison guards.""" + +from datetime import datetime +from pathlib import Path + +import pytest +from aieng.forecasting.data import DataService +from aieng.forecasting.evaluation import BacktestSpec, ForecastingTask +from aieng.forecasting.evaluation.backtest import BacktestResult +from aieng.forecasting.evaluation.prediction import BinaryForecast, Prediction +from aieng.forecasting.methods import HistoricalFrequencyPredictor +from manufacturing_stress_forecasting import run_agent_backtest + + +def _spec(*, stride: int = 3) -> BacktestSpec: + return BacktestSpec( + task=ForecastingTask( + task_id="manufacturing_stress_3m", + target_series_id="manufacturing_stress", + horizons=[3], + frequency="MS", + payload_type="binary", + description="Manufacturing stress three months ahead", + ), + start=datetime(2020, 1, 1), + end=datetime(2020, 7, 1), + stride=stride, + ) + + +def _result( + spec: BacktestSpec, + *, + predictor_id: str = "historical_frequency", + as_of: datetime = datetime(2020, 1, 1), + skipped_origins: int = 0, +) -> BacktestResult: + prediction = Prediction( + predictor_id=predictor_id, + task_id=spec.task.task_id, + issued_at=datetime(2026, 1, 1), + as_of=as_of, + forecast_date=datetime(as_of.year, as_of.month + 3, 1), + payload=BinaryForecast(probability=0.1), + ) + return BacktestResult( + spec=spec, + predictor_id=predictor_id, + predictions=[prediction], + scores=[0.01], + metric="brier", + mean_score=0.01, + ran_at=datetime(2026, 1, 1), + skipped_origins=skipped_origins, + ) + + +def test_cache_id_changes_with_backtest_spec() -> None: + assert run_agent_backtest.backtest_cache_id(_spec(stride=1)) != run_agent_backtest.backtest_cache_id( + _spec(stride=3) + ) + + +def test_incomplete_result_is_not_cached(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: + spec = _spec() + incomplete = _result(spec, skipped_origins=1) + saved: list[BacktestResult] = [] + + monkeypatch.setattr(run_agent_backtest, "load_backtest_result", lambda *args, **kwargs: None) + monkeypatch.setattr(run_agent_backtest, "backtest", lambda **kwargs: incomplete) + monkeypatch.setattr( + run_agent_backtest, + "save_backtest_result", + lambda result, **kwargs: saved.append(result) or tmp_path / "unexpected.yaml", + ) + + result = run_agent_backtest.run_or_load_backtest( + HistoricalFrequencyPredictor(), + spec, + DataService(), + force_refresh=False, + store_dir=tmp_path, + ) + + assert result is incomplete + assert saved == [] + + +def test_comparison_rejects_different_scored_origins() -> None: + spec = _spec() + first = _result(spec, predictor_id="first", as_of=datetime(2020, 1, 1)) + second = _result(spec, predictor_id="second", as_of=datetime(2020, 2, 1)) + + with pytest.raises(ValueError, match="scored origins differ"): + run_agent_backtest.validate_comparable_results([first, second]) + + +def test_incompatible_cached_spec_is_recomputed(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: + requested_spec = _spec(stride=1) + stale = _result(_spec(stride=3)) + fresh = _result(requested_spec) + saved: list[BacktestResult] = [] + + monkeypatch.setattr(run_agent_backtest, "load_backtest_result", lambda *args, **kwargs: stale) + monkeypatch.setattr(run_agent_backtest, "backtest", lambda **kwargs: fresh) + monkeypatch.setattr( + run_agent_backtest, + "save_backtest_result", + lambda result, **kwargs: saved.append(result) or tmp_path / "fresh.yaml", + ) + + result = run_agent_backtest.run_or_load_backtest( + HistoricalFrequencyPredictor(), + requested_spec, + DataService(), + force_refresh=False, + spec_id="deliberately-shared-id", + store_dir=tmp_path, + ) + + assert result is fresh + assert saved == [fresh] diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py index c6729d3e8..de87e2388 100644 --- a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py @@ -85,3 +85,52 @@ def test_agent_config_limits_output_tokens() -> None: assert config.max_output_tokens == 384 assert config.temperature == 0.1 assert config.seed == 42 + + +def test_backtest_prompt_anonymizes_calendar_dates() -> None: + service = DataService() + metadata = lambda series_id: SeriesMetadata( # noqa: E731 + series_id=series_id, + description=series_id, + source="test", + units="test", + frequency="MS", + ) + service.register( + IPMAN_SERIES_ID, + StaticFrameAdapter(_frame([100, 101, 102, 103, 104, 105])), + metadata(IPMAN_SERIES_ID), + ) + service.register( + STRESS_SERIES_ID, + StaticFrameAdapter(_frame([0, 0, 1, 0, 0, 0])), + metadata(STRESS_SERIES_ID), + ) + for index, series_id in enumerate(FEATURE_SERIES_IDS): + service.register( + series_id, + StaticFrameAdapter(_frame([float(index)] * 6)), + metadata(series_id), + ) + + task = ForecastingTask( + task_id="manufacturing_stress_3m", + target_series_id=STRESS_SERIES_ID, + horizons=[3], + frequency="MS", + payload_type="binary", + description="Will manufacturing be stressed three months ahead?", + ) + prompt = ManufacturingStressPromptBuilder(anonymize_dates=True)( + task=task, + context=service.context(datetime(2020, 6, 1)), + ) + payload = json.loads(prompt) + + assert "as_of" not in payload + assert "forecast_date" not in payload + assert payload["timing"] == {"calendar_dates_anonymized": True} + assert payload["recent_ipman"][-1] == {"months_before_origin": 0, "value": 105.0} + assert "reference_month" not in payload["recent_ipman"][-1] + assert "released_at" not in payload["recent_ipman"][-1] + assert "2020-" not in prompt From be1834cdaa00bbc2af1f9647493220c76a4c6cad Mon Sep 17 00:00:00 2001 From: default Date: Wed, 23 Sep 2026 16:25:12 +0000 Subject: [PATCH 7/7] Expanded data fetch. Updated downstream components to ingest expanded data. --- data/fred/BAMLH0A0HYM2.parquet | Bin 0 -> 17038 bytes data/fred/CPIAUCSL.parquet | Bin 0 -> 25567 bytes data/fred/DFF.parquet | Bin 0 -> 504482 bytes data/fred/DGS10.parquet | Bin 0 -> 313410 bytes data/fred/DGS2.parquet | Bin 0 -> 246144 bytes data/fred/FEDFUNDS.parquet | Bin 0 -> 21649 bytes data/fred/ICSA.parquet | Bin 0 -> 61528 bytes data/fred/IPMAN.parquet | Bin 20621 -> 20645 bytes data/fred/UNRATE.parquet | Bin 0 -> 21050 bytes data/fred/VIXCLS.parquet | Bin 0 -> 189948 bytes data/yfinance/spy_adj_close_1d.parquet | Bin 0 -> 184339 bytes data/yfinance/xli_adj_close_1d.parquet | Bin 0 -> 176152 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 248 bytes .../PKG-INFO | 69 ++++++ .../SOURCES.txt | 76 ++++++ .../dependency_links.txt | 1 + .../requires.txt | 3 + .../top_level.txt | 6 + .../README.md | 27 ++- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 589 bytes .../__pycache__/data.cpython-312.pyc | Bin 0 -> 7594 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 9775 bytes .../run_agent_backtest.cpython-312.pyc | Bin 0 -> 7495 bytes .../run_agent_prediction.cpython-312.pyc | Bin 0 -> 3330 bytes .../__pycache__/run_smoke.cpython-312.pyc | Bin 0 -> 1873 bytes .../__pycache__/targets.cpython-312.pyc | Bin 0 -> 2036 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 527 bytes .../__pycache__/agent.cpython-312.pyc | Bin 0 -> 9216 bytes .../analyst_agent/agent.py | 2 +- .../manufacturing_stress_forecasting/data.py | 97 +++++++- .../features.py | 95 +++++++- .../manufacturing_stress_workbench.ipynb | 222 ++++++++++++++++-- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 548 bytes .../__pycache__/logistic.cpython-312.pyc | Bin 0 -> 7596 bytes .../__pycache__/xgboost.cpython-312.pyc | Bin 0 -> 4331 bytes .../predictors/logistic.py | 4 +- .../predictors/xgboost.py | 2 +- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 169 bytes ...gent_backtest.cpython-312-pytest-9.1.1.pyc | Bin 0 -> 10761 bytes ..._agent_prompt.cpython-312-pytest-9.1.1.pyc | Bin 0 -> 15109 bytes ..._and_features.cpython-312-pytest-9.1.1.pyc | Bin 0 -> 17339 bytes .../test_agent_prompt.py | 2 +- .../test_targets_and_features.py | 31 +++ scripts/fetch_manufacturing_stress.py | 4 +- 44 files changed, 590 insertions(+), 51 deletions(-) create mode 100644 data/fred/BAMLH0A0HYM2.parquet create mode 100644 data/fred/CPIAUCSL.parquet create mode 100644 data/fred/DFF.parquet create mode 100644 data/fred/DGS10.parquet create mode 100644 data/fred/DGS2.parquet create mode 100644 data/fred/FEDFUNDS.parquet create mode 100644 data/fred/ICSA.parquet create mode 100644 data/fred/UNRATE.parquet create mode 100644 data/fred/VIXCLS.parquet create mode 100644 data/yfinance/spy_adj_close_1d.parquet create mode 100644 data/yfinance/xli_adj_close_1d.parquet create mode 100644 implementations/__pycache__/__init__.cpython-312.pyc create mode 100644 implementations/agentic_forecasting_implementations.egg-info/PKG-INFO create mode 100644 implementations/agentic_forecasting_implementations.egg-info/SOURCES.txt create mode 100644 implementations/agentic_forecasting_implementations.egg-info/dependency_links.txt create mode 100644 implementations/agentic_forecasting_implementations.egg-info/requires.txt create mode 100644 implementations/agentic_forecasting_implementations.egg-info/top_level.txt create mode 100644 implementations/manufacturing_stress_forecasting/__pycache__/__init__.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/__pycache__/data.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/__pycache__/features.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/__pycache__/run_agent_backtest.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/__pycache__/run_agent_prediction.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/__pycache__/run_smoke.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/__pycache__/targets.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/analyst_agent/__pycache__/__init__.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/analyst_agent/__pycache__/agent.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/predictors/__pycache__/__init__.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/predictors/__pycache__/logistic.cpython-312.pyc create mode 100644 implementations/manufacturing_stress_forecasting/predictors/__pycache__/xgboost.cpython-312.pyc create mode 100644 implementations/tests/__pycache__/__init__.cpython-312.pyc create mode 100644 implementations/tests/manufacturing_stress_forecasting/__pycache__/test_agent_backtest.cpython-312-pytest-9.1.1.pyc create mode 100644 implementations/tests/manufacturing_stress_forecasting/__pycache__/test_agent_prompt.cpython-312-pytest-9.1.1.pyc create mode 100644 implementations/tests/manufacturing_stress_forecasting/__pycache__/test_targets_and_features.cpython-312-pytest-9.1.1.pyc diff --git a/data/fred/BAMLH0A0HYM2.parquet b/data/fred/BAMLH0A0HYM2.parquet new file mode 100644 index 0000000000000000000000000000000000000000..9a47097eeed8604e5bf0ec8714686366781deb59 GIT binary patch literal 17038 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 MjG_YZf9>%<0ER3{1ONa4 literal 0 HcmV?d00001 diff --git a/data/fred/DFF.parquet b/data/fred/DFF.parquet new file mode 100644 index 0000000000000000000000000000000000000000..5eb0cfcaa3ed7783f93969924125b3d719a37a43 GIT binary patch literal 504482 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