Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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