general-eval-card / lib /schema.ts
Avijit Ghosh
fixed a lot of bugs, centralized schema
49d5ba7
raw
history blame
2.62 kB
import schema from '@/schema/evaluation-schema.json'
import categoryDetails from '@/schema/category-details.json'
import formHints from '@/schema/form-hints.json'
import systemInfoSchema from '@/schema/system-info-schema.json'
export type Category = {
id: string
name: string
description: string
type: 'capability' | 'risk'
detailedGuidance?: string
}
export type Question = {
id: string
text: string
tooltip?: string
hint?: string
customFields?: string[]
}
const raw = schema as {
version: string
categories: Array<{ id: string; name: string; type: 'capability' | 'risk' }>
benchmarkQuestions: Question[]
processQuestions: Question[]
}
// Merge in descriptions from category details
const data = {
version: raw.version,
categories: raw.categories.map((c) => ({
...c,
description: (categoryDetails.categories as any)[c.id]?.description || '',
detailedGuidance: (categoryDetails.categories as any)[c.id]?.detailedGuidance || ''
})) as Category[],
benchmarkQuestions: raw.benchmarkQuestions,
processQuestions: raw.processQuestions,
}
export function getAllCategories() {
return data.categories
}
export function getCategoryById(id: string) {
return data.categories.find((c) => c.id === id)
}
export function getBenchmarkQuestions() {
return data.benchmarkQuestions
}
export function getProcessQuestions() {
return data.processQuestions
}
// Export form utilities from schema
export const SOURCE_TYPES = formHints.sourceTypes
export const ADDITIONAL_ASPECTS_SECTION = formHints.additionalAspectsSection
// Form hint utilities from schema
export function getFieldPlaceholder(categoryId: string, field: "benchmarkName" | "metrics") {
if (field === "benchmarkName") return (formHints.recommendedBenchmarks as any)[categoryId] || "e.g., MMLU, HellaSwag, GSM8K"
return (formHints.recommendedMetrics as any)[categoryId] || "e.g., accuracy, F1, BLEU, perplexity"
}
export function getHint(categoryId: string, questionId: string, section: "benchmark" | "process") {
const catQ = (formHints.categoryQuestionHints as any)[categoryId]
const qHints = catQ ? catQ[questionId] : undefined
if (qHints && qHints[section]) return qHints[section]
if ((formHints.categoryHints as any)[categoryId] && (formHints.categoryHints as any)[categoryId][section]) return (formHints.categoryHints as any)[categoryId][section]
return (formHints.defaultHints as any)[section]
}
export function getSystemInfoFormOptions() {
return systemInfoSchema.formOptions
}
export function getSystemInfoSchema() {
return systemInfoSchema.systemInfo
}
export default data