Skip to content

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 check

Publiczny interfejs Python to:

from oloproof import evaluate, system, current_case
from oloproof.evaluators import ExactMatch, Contains, JsonSchema, Regex, RubricJudge, evaluator

Wszystko 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 run

Ewaluatory

Wartości type:, które przyjmuje oloproof.yaml:

deterministyczneexact_match, contains, regex, json_schema
sędzia LLMrubric_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
modelmodel_classifier: wytrenowany klasyfikator lub model NLI na serwerze TEI, oceniany względem progu
wyszukiwaniehit_rate, recall, mrr, ndcg, citation_validity
agentagent_max_steps, agent_tool_called, agent_no_tool_loop, agent_tool_sequence, agent_no_undeclared_tool, agent_constraints_satisfied
wieloagentoweagent_route, agent_tool_permissions, agent_max_handoffs
predykcyjnepredictive_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.yaml

Przejrzyj niepowodzenia i jeden przypadek:

oloproof inspect RUN_ID --failures
oloproof inspect RUN_ID --case refund_00

Wyeksportuj 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).