kaxil opened a new pull request, #74308:
URL: https://github.com/apache/airflow/pull/74308

   `LLMRetryPolicy` and `ClassifierRetryPolicy` send the model only 
`ExceptionType: message`. That drops the exception chain, the stack and the 
module-qualified class name, which are often what says whether another attempt 
can succeed. A `JSONDecodeError` raised while handling a truncated read looks 
like bad data, so a model may say "stop", though the chained transport error 
underneath makes it a network failure a retry can fix.
   
   `include_traceback=True` sends the output of `traceback.format_exception()` 
instead. The default is unchanged.
   
   ```python
   ClassifierRetryPolicy(
       llm_conn_id="jev_default",
       categories=CATEGORIES,
       include_traceback=True,
   )
   ```
   
   Design points:
   
   - **Redact first, then truncate**, on the whole formatted traceback, so a 
registered secret can't be cut in half. That's the same order the message path 
already uses.
   - **A long traceback keeps its tail** (with a leading `(truncated) ...` 
marker): the innermost frames and the final exception line say the most. The 
message path still keeps the head.
   - **Opt-in, because it sends more to the model:** messages of chained 
exceptions, file paths on the worker, the source line of each frame, and more 
input tokens per classification. The docs warning now says so. Frame local 
variables are never included.
   
   The single-argument `traceback.format_exception(exc)` form needs Python 
3.10, which is the provider's floor.
   
   ---
   
   * Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information. Note: commit author/co-author name and email in commits 
become permanently public when merged.
   * For fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   * When adding dependency, check compliance with the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   * For significant user-facing changes create newsfragment: 
`{pr_number}.significant.rst`, in 
[airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments).
 You can add this file in a follow-up commit after the PR is created so you 
know the PR number.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to