Every eval framework your team runs.One wire. One ledger.
Seven tiles, three emit pills on each, one wire (/api/eval-records) — so a technical evaluator can confirm coverage in one glance instead of reading docs. Read the deep per-framework bodies on /docs/sdk.
Python §1
Wire your existing Python eval suite.
pip install, mirror a finalizer on your scorer, and every passing/failing test posts a signed record to /api/eval-records.
DeepEval is the pytest-shaped eval suite for LLM apps — metrics like answer relevancy, faithfulness, and hallucination run as unit tests. Plumbline captures DeepEval runs as signed records so a passing or failing test in CI lands on the ledger alongside the metric output your team already trusts.
Install
pip install deepevalWhat gets emitted
- Run scores
- Reviewer notes
- Signed receipts
Full reference
View DeepEval docsRAGAS scores retrieval-augmented generation on faithfulness, context precision, and answer relevance. Capture each RAGAS run as a signed Plumbline record so the same context-window + retriever-config your RAGAS report cites becomes a replayable artifact on the ledger.
Install
pip install ragasWhat gets emitted
- Run scores
- Reviewer notes
- Signed receipts
Full reference
View RAGAS docsOpenAI Evals runs JSON-defined tasks against an OpenAI-compatible completion endpoint. Register a Plumbline final_summarize step in your eval template and every Eval invocation in CI pushes a signed (input, output, score) record to the ledger alongside the oaieval summary output.
Install
pip install openai-evalsWhat gets emitted
- Run scores
- Reviewer notes
- Signed receipts
Full reference
View openai/evals on GitHubBraintrust's Eval() / braintrust SDK runs end-to-end eval loops with built-in scoring. Wrap your scorer so each braintrust run forwards (input, output, score) to Plumbline's /api/eval-records — same wire you can already see on /docs/sdk#Braintrust — so the run shows up on /dashboard/runs and your Braintrust project simultaneously.
Install
pip install braintrustWhat gets emitted
- Run scores
- Reviewer notes
- Signed receipts
Full reference
View Braintrust docsTypeScript §2
Cover the Node side of the eval pipeline.
npm install and forward each scorer output to /api/eval-records from a Node init — same wire as the Python tiles.
Same Braintrust eval loop on the Node side — braintrust.eval() with custom scorers. Forward each scorer's (input, output, score) tuple to Plumbline's /api/eval-records so the same TS run shows up on /dashboard/runs and your Braintrust project simultaneously.
Install
npm install braintrustWhat gets emitted
- Run scores
- Reviewer notes
- Signed receipts
Full reference
View Braintrust docsThe Vercel AI SDK's experimental eval harness scores streams from generateText / streamText against test data. Capture each scored run as a signed Plumbline record from a Node init file so the stream token counts, model ids, and scorer outputs are all chained into the ledger.
Install
npm install ai @ai-sdk/evalWhat gets emitted
- Run scores
- Reviewer notes
- Signed receipts
Full reference
View Vercel AI SDK evalsGeneric HTTP §3
In-house scorer? No SDK required.
POST the same EvalRecordCreate envelope with whatever tooling your team already uses — the wire is what every other tile already posts.
No SDK needed for a custom in-house scorer — POST the same EvalRecordCreate envelope to /api/eval-records with your team's tooling of choice. The wire is what every other tile in this directory already posts; the framework integration is whatever wraps it.
Install
curl -X POST \
https://plumbline-ai-9.polsia.app/api/eval-records \
-H "Content-Type: application/json" \
-H "Authorization: Bearer pl_<polsia-api-key>" \
-d '{
"model_id": "<polsia-model-id>",
"run_id": "custom-framework-001",
"version": "<polsia-model-version>",
"input": {"prompt":"<your-input>"},
"output": {"text":"<your-output>"}
}'What gets emitted
- Run scores
- Reviewer notes
- Signed receipts
Full reference
Read the SDK quickstart