feat(evaluation) 11/15: admin API routes, and promptfoo in both images - #822
feat(evaluation) 11/15: admin API routes, and promptfoo in both images#822Ahmath-Gadji wants to merge 1 commit into
Conversation
|
Warning Review limit reached
Next review available in: 59 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
62e72a1 to
8319b05
Compare
4795624 to
def4a59
Compare
|
@coderabbitai full review |
✅ Action performedFull review finished. Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 56 minutes. |
8319b05 to
d32c76e
Compare
def4a59 to
fb249f5
Compare
d32c76e to
a475b79
Compare
fb249f5 to
b12bfc8
Compare
a475b79 to
6b45d33
Compare
b12bfc8 to
cbaa005
Compare
Six admin-only routes under `/evaluation`, plus the response schemas and the router registration. Every route is admin-gated: a run indexes a corpus, spends grader tokens and occupies the single runner slot, so it is not something a partition editor should be able to trigger. `create_dataset` passes the open `UploadFile.file` streams to the service rather than reading them. Large uploads are already spooled to disk by Starlette; reading them in the router would pull them back into memory unbounded. Node 22 and a pinned promptfoo are installed in both images. It goes in api.Dockerfile as well as ray.Dockerfile because compose runs Ray inside the API container; a deployment with a separate Ray cluster needs the ray image. Pinned rather than `npx promptfoo@latest` so a run never depends on npm reachability or on CLI behaviour changing under a deployment that was not rebuilt. Node comes from NodeSource because the distro package predates promptfoo's floor.
6b45d33 to
6497847
Compare
cbaa005 to
a229934
Compare
Part 11 of 15 of the split of #811. Targets
eval/10-ray-worker(#821). Completes the backend — the feature is fully usable over HTTP after this; parts 12–14 are the UI.What
/evaluation/datasets/evaluation/datasets/evaluation/datasets/{id}/evaluation/runs/evaluation/runs202, or409/503)/evaluation/runs/{id}/evaluation/runs/{id}/cancelPlus the response schemas, and Node 22 + a pinned promptfoo in both images.
Notable
Depends(require_admin). A run indexes a corpus, spends grader tokens and occupies the single runner slot — not something a partition editor should be able to trigger.create_datasethandsUploadFile.filestraight to the service. Starlette has already spooled a large upload to disk; reading it here would pull it back into memory unbounded and undo part 7's streaming.api.Dockerfileandray.Dockerfile. Compose runs Ray inside the API container, so the API image needs it; a deployment with a separate Ray cluster needs the ray image. Missing either produces a run that fails only at the promptfoo step, minutes in.npx promptfoo@latest. A run should not depend on npm reachability, nor on CLI behaviour changing under a deployment that was never rebuilt. Node comes from NodeSource because the distro package predates promptfoo's floor.Testing
ruff, format check, the layer-import guard and the full unit suite (2270 passed; the one failure reproduces ondevelop). The routes are thin adapters over the service tested in parts 7 and 9.