* 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.
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):
- ಸೂಟ್ ಅನ್ನು (ಅಂತರ್ನಿರ್ಮಿತ ಅಥವಾ ಕಸ್ಟಮ್) ಪರಿಹರಿಸುತ್ತದೆ.
- ಪ್ರತಿಯೊಂದು ಕೇಸ್ಗಾಗಿ, ಕೇಸ್ನ
messages, ಪರಿಹರಿಸಲಾದmodel,stream: false, ಮತ್ತುmax_tokens: 512(ಅಥವಾ ಕೇಸ್ನ ಅತಿಕ್ರಮಣ ಮೌಲ್ಯ) ಇವುಗಳೊಂದಿಗೆ/v1/chat/completionsಗೆ ಒಂದುRequestಅನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ. - ಚಾಟ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ನೇರವಾಗಿ ಕರೆಮಾಡುತ್ತದೆ (ಪ್ರಕ್ರಿಯೆಯೊಳಗೇ — ಹೆಚ್ಚುವರಿ HTTP ಹಾಪ್ ಇಲ್ಲ).
- ಲೇಟೆನ್ಸಿಯನ್ನು ಸೆರೆಹಿಡಿದು,
choices[0].message.contentಅಥವಾ Responses-APIoutput[]ಪೇಲೋಡ್ನಿಂದ ಪಠ್ಯವನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ. 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/runtimeನrunEvalSuiteAgainstTarget()ಅನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡಿ, ಟೆಸ್ಟ್ 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