Files
OmniRoute/docs/i18n/kn/docs/frameworks/EVALS.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

27 KiB

Evaluations (Evals) (ಕನ್ನಡ)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


ಅಧಿಕೃತ ಮೂಲ: src/lib/evals/, src/lib/db/evals.ts, src/app/api/evals/ ಕೊನೆಯ ನವೀಕರಣ: 2026-06-28 — v3.8.40

ರೂಟಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಳು, ಪ್ರತ್ಯೇಕ ಪೂರೈಕೆದಾರರು/ಮಾದರಿಗಳು ಅಥವಾ ಜತೆಗೇ ಒದಗಿಸಲಾದ "golden set" ಸೂಟ್ಗಳನ್ನು ಬೆಂಚ್ಮಾರ್ಕ್ ಮಾಡಲು ನೀವು ಬಳಸಬಹುದಾದ ಸಾಮಾನ್ಯ ಮೌಲ್ಯಮಾಪನ ಫ್ರೇಮ್ವರ್ಕ್ನೊಂದಿಗೆ OmniRoute ಬರುತ್ತದೆ. ರೂಟಿಂಗ್ ಬದಲಾವಣೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲು, ಹೊಸ ಪೂರೈಕೆದಾರರನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು ಮತ್ತು ಅವುಗಳನ್ನು ಉತ್ಪಾದನಾ ಟ್ರಾಫಿಕ್ಗೆ ಬಡ್ತಿ ನೀಡುವ ಮೊದಲು ಬಿಡುಗಡೆಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ಇದನ್ನು ಬಳಸಿ.

