Skip to content
35 changes: 34 additions & 1 deletion py/packages/genkit/src/genkit/ai/_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@ def define_indexer(
description: Optional description for the indexer.
"""
indexer_meta = metadata if metadata else {}

if 'indexer' not in indexer_meta:
indexer_meta['indexer'] = {}
if 'label' not in indexer_meta['indexer'] or not indexer_meta['indexer']['label']:
Expand Down Expand Up @@ -323,7 +324,7 @@ def define_evaluator(
metadata: dict[str, Any] | None = None,
description: str | None = None,
) -> Action:
"""Define a evaluator action.
"""Define an evaluator action.

This action runs the callback function on the every sample of
the input dataset.
Expand Down Expand Up @@ -607,6 +608,38 @@ def define_prompt(
use=use,
)

async def prompt(
self,
name: str,
variant: str | None = None,
):
"""Look up a prompt by name and optional variant.

This matches the JavaScript prompt() function behavior.

Can look up prompts that were:
1. Defined programmatically using define_prompt()
2. Loaded from .prompt files using load_prompt_folder()

Args:
registry: The registry to look up the prompt from.
name: The name of the prompt.
variant: Optional variant name.
dir: Optional directory parameter (accepted for compatibility but not used).

Returns:
An ExecutablePrompt instance.

Raises:
GenkitError: If the prompt is not found.
"""

return await lookup_prompt(
registry=self.registry,
name=name,
variant=variant,
)


class FlowWrapper:
"""A wapper for flow functions to add `stream` method."""
Expand Down
Loading
Loading