Skip to content

semlib.prompt

prompt async

prompt[T: BaseModel](
    prompt: str,
    /,
    *,
    return_type: type[T],
    model: str | None = None,
) -> T
prompt[T](
    prompt: str,
    /,
    *,
    return_type: Bare[T],
    model: str | None = None,
) -> T
prompt(
    prompt: str,
    /,
    *,
    return_type: None = None,
    model: str | None = None,
) -> str

Standalone version of prompt.

Source code in src/semlib/prompt.py
async def prompt[T: BaseModel, U](
    prompt: str, /, *, return_type: type[T] | Bare[U] | None = None, model: str | None = None
) -> str | T | U:
    """Standalone version of [prompt][semlib._internal.base.Base.prompt]."""
    base = Base(model=model)
    return await base.prompt(prompt, return_type=return_type)

prompt_sync

prompt_sync[T: BaseModel](
    prompt: str,
    /,
    *,
    return_type: type[T],
    model: str | None = None,
) -> T
prompt_sync[T](
    prompt: str,
    /,
    *,
    return_type: Bare[T],
    model: str | None = None,
) -> T
prompt_sync(
    prompt: str,
    /,
    *,
    return_type: None = None,
    model: str | None = None,
) -> str

Standalone synchronous version of prompt.

Source code in src/semlib/prompt.py
def prompt_sync[T: BaseModel, U](
    prompt: str, /, *, return_type: type[T] | Bare[U] | None = None, model: str | None = None
) -> str | T | U:
    """Standalone synchronous version of [prompt][semlib._internal.base.Base.prompt]."""
    base = Base(model=model)
    return asyncio.run(base.prompt(prompt, return_type=return_type))  # type: ignore[return-value]

:::