ಫ್ರೇಮ್ವರ್ಕ್ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಅಳವಡಿಸಲಾಗಿದೆ:

  • ಮೆಮೊರಿಯಲ್ಲಿರುವ ಅಂತರ್ನಿರ್ಮಿತ ಸೂಟ್ಗಳನ್ನು ನೋಂದಾಯಿಸುವ, ನಿರೀಕ್ಷಿತ ಮಾನದಂಡಗಳ ಆಧಾರದ ಮೇಲೆ ಔಟ್ಪುಟ್ಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವ ಮತ್ತು ಸ್ಕೋರ್ಕಾರ್ಡ್ಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸುವ ಶುದ್ಧ ರನ್ನರ್ (src/lib/evals/evalRunner.ts).
  • ಕಸ್ಟಮ್ (ಬಳಕೆದಾರರು ವ್ಯಾಖ್ಯಾನಿಸಿದ) ಸೂಟ್ಗಳು ಮತ್ತು SQLite ನಲ್ಲಿನ ಐತಿಹಾಸಿಕ ರನ್ಗಳಿಗಾಗಿ ಸ್ಥಿರತೆ ಪದರ (src/lib/db/evals.ts).
  • POST /v1/chat/completions ಗೆ ನೈಜ ಕರೆಗಳನ್ನು ರವಾನಿಸುವ ಮೂಲಕ ಪ್ರತಿ ಕೇಸ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ, ವಿಳಂಬ ಮತ್ತು ಔಟ್ಪುಟ್ಗಳನ್ನು ಸೆರೆಹಿಡಿಯುವ ಹಾಗೂ ರನ್ ಅನ್ನು ಉಳಿಸುವ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ ಪದರ (src/lib/evals/runtime.ts).
  • /api/evals/* ಅಡಿಯಲ್ಲಿರುವ REST ಎಂಡ್ಪಾಯಿಂಟ್ಗಳು (ನಿರ್ವಹಣಾ ದೃಢೀಕರಣಕ್ಕೆ ಮಾತ್ರ).
  • Dashboard → Usage → Evals ನಲ್ಲಿರುವ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಮೇಲ್ಮೈ (EvalsTab.tsx).

ಪರಿಕಲ್ಪನೆಗಳು

ಸೂಟ್

ಸೂಟ್ ಎಂದರೆ description ಮತ್ತು ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಕೇಸ್ಗಳನ್ನು ಹೊಂದಿರುವ ಹೆಸರಿಸಲಾದ ಪರೀಕ್ಷಾ ಕೇಸ್ಗಳ ಸಂಗ್ರಹ. ಸೂಟ್ಗಳು ಎರಡು ಮೂಲಗಳಿಂದ ಬರುತ್ತವೆ:

ಮೂಲ ಎಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ರನ್ಟೈಮ್ನಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದೇ?
built-in ಬೂಟ್ ಸಮಯದಲ್ಲಿ registerSuite() ಮೂಲಕ ನೋಂದಾಯಿಸಲಾಗಿದೆ ಇಲ್ಲ (ಕೋಡ್ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ)
custom SQLite eval_suites + eval_cases ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಹೌದು (API/UI ಮೂಲಕ)

ಪ್ರಸ್ತುತ ಅಂತರ್ನಿರ್ಮಿತ ಸೂಟ್ಗಳು (src/lib/evals/evalRunner.ts ನೋಡಿ):

  • golden-set — ಅಭಿವಾದನ/ಗಣಿತ/ಅನುವಾದ/ಸುರಕ್ಷತೆಯಾದ್ಯಂತ 10 ಮೂಲಾಧಾರ ಕೇಸ್ಗಳು
  • coding-proficiency — Python/JS/SQL/TS/ದೋಷ ಪತ್ತೆ
  • reasoning-logic — ನ್ಯಾಯಾನುಮಾನಗಳು, ಪದ ಸಮಸ್ಯೆಗಳು, ಮಾದರಿ ಗುರುತಿಸುವಿಕೆ
  • multilingual — ಅನುವಾದ ಮತ್ತು ಭಾಷೆ ಪತ್ತೆ
  • safety-guardrails — PII, ಜೈಲ್ಬ್ರೇಕ್, ನಿರಾಕರಣೆ, ಪಕ್ಷಪಾತದ ಅರಿವು
  • instruction-following — JSON ಮಾತ್ರ, ಸಂಖ್ಯೆಯುಕ್ತ ಪಟ್ಟಿಗಳು, ಭಾಷಾ ನಿರ್ಬಂಧಗಳು
  • codex-comparison — ಹೋಲಿಕೆ ಮೋಡ್ಗಾಗಿ ಉದ್ದೇಶಿಸಲಾದ ನೇರ ಮುಖಾಮುಖಿ ಕೋಡಿಂಗ್ ಕಾರ್ಯಗಳು

ಕೇಸ್

ಪ್ರತಿ ಕೇಸ್ ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ:

ಕ್ಷೇತ್ರ ವಿವರಣೆ
id ಸ್ಥಿರ ಗುರುತಿಸುವಿಕೆ (ಔಟ್ಪುಟ್ಗಳು ಮತ್ತು ಮೆಟ್ರಿಕ್ಗಳಿಗೆ ಕೀಲಿಯಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ)
name ಮನುಷ್ಯರು ಓದಬಹುದಾದ ಲೇಬಲ್
model ರನ್ suite-default ಗುರಿಯನ್ನು ಬಳಸುವಾಗ ಡೀಫಾಲ್ಟ್ ಮಾದರಿ
input { messages, max_tokens? }/v1/chat/completions ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ
expected { strategy, value } — ಸ್ಕೋರಿಂಗ್ ಮಾನದಂಡ (ಕೆಳಗೆ ನೋಡಿ)
tags ಐಚ್ಛಿಕ ಲೇಬಲ್ಗಳು (ಉದಾ. safety, pii, jailbreak)

ಗುರಿ

ಒಂದೇ ಸೂಟ್ ಅನ್ನು ವಿಭಿನ್ನ ಗುರಿಗಳ ವಿರುದ್ಧ ರನ್ ಮಾಡಬಹುದು. ಗುರಿಯ ಸ್ಕೀಮಾ src/shared/validation/schemas.ts ನಲ್ಲಿರುವ evalTargetSchema ಆಗಿದೆ:

ಗುರಿಯ ಪ್ರಕಾರ id ವರ್ತನೆ
suite-default null ಪ್ರತಿ ಕೇಸ್ ತನ್ನ ಅಂತರ್ನಿರ್ಮಿತ model ಕ್ಷೇತ್ರವನ್ನು ಬಳಸುತ್ತದೆ
model ಮಾದರಿಯ ಹೆಸರು ಪ್ರತಿ ಕೇಸ್ ಅನ್ನು ಒಂದೇ ನೇರ ಮಾದರಿಯ ಮೂಲಕ ಬಲವಂತವಾಗಿ ಕಳುಹಿಸಿ (ಉದಾ. gpt-4o)
combo ಕಾಂಬೊ ಹೆಸರು ಪ್ರತಿ ಕೇಸ್ ಅನ್ನು ಒಂದೇ ಕಾಂಬೊ ಮೂಲಕ ರನ್ ಮಾಡಿ (ರೂಟಿಂಗ್ ಎಂಜಿನ್ ಅನ್ನು ಪರೀಕ್ಷಿಸುತ್ತದೆ)

model ಮತ್ತು combo ಗಾಗಿ, id ಕ್ಷೇತ್ರವು ಕಡ್ಡಾಯವಾಗಿದೆ (Zod superRefine ಮೂಲಕ ಜಾರಿಗೊಳಿಸಲಾಗಿದೆ). compareTarget ಒದಗಿಸಿದಾಗ, ಎರಡೂ ಗುರಿಗಳು ವಿಭಿನ್ನವಾಗಿರಬೇಕು — A/B ಹೋಲಿಕೆಗಾಗಿ ರನ್ನರ್ ಎರಡೂ ರನ್ಗಳನ್ನು ಒಂದೇ runGroupId ಅಡಿಯಲ್ಲಿ ಉಳಿಸುತ್ತದೆ.

ಸ್ಕೋರಿಂಗ್ ಮಾನದಂಡಗಳು

evaluateCase() (evalRunner.ts) ನಲ್ಲಿ ಅನುಷ್ಠಾನಗೊಳಿಸಲಾಗಿದೆ:

ತಂತ್ರ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಉತ್ತೀರ್ಣ…
exact actualOutput === expected.value
contains actualOutput.toLowerCase().includes(expected.value.toLowerCase())
regex new RegExp(expected.value).test(actualOutput) ಸತ್ಯ ಮೌಲ್ಯ ನೀಡುತ್ತದೆ
custom expected.fn(actualOutput, evalCase) ಸತ್ಯ ಮೌಲ್ಯ ನೀಡುತ್ತದೆ (ಅಂತರ್ನಿರ್ಮಿತಕ್ಕೆ ಮಾತ್ರ)

ಗಮನಿಸಿ: API ಮೂಲಕ ಫಂಕ್ಷನ್ಗಳನ್ನು ಸೀರಿಯಲೈಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲದ ಕಾರಣ, ಕಸ್ಟಮ್-ಫಂಕ್ಷನ್ ಸ್ಕೋರಿಂಗ್ ಅನ್ನು ಕೋಡ್ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ (ಅಂತರ್ನಿರ್ಮಿತ) ಸೂಟ್ಗಳಿಗೆ ಮೀಸಲಿಡಲಾಗಿದೆ. ಬಳಕೆದಾರರು ರಚಿಸಿದ ಸೂಟ್ಗಳಿಗೆ evalCaseBuilderSchema ಕೇವಲ contains | exact | regex ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ.

ಪ್ರಸ್ತುತ LLM-ನಿರ್ಣಾಯಕ ಅಥವಾ ಎಂಬೆಡಿಂಗ್ ಆಧಾರಿತ ಸಾಮ್ಯತೆ ಸ್ಕೋರರ್ ಇಲ್ಲ — ಅದನ್ನು evaluateCase() ನಲ್ಲಿ ಸುಲಭವಾಗಿ ವಿಸ್ತರಿಸಬಹುದು.

ಡೇಟಾಬೇಸ್ ಸ್ಕೀಮಾ

ಮೂರು ಟೇಬಲ್ಗಳು (030_create_eval_runs.sql ಮತ್ತು 031_create_eval_suites.sql ಮೈಗ್ರೇಶನ್ಗಳು):

ಟೇಬಲ್ ಉದ್ದೇಶ
eval_suites ಕಸ್ಟಮ್ ಸೂಟ್ ಮೆಟಾಡೇಟಾ (id, name, description)
eval_cases ಪ್ರತಿ ಸೂಟ್ನ ಕೇಸ್ಗಳು — input_json, expected_*, tags_json
eval_runs ಐತಿಹಾಸಿಕ ರನ್ಗಳು — pass_rate, total, passed, failed, avg_latency_ms, summary_json, results_json, outputs_json

ಅಂತರ್ನಿರ್ಮಿತ ಸೂಟ್ಗಳನ್ನು DB ಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುವುದಿಲ್ಲ. ಅವು ಮೆಮೊರಿಯಲ್ಲಿ ಇರುತ್ತವೆ ಮತ್ತು evalRunner.ts ಅನ್ನು ಆಮದು ಮಾಡಿದ ಪ್ರತಿ ಬಾರಿಯೂ ಮರು-ನೋಂದಾಯಿಸಲ್ಪಡುತ್ತವೆ.

REST API

ಎಲ್ಲಾ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳಿಗೆ ನಿರ್ವಹಣಾ ದೃಢೀಕರಣ (requireManagementAuth) ಅಗತ್ಯವಿದೆ — ಅವು ಸಾರ್ವಜನಿಕ ಪ್ರಾಕ್ಸಿ ಮೇಲ್ಮೈಯ ಭಾಗವಾಗಿಲ್ಲ.

ಎಂಡ್ಪಾಯಿಂಟ್ ವಿಧಾನ ವಿವರಣೆ
/api/evals GET ಸೂಟ್ಗಳು + ಇತ್ತೀಚಿನ ರನ್ಗಳು + ಸ್ಕೋರ್ಕಾರ್ಡ್ + ಗುರಿಗಳು + ಕೀಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ
/api/evals POST ಸೂಟ್ ಅನ್ನು ರನ್ ಮಾಡುತ್ತದೆ (ಏಕ ಅಥವಾ ಹೋಲಿಕೆ) — ಸ್ಕೀಮಾ evalRunSuiteSchema
/api/evals/{suiteId} GET ಒಂದು ಸೂಟ್ ಅನ್ನು ಪಡೆಯುತ್ತದೆ (ಅಂತರ್ನಿರ್ಮಿತ ಅಥವಾ ಕಸ್ಟಮ್)
/api/evals/suites POST ಕಸ್ಟಮ್ ಸೂಟ್ ರಚಿಸುತ್ತದೆ — ಸ್ಕೀಮಾ evalSuiteSaveSchema
/api/evals/suites/{suiteId} GET ಕಸ್ಟಮ್ ಸೂಟ್ ಅನ್ನು ಪಡೆಯುತ್ತದೆ
/api/evals/suites/{suiteId} PUT ಕಸ್ಟಮ್ ಸೂಟ್ ಅನ್ನು ಬದಲಿಸುತ್ತದೆ (ಕೇಸ್ಗಳನ್ನು ಮರು-ಸೇರಿಸಲಾಗುತ್ತದೆ)
/api/evals/suites/{suiteId} DELETE ಕಸ್ಟಮ್ ಸೂಟ್ ಮತ್ತು ಅದರ ಕೇಸ್ಗಳನ್ನು ಅಳಿಸುತ್ತದೆ

ಸೂಟ್ ಅನ್ನು ರನ್ ಮಾಡುವುದು

curl -X POST http://localhost:20128/api/evals \
  -H "Cookie: auth_token=..." \
  -H "Content-Type: application/json" \
  -d '{
    "suiteId": "golden-set",
    "target": { "type": "combo", "id": "my-combo" },
    "apiKeyId": "optional-api-key-uuid"
  }'

ಐಚ್ಛಿಕ ಫೀಲ್ಡ್ಗಳು:

  • outputs — ಪೂರ್ವ-ಗಣಿಸಲಾದ ಔಟ್ಪುಟ್ಗಳ Record<caseId, string>. ಇದನ್ನು ಒದಗಿಸಿದಾಗ, ರನ್ನರ್ ರವಾನೆಯನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ ಮತ್ತು ಕ್ಯಾಶ್ ಮಾಡಿದ ಔಟ್ಪುಟ್ಗಳನ್ನು ಮಾತ್ರ ಸ್ಕೋರ್ ಮಾಡುತ್ತದೆ (ಆಫ್ಲೈನ್ ಮೌಲ್ಯಮಾಪನಕ್ಕೆ ಉಪಯುಕ್ತ).
  • compareTarget — ಸಮಾನಾಂತರವಾಗಿ ರನ್ ಮಾಡಬೇಕಾದ ಎರಡನೇ ಗುರಿ; ಮುಖಾಮುಖಿ ವೀಕ್ಷಣೆಗಾಗಿ ಎರಡೂ ರನ್ಗಳು ರಚಿಸಲಾದ runGroupId ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ.
  • apiKeyId — ರವಾನಿಸಲಾದ /v1/chat/completions ಕರೆಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಬಳಸುವ ಆಂತರಿಕ API ಕೀ. REQUIRE_API_KEY ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ ಇದು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ.

ಕಸ್ಟಮ್ ಸೂಟ್ ರಚಿಸುವುದು

curl -X POST http://localhost:20128/api/evals/suites \
  -H "Cookie: auth_token=..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production smoke",
    "description": "Quick sanity check before deploy",
    "cases": [
      {
        "name": "JSON shape",
        "model": "gpt-4o",
        "input": { "messages": [{ "role": "user", "content": "Reply with {\"ok\": true}" }] },
        "expected": { "strategy": "regex", "value": "\"ok\"\\s*:\\s*true" }
      }
    ]
  }'

ಡಿಸ್ಪ್ಯಾಚ್ ಪೈಪ್ಲೈನ್

runEvalSuiteAgainstTarget() (src/lib/evals/runtime.ts):

  1. ಸೂಟ್ ಅನ್ನು (ಅಂತರ್ನಿರ್ಮಿತ ಅಥವಾ ಕಸ್ಟಮ್) ಪರಿಹರಿಸುತ್ತದೆ.
  2. ಪ್ರತಿಯೊಂದು ಕೇಸ್ಗಾಗಿ, ಕೇಸ್ನ messages, ಪರಿಹರಿಸಲಾದ model, stream: false, ಮತ್ತು max_tokens: 512 (ಅಥವಾ ಕೇಸ್ನ ಅತಿಕ್ರಮಣ ಮೌಲ್ಯ) ಇವುಗಳೊಂದಿಗೆ /v1/chat/completions ಗೆ ಒಂದು Request ಅನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ.
  3. ಚಾಟ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ನೇರವಾಗಿ ಕರೆಮಾಡುತ್ತದೆ (ಪ್ರಕ್ರಿಯೆಯೊಳಗೇ — ಹೆಚ್ಚುವರಿ HTTP ಹಾಪ್ ಇಲ್ಲ).
  4. ಲೇಟೆನ್ಸಿಯನ್ನು ಸೆರೆಹಿಡಿದು, choices[0].message.content ಅಥವಾ Responses-API output[] ಪೇಲೋಡ್ನಿಂದ ಪಠ್ಯವನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ.
  5. runSuite() ಮೂಲಕ ಎಲ್ಲಾ ಔಟ್ಪುಟ್ಗಳನ್ನು ಸ್ಕೋರ್ ಮಾಡಿ, ನಂತರ saveEvalRun() ಮೂಲಕ ಉಳಿಸುತ್ತದೆ.

ಕೇಸ್ಗಳು ಅನುಕ್ರಮವಾಗಿ ರನ್ ಆಗುತ್ತವೆ. ಪ್ರಸ್ತುತ ಯಾವುದೇ ಕನ್ಕರನ್ಸಿ ಫ್ಲ್ಯಾಗ್ ಇಲ್ಲ.

ಡ್ಯಾಶ್ಬೋರ್ಡ್

UI Dashboard → Usage → Evals (src/app/(dashboard)/dashboard/usage/components/EvalsTab.tsx) ನಲ್ಲಿ ಇದೆ. ಅಲ್ಲಿಂದ ನೀವು:

  • ಪ್ರತಿಯೊಂದು ಕೇಸ್ನ ಪೂರ್ವವೀಕ್ಷಣೆಯೊಂದಿಗೆ ಅಂತರ್ನಿರ್ಮಿತ ಮತ್ತು ಕಸ್ಟಮ್ ಸೂಟ್ಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡಬಹುದು.
  • ಕೇಸ್ ಬಿಲ್ಡರ್ ಬಳಸಿ ಕಸ್ಟಮ್ ಸೂಟ್ಗಳನ್ನು ರಚಿಸಬಹುದು/ಸಂಪಾದಿಸಬಹುದು/ಅಳಿಸಬಹುದು.
  • ಒಂದು ಟಾರ್ಗೆಟ್ ಅನ್ನು (ಸೂಟ್ ಡೀಫಾಲ್ಟ್ಗಳು / ಮಾಡೆಲ್ / ಕಾಂಬೊ) ಆಯ್ಕೆಮಾಡಬಹುದು, ಐಚ್ಛಿಕವಾಗಿ ಎರಡನೇ compareTarget ಮತ್ತು API ಕೀ ಆಯ್ಕೆಮಾಡಿ, ನಂತರ ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ರನ್ ಮಾಡಬಹುದು.
  • ರನ್ ಇತಿಹಾಸ, ಪ್ರತಿ ಕೇಸ್ನ ಪಾಸ್/ಫೇಲ್, ಲೇಟೆನ್ಸಿ ಮತ್ತು ಸೆರೆಹಿಡಿದ ಔಟ್ಪುಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.
  • ಪ್ರತಿಯೊಂದು (suite, target) ವ್ಯಾಪ್ತಿಯ ಇತ್ತೀಚಿನ ರನ್ನಾದ್ಯಂತ ಒಟ್ಟುಗೂಡಿಸಿದ ರೋಲಿಂಗ್ ಸ್ಕೋರ್ಕಾರ್ಡ್ ಅನ್ನು ನೋಡಬಹುದು.

Auto-Assessment RFC ಜೊತೆಗಿನ ಸಂಬಂಧ

ಪ್ರತ್ಯೇಕವಾದ, ಹೆಚ್ಚು ಸೀಮಿತ ವ್ಯಾಪ್ತಿಯ ಅಸೆಸ್ಮೆಂಟ್ ಉಪವ್ಯವಸ್ಥೆಯು src/domain/assessment/ ನಲ್ಲಿ ಇದೆ (ಲೈವ್ ಸ್ಕೋರಿಂಗ್ ಎಂಜಿನ್ಗಾಗಿ AUTO-COMBO.md ಅನ್ನು ಸಹ ನೋಡಿ). ಆ ಉಪವ್ಯವಸ್ಥೆಯು Auto Combo ಎಂಜಿನ್ ಅನ್ನು ಗುರಿಯಾಗಿರಿಸುತ್ತದೆ — ಅಪ್ಸ್ಟ್ರೀಮ್ಗಳು ವಿಫಲವಾದಾಗ ಕಾಂಬೊಗಳು ಸ್ವಯಂ-ಚೇತರಿಸಿಕೊಳ್ಳಲು ಪ್ರೊವೈಡರ್ಗಳು ಮತ್ತು ಮಾಡೆಲ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸ್ಕೋರ್ ಮಾಡುತ್ತದೆ. ಅದು ತನ್ನದೇ ಆದ ರನ್ನರ್, ವರ್ಗೀಕಾರಕ ಮತ್ತು ಸ್ಕೋರಿಂಗ್ ತರ್ಕವನ್ನು ಬಳಸುತ್ತದೆ.

ಇಲ್ಲಿ ದಾಖಲಿಸಲಾದ Evals ಫ್ರೇಮ್ವರ್ಕ್ ಹೆಚ್ಚು ವ್ಯಾಪಕವಾದ, ಸಾಮಾನ್ಯ ಉದ್ದೇಶದ ಪರೀಕ್ಷಾ ಮೇಲ್ಮೈ ಆಗಿದೆ. ಯಾವುದೇ ರಿಗ್ರೆಷನ್ ಸೂಟ್ಗಳು, A/B ಹೋಲಿಕೆಗಳು ಮತ್ತು ಪ್ರತಿ-ರಿಲೀಸ್ ಸ್ಮೋಕ್ ಟೆಸ್ಟ್ಗಳಿಗೆ ಇದನ್ನು ಆದ್ಯತೆಯಿಂದ ಬಳಸಿ. ರೂಟಿಂಗ್ ನಿರ್ಧಾರಗಳ ಮೇಲೆ ಪ್ರಭಾವ ಬೀರಲು ನಿಮಗೆ ನೈಜ-ಸಮಯದ ಪ್ರೊವೈಡರ್ ಆರೋಗ್ಯ ಸ್ಥಿತಿ ಅಗತ್ಯವಿದ್ದಾಗ Auto-Assessment ಉಪವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಿ.

CI ಏಕೀಕರಣ

ಪ್ರಸ್ತುತ ಯಾವುದೇ ಮೀಸಲಾದ eval:ci npm ಸ್ಕ್ರಿಪ್ಟ್ ಇಲ್ಲ. ಇವ್ಯಾಲ್ ಫಲಿತಾಂಶಗಳ ಆಧಾರದಲ್ಲಿ ರಿಲೀಸ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲು ಬಯಸಿದರೆ ಎರಡು ಮಾರ್ಗಗಳಿವೆ:

  • HTTP ಮಾರ್ಗ: ಸರ್ವರ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡಿ, ತಿಳಿದಿರುವ suiteId + target ಜೊತೆಗೆ POST /api/evals ಅನ್ನು ಕರೆದು, ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ runs[].summary.passRate >= N ಎಂಬುದನ್ನು ದೃಢೀಕರಿಸಿ.
  • ಪ್ರಕ್ರಿಯೆಯೊಳಗಿನ ಮಾರ್ಗ: ಒಂದು ಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ @/lib/evals/runtimerunEvalSuiteAgainstTarget() ಅನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡಿ, ಟೆಸ್ಟ್ DB ವಿರುದ್ಧ ರನ್ ಮಾಡಿ ಮತ್ತು ಮರಳಿಸಿದ PersistedEvalRun.summary ಅನ್ನು ಪರಿಶೀಲಿಸಿ.

ರೂಟ್ ಮತ್ತು ಇತಿಹಾಸವನ್ನು ಒಳಗೊಂಡ ಪರೀಕ್ಷೆಗಳು tests/unit/evals-route.test.ts ಮತ್ತು tests/unit/evals-history.test.ts ನಲ್ಲಿ ಇವೆ.

ವಿಸ್ತರಣಾ ಬಿಂದುಗಳು

ಸಾಮಾನ್ಯ ಬದಲಾವಣೆಗಳು ಮತ್ತು ಅವುಗಳನ್ನು ಮಾಡಬೇಕಾದ ಸ್ಥಳಗಳು:

  • ಹೊಸ ಸ್ಕೋರಿಂಗ್ ತಂತ್ರevaluateCase() (evalRunner.ts) ನಲ್ಲಿರುವ switch (evalCase.expected.strategy) ಬ್ಲಾಕ್ ಅನ್ನು ವಿಸ್ತರಿಸಿ ಮತ್ತು src/lib/db/evals.ts ನಲ್ಲಿರುವ EvalCaseStrategy ಹಾಗೂ schemas.ts ನಲ್ಲಿರುವ evalCaseBuilderSchema ಅನ್ನು ವಿಸ್ತರಿಸಿ.
  • ಹೊಸ ಅಂತರ್ನಿರ್ಮಿತ ಸೂಟ್ — ಒಂದು ಸೂಟ್ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ ಮತ್ತು evalRunner.ts ನ ಕೆಳಭಾಗದಲ್ಲಿ registerSuite() ಅನ್ನು ಕರೆಮಾಡಿ. ಅದನ್ನು listSuites() ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪತ್ತೆಮಾಡುತ್ತದೆ.
  • ಕನ್ಕರನ್ಸಿಯೊಂದಿಗೆ ರನ್ ಮಾಡಿrunEvalSuiteAgainstTarget() ನಲ್ಲಿರುವ ಅನುಕ್ರಮ for ಲೂಪ್ ಅನ್ನು ಮಿತಿಗೊಳಿಸಿದ Promise.all ಆಗಿ ಬದಲಾಯಿಸಿ (ಪ್ರಸ್ತುತ ಯಾವುದೇ ಕನ್ಕರನ್ಸಿ ನಿಯಂತ್ರಣ ಇಲ್ಲ).
  • ಸ್ಟ್ರೀಮ್/ಟೂಲ್-ಕಾಲ್ ಕೇಸ್ಗಳು — ಪ್ರಸ್ತುತ ರನ್ನರ್ stream: false ಅನ್ನು ಕಡ್ಡಾಯಗೊಳಿಸುತ್ತದೆ. ಸ್ಟ್ರೀಮಿಂಗ್ ಅಥವಾ ಟೂಲ್-ಅವೇರ್ ಮೌಲ್ಯಮಾಪನಕ್ಕೆ runtime.ts ನಲ್ಲಿ ಬದಲಾವಣೆಗಳು ಬೇಕಾಗುತ್ತವೆ (ಸ್ಕೋರ್ ಮಾಡುವ ಮೊದಲು SSE ಚಂಕ್ಗಳನ್ನು ಸೆರೆಹಿಡಿದು ಒಟ್ಟುಗೂಡಿಸಬೇಕು).

ಇದನ್ನೂ ನೋಡಿ

  • USER_GUIDE.md — ಉತ್ಪನ್ನದ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿ
  • ARCHITECTURE.md — ವಿನಂತಿ ಪೈಪ್ಲೈನ್ ಉಲ್ಲೇಖ
  • AUTO-COMBO.md — Auto Combo ಸ್ಕೋರಿಂಗ್ ಎಂಜಿನ್ (ಲೈವ್ ರನ್ಟೈಮ್)
  • ಮೂಲ: src/lib/evals/, src/lib/db/evals.ts, src/app/api/evals/
  • UI: src/app/(dashboard)/dashboard/usage/components/EvalsTab.tsx