judgevet.ports.options

Status: draft.

judgevet.ports.options

Structural ports for providers that take a provider-options mapping.

A provider declares that it takes options by adding a keyword-only provider_options parameter to its judgment methods. judgevet forwards the caller's mapping unchanged and never interprets its keys. A provider without the parameter still satisfies the existing ports. Source: https://github.com/Alberto-Codes/judgevet/issues/281.

Examples:

from collections.abc import Mapping
from typing import Any

from judgevet.domain.answers import NoulAnswer
from judgevet.domain.questions import Question
from judgevet.domain.response import SystemOneResponse
from judgevet.domain.usage import Usage
from judgevet.ports.options import ProviderOptionsSystemOnePort


class ThresholdProvider:
    def system_one(
        self,
        state: str | dict[str, Any] | list[Any],
        questions: Mapping[str, Question | Mapping[str, Any]],
        model: str,
        *,
        provider_options: Mapping[str, object] | None = None,
    ) -> SystemOneResponse:
        return SystemOneResponse(
            model=model,
            usage=Usage(0, 0),
            answers={name: NoulAnswer(0.5) for name in questions},
        )


port: ProviderOptionsSystemOnePort = ThresholdProvider()
response = port.system_one(
    "state", {"q": {"type": "noul"}}, "m", provider_options={"k": 1}
)
assert response.receipts == {}
See Also

AsyncProviderOptionsMediaSystemOnePort

Bases: AsyncMediaSystemOnePort, Protocol

Take a provider-options mapping on the awaited text and media judgments.

Attributes:

Name Type Description
system_one method

Judge text with optional provider options.

system_one_media method

Judge media with optional provider options.

Examples:

async def judge(port: AsyncProviderOptionsMediaSystemOnePort, evidence):
    return await port.system_one_media(
        "s", {}, "m", evidence=evidence, provider_options={"k": 1}
    )

system_one(state, questions, model, *, provider_options=None) async

Judge text with an optional mapping the provider interprets.

Parameters:

Name Type Description Default
state str | dict[str, Any] | list[Any]

The content to evaluate.

required
questions Mapping[str, Question | Mapping[str, Any]]

Mapping of question names to question definitions.

required
model str

Caller-selected model.

required
provider_options Mapping[str, object] | None

Provider-defined settings, or None for none.

None

Returns:

Type Description
SystemOneResponse

Typed answers, with any provider receipts.

system_one_media(state, questions, model, *, evidence, provider_options=None) async

Judge media with an optional mapping the provider interprets.

Parameters:

Name Type Description Default
state str | dict[str, Any] | list[Any]

Original caller state.

required
questions Mapping[str, Question | Mapping[str, Any]]

Original typed or raw question definitions.

required
model str

Caller-selected model.

required
evidence ImageEvidence

Immutable ordered attachment snapshot.

required
provider_options Mapping[str, object] | None

Provider-defined settings, or None for none.

None

Returns:

Type Description
SystemOneResponse

Typed answers, with any provider receipts.

AsyncProviderOptionsSystemOnePort

Bases: AsyncSystemOnePort, Protocol

Take a provider-options mapping on the awaited text judgment.

Attributes:

Name Type Description
system_one method

Judge text with optional provider options.

Examples:

async def judge(port: AsyncProviderOptionsSystemOnePort):
    return await port.system_one("s", {}, "m", provider_options={"k": 1})

system_one(state, questions, model, *, provider_options=None) async

Judge text with an optional mapping the provider interprets.

Parameters:

Name Type Description Default
state str | dict[str, Any] | list[Any]

The content to evaluate.

required
questions Mapping[str, Question | Mapping[str, Any]]

Mapping of question names to question definitions.

required
model str

Caller-selected model.

required
provider_options Mapping[str, object] | None

Provider-defined settings, or None for none.

None

Returns:

Type Description
SystemOneResponse

Typed answers, with any provider receipts.

ProviderOptionsMediaSystemOnePort

Bases: MediaSystemOnePort, Protocol

Take a provider-options mapping on the text and media judgments.

Attributes:

Name Type Description
system_one method

Judge text with optional provider options.

system_one_media method

Judge media with optional provider options.

Examples:

def judge(port: ProviderOptionsMediaSystemOnePort, evidence):
    return port.system_one_media(
        "s", {}, "m", evidence=evidence, provider_options={"k": 1}
    )

system_one(state, questions, model, *, provider_options=None)

Judge text with an optional mapping the provider interprets.

Parameters:

Name Type Description Default
state str | dict[str, Any] | list[Any]

The content to evaluate.

required
questions Mapping[str, Question | Mapping[str, Any]]

Mapping of question names to question definitions.

required
model str

Caller-selected model.

required
provider_options Mapping[str, object] | None

Provider-defined settings, or None for none.

None

Returns:

Type Description
SystemOneResponse

Typed answers, with any provider receipts.

system_one_media(state, questions, model, *, evidence, provider_options=None)

Judge media with an optional mapping the provider interprets.

Parameters:

Name Type Description Default
state str | dict[str, Any] | list[Any]

Original caller state.

required
questions Mapping[str, Question | Mapping[str, Any]]

Original typed or raw question definitions.

required
model str

Caller-selected model.

required
evidence ImageEvidence

Immutable ordered attachment snapshot.

required
provider_options Mapping[str, object] | None

Provider-defined settings, or None for none.

None

Returns:

Type Description
SystemOneResponse

Typed answers, with any provider receipts.

ProviderOptionsSystemOnePort

Bases: SystemOnePort, Protocol

Take a provider-options mapping on the text judgment.

Attributes:

Name Type Description
system_one method

Judge text with optional provider options.

Examples:

def judge(port: ProviderOptionsSystemOnePort):
    return port.system_one("s", {}, "m", provider_options={"k": 1})

system_one(state, questions, model, *, provider_options=None)

Judge text with an optional mapping the provider interprets.

Parameters:

Name Type Description Default
state str | dict[str, Any] | list[Any]

The content to evaluate.

required
questions Mapping[str, Question | Mapping[str, Any]]

Mapping of question names to question definitions.

required
model str

Caller-selected model.

required
provider_options Mapping[str, object] | None

Provider-defined settings, or None for none.

None

Returns:

Type Description
SystemOneResponse

Typed answers, with any provider receipts.