Skip to content

@tasco/ai/eval

Bộ chạy eval prompt qua gateway, dùng trong script và CI (chỉ chạy trên Node).

Hàm

callGateway()

ts
function callGateway(messages, options): Promise<string>;

Gọi gateway 1 lượt, trả content assistant (ném lỗi khi HTTP/shape sai).

Tham số

Tham sốKiểu
messagesChatMessage[]
optionsEvalRunOptions

Trả về

Promise<string>


checkAssertion()

ts
function checkAssertion(output, a): AssertionResult;

Kiểm một assertion trên output model — hàm thuần, tất định.

Tham số

Tham sốKiểu
outputstring
aAssertion

Trả về

AssertionResult


formatReport()

ts
function formatReport(results): string;

Báo cáo markdown cho log CI: dòng tổng, từng case và assertion, output rút gọn của case trượt.

Tham số

Tham sốKiểu
resultsEvalCaseResult[]

Trả về

string


runEvalCase()

ts
function runEvalCase(c, options): Promise<EvalCaseResult>;

Chạy một case; lỗi gateway ghi vào error của kết quả thay vì ném ra.

Tham số

Tham sốKiểu
cEvalCase
optionsEvalRunOptions

Trả về

Promise<EvalCaseResult>


runEvalSuite()

ts
function runEvalSuite(cases, options): Promise<EvalCaseResult[]>;

Chạy tuần tự cả bộ case (không song song, để không dội rate limit của gateway).

Tham số

Tham sốKiểu
casesEvalCase[]
optionsEvalRunOptions

Trả về

Promise<EvalCaseResult[]>


summarize()

ts
function summarize(results): EvalSummary;

Đếm case đạt/trượt.

Tham số

Tham sốKiểu
resultsEvalCaseResult[]

Trả về

EvalSummary

Interface

AssertionResult

Kết quả một assertion.

Thuộc tính

Thuộc tínhKiểuMô tả
detailstringMô tả ngắn để in report khi fail.
passbooleanOutput thoả điều kiện.

EvalCase

Một ca eval: hội thoại gửi model và các điều kiện output phải thoả.

Thuộc tính

Thuộc tínhKiểuMô tả
assertionsAssertion[]Mọi assertion phải đạt thì case mới pass.
idstringĐịnh danh case, nên tiền tố theo prompt id: "extract-json/don-hang".
messagesChatMessage[]Hội thoại gửi gateway, thường gồm system prompt render từ prompt library.

EvalCaseResult

Kết quả chạy một case.

Thuộc tính

Thuộc tínhKiểuMô tả
assertionsAssertionResult[]Kết quả từng assertion (cùng thứ tự với case.assertions).
error?stringLỗi hạ tầng (gateway chết, timeout…) — khác với assertion fail.
idstringid của case.
outputstringOutput model (cắt gọn khi in report).
passbooleanMọi assertion đạt và không có lỗi hạ tầng.

EvalRunOptions

Cấu hình gọi gateway khi chạy eval.

Thuộc tính

Thuộc tínhKiểuMô tả
apiKeystringKey của gateway — lấy từ biến môi trường, không hardcode.
fetch?{ (input, init?): Promise<Response>; (input, init?): Promise<Response>; }fetch tuỳ biến (phục vụ test). Mặc định globalThis.fetch.
gatewayUrlstringURL gốc gateway OpenAI-compatible (có /v1).
modelstringModel chạy eval.
temperature?numberNhiệt độ thấp mặc định (0) để output ổn định giữa các lần chạy CI.

EvalSummary

Số liệu tổng của một lần chạy eval.

Thuộc tính

Thuộc tínhKiểuMô tả
failednumberSố case trượt, kể cả case lỗi hạ tầng.
passednumberSố case đạt.
totalnumberTổng số case.

Kiểu

Assertion

ts
type Assertion = 
  | {
  ignoreCase?: boolean;
  type: "contains";
  value: string;
}
  | {
  ignoreCase?: boolean;
  type: "not-contains";
  value: string;
}
  | {
  flags?: string;
  pattern: string;
  type: "regex";
}
  | {
  type: "max-chars";
  value: number;
}
  | {
  type: "json-valid";
}
  | {
  type: "max-lines";
  value: number;
};

Một điều kiện kiểm output model: contains/not-contains (chuỗi con), regex, max-chars, max-lines (không đếm dòng trống), json-valid (chấp nhận JSON bọc trong code fence).