Rozpocznij
Szybki start
Zainstaluj silnik, utwórz szkielet projektu i uzyskaj pierwsze uruchomienie oraz decyzję bramki na własnej maszynie. Nic jej nie opuszcza, dopóki nie wykonasz push.
Te kroki pochodzą z README i są tu renderowane, a nie przepisywane: README.md to kopia, którą programista widzi na GitHub, i ta, którą testy onboardingu porównują z kodem, więc pozostaje ona źródłem, a ta strona jest z niej generowana przez scripts/generate_quickstart.py.
Instalacja do prac rozwojowych
Z katalogu głównego repozytorium:
python3 -m venv .venv
.venv/bin/python -m pip install -e '.[dev]'
pnpm install --frozen-lockfile
make check
pnpm --filter @oloproof/web checkPubliczny interfejs Python to:
from oloproof import evaluate, system, current_case
from oloproof.evaluators import ExactMatch, Contains, JsonSchema, Regex, RubricJudge, evaluatorWszystko pod oloproof_core to wewnętrzne elementy silnika.
Szybki start
Wygeneruj mały projekt:
. .venv/bin/activate
oloproof init /tmp/oloproof-demo
cd /tmp/oloproof-demo
oloproof runEwaluatory
Wartości type:, które przyjmuje oloproof.yaml:
| deterministyczne | exact_match, contains, regex, json_schema |
| sędzia LLM | rubric_judge, groundedness_judge, citation_support_judge; probability_judge: pytanie tak/nie, wyboru lub o ocenę, na które odpowiadają prawdopodobieństwa jednego tokenu; cascade: najpierw sędzia probabilistyczny, drugi sędzia tylko tam, gdzie pierwszy nie jest pewny |
| model | model_classifier: wytrenowany klasyfikator lub model NLI na serwerze TEI, oceniany względem progu |
| wyszukiwanie | hit_rate, recall, mrr, ndcg, citation_validity |
| agent | agent_max_steps, agent_tool_called, agent_no_tool_loop, agent_tool_sequence, agent_no_undeclared_tool, agent_constraints_satisfied |
| wieloagentowe | agent_route, agent_tool_permissions, agent_max_handoffs |
| predykcyjne | predictive_correct, predictive_precision, predictive_recall, predictive_ranking, predictive_brier, predictive_log_loss, predictive_absolute_error |
Sędzia podaje swojego provider (anthropic, openai lub openai_compatible), swój model oraz swoją rubrykę jako rubric_text lub rubric_file. Sędzia u dostawcy, który obsługuje API OpenAI, ale nie jest OpenAI — Groq, Together, serwer lokalny — potrzebuje też base_url i api_key_env:
evaluators:
- type: rubric_judge
criterion: answer_correct
provider: openai_compatible
model: openai/gpt-oss-20b
base_url: https://api.groq.com/openai/v1
api_key_env: GROQ_API_KEY
rubric_text: "PASS if the answer conveys the same fact as the reference."Podanie pola, którego ewaluator nie przyjmuje, kończy się listą pól, które przyjmuje.
Podejmij ponownie decyzję dla istniejącego uruchomienia bez ponownego uruchamiania systemu ani ewaluatorów:
oloproof gate RUN_ID --policy release.yamlPrzejrzyj niepowodzenia i jeden przypadek:
oloproof inspect RUN_ID --failures
oloproof inspect RUN_ID --case refund_00Wyeksportuj pakiet i otwórz go w web workbench:
oloproof export RUN_ID
OLOPROOF_BUNDLE_DIR="$PWD/.oloproof/bundles" pnpm --dir /path/to/Oloproof --filter @oloproof/web devŚcieżka pakietu musi być bezwzględna, ponieważ pnpm uruchamia aplikację z apps/web. Workbench otwiera się na indeksie przestrzeni roboczych; samodzielny OLOPROOF_BUNDLE_DIR pojawia się tam jako projekt local/bundles. Aby trzymać kilka projektów na jednej maszynie, wskaż zamiast tego OLOPROOF_WORKBENCH_DIR na katalog zawierający workbench.json (docs/API_CONTRACTS.md).