Creating Evaluations
Code and judge evals for your Maniac models.
Last updated
item = {
"sample": {
"input": chat_completion_request,
"output": chat_completion_response
},
"ground_truth": {
"input": chat_completion_request,
"output": chat_completion_response
}
}def run_evaluation(item) -> dict:
pred = item["sample"]["output"]["choices"][0]["message"]["content"].strip()
gt = item["ground_truth"]["output"]["choices"][0]["message"]["content"].strip()
return {"score": 1.0 if pred == gt else 0.0}def run_evaluation(item) -> dict:
def extract(text):
return {t.strip().lower() for t in text.split(",") if t.strip()}
pred = extract(item["sample"]["output"]["choices"][0]["message"]["content"])
gt = extract(item["ground_truth"]["output"]["choices"][0]["message"]["content"])
if not gt:
return {"score": 0.0}
iou = len(pred & gt) / len(pred | gt)
return {"score": 1.0 if iou >= 0.8 else 0.0}
import json
def run_evaluation(item) -> dict:
text = item["sample"]["output"]["choices"][0]["message"]["content"]
try:
obj = json.loads(text)
except json.JSONDecodeError:
return {"score": 0.0}
required_keys = {"title", "summary", "confidence"}
return {"score": 1.0 if required_keys.issubset(obj.keys()) else 0.0}from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
model = SentenceTransformer("all-MiniLM-L6-v2")
def run_evaluation(item) -> dict:
try:
pred = item["sample"]["output"]["choices"][0]["message"]["content"]
gt = item["ground_truth"]["output"]["choices"][0]["message"]["content"]
except Exception:
return {"score": 0.0}
# Encode texts
embeddings = model.encode([pred, gt], normalize_embeddings=True)
pred_emb, gt_emb = embeddings
# Compute cosine similarity
similarity = float(cosine_similarity(
pred_emb.reshape(1, -1),
gt_emb.reshape(1, -1)
)[0][0])
# Threshold for pass/fail
return {"score": 1.0 if similarity >= 0.85 else 0.0}