[AI-3] Report the health of the LLM connection - #24889
Conversation
|
Caution The provided work package version does not match the core version Details:
Please make sure that:
|
|
Caution The Enterprise plan field is not set on the work package Details:
Please make sure that:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0191122c9c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| report = Llm::Validators::ConnectionValidator.new(connection).call | ||
| report.save! |
There was a problem hiding this comment.
Preserve inference failures across scheduled checks
When a manual deep check records an inference failure but /models remains reachable, the next six-hour job omits the inference group and saves its shallow report as the connection's latest report. Because the side panel and full status page only read latest_health_report, that later report can replace the failure with a green status without ever retrying the operation that failed; scheduled results need to retain the latest inference verdict or not supersede a deep report.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Deliberately left open: fixing this means either carrying old inference results into new reports or making a deep report sticky, which changes what the latest report means, and re-running inference on the schedule would spend a billed completion. Deferring the semantics to review.
0191122 to
df3f328
Compare
df3f328 to
bed276b
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
bed276b to
ceca821
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
Adds the health side panel and report page, reusing the HealthReports framework and preparing it for a third consumer. Six validator groups check the configuration, the server, the model catalogue, the capability verdicts, the feature bindings and, only when an administrator explicitly asks, a real inference call, so a scheduled check never spends a billed completion. The scheduled Llm::HealthCheckJob runs only while a connection is enabled, toggled from the update service and the disconnect action. Reports are kept as an audit trail with their own lifecycle, distinct from verdicts, and pruned by a cron job because nothing else prunes health_reports. Part 11 of the AI-3 stack. https://community.openproject.org/work_packages/66020
ceca821 to
761b2d4
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
Deploying openproject with ⚡ PullPreview
|
Ticket
AI-3
What are you trying to accomplish?
PR 11 of 11 in the AI-3 stack. Adds the health side panel and report page, reusing the HealthReports framework and preparing it for a third consumer. Six validator groups check the configuration, the server, the model catalogue, the capability verdicts, the feature bindings and, only when an administrator explicitly asks, a real inference call, so the scheduled check never spends a billed completion. The scheduled job runs only while a connection is enabled, reports are kept as an audit trail with their own lifecycle distinct from verdicts, and a cron job prunes them because nothing else prunes
health_reports.Merge checklist
llm_connectionfeature flagStacked on #24888.