Internal Engine
Engine core interfaces and base classes used by backends.
Engine
Bases: Generic[EnginePromptSignature, EngineResult, EngineModel, EngineInferenceMode]
Base class for engines wrapping model invocation and batching.
Source code in sieves/engines/core.py
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
|
generation_settings
property
Return generation settings.
Returns:
Type | Description |
---|---|
GenerationSettings
|
Generation settings. |
inference_modes
abstractmethod
property
Return supported inference modes.
Returns:
Type | Description |
---|---|
type[EngineInferenceMode]
|
Supported inference modes. |
model
property
Return model instance.
Returns:
Type | Description |
---|---|
EngineModel
|
Model instance. |
supports_few_shotting
abstractmethod
property
Return whether engine supports few-shotting.
Returns:
Type | Description |
---|---|
bool
|
Whether engine supports few-shotting. |
__init__(model, generation_settings)
Initialize engine with model and generation settings.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
EngineModel
|
Instantiated model instance. |
required |
generation_settings
|
GenerationSettings
|
Generation settings. |
required |
Source code in sieves/engines/core.py
37 38 39 40 41 42 43 44 45 46 47 |
|
build_executable(inference_mode, prompt_template, prompt_signature, fewshot_examples=())
abstractmethod
Return a prompt executable for the given signature and mode.
This wraps the engine‑native generation callable (e.g., DSPy Predict, Outlines Generator) with Sieves’ uniform interface.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
inference_mode
|
EngineInferenceMode
|
Inference mode to use (e.g. classification, JSON, ... - this is engine-specific). |
required |
prompt_template
|
str | None
|
Prompt template. |
required |
prompt_signature
|
type[EnginePromptSignature] | EnginePromptSignature
|
Expected prompt signature type. |
required |
fewshot_examples
|
Sequence[BaseModel]
|
Few-shot examples. |
()
|
Returns:
Type | Description |
---|---|
Executable[EngineResult | None]
|
Prompt executable. |
Source code in sieves/engines/core.py
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
|
convert_fewshot_examples(fewshot_examples)
staticmethod
Convert few‑shot examples to dicts.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fewshot_examples
|
Sequence[BaseModel]
|
Fewshot examples to convert. |
required |
Returns:
Type | Description |
---|---|
list[dict[str, Any]]
|
Fewshot examples as dicts. |
Source code in sieves/engines/core.py
100 101 102 103 104 105 106 107 |
|
Executable
Bases: Protocol[EngineResult]
Callable protocol representing a compiled prompt executable.
Source code in sieves/engines/core.py
22 23 24 25 26 27 28 29 30 31 |
|
__call__(values)
Execute prompt executable for given values.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
values
|
Sequence[dict[str, Any]]
|
Values to inject into prompts. |
required |
Returns:
Type | Description |
---|---|
Iterable[EngineResult | None]
|
Results for prompts. |
Source code in sieves/engines/core.py
25 26 27 28 29 30 31 |
|
PydanticEngine
Bases: ABC
, Engine[EnginePromptSignature, EngineResult, EngineModel, EngineInferenceMode]
Abstract super class for engines using Pydantic signatures and results.
Note that this class also assumes the engine accepts a prompt. This holds true for most engines - it doesn't only
for those with an idiocratic way to process prompts like DSPy, or decoder-only models which don't work with
object-based signatures anyway.
If and once we add support for a Pydantic-based engine that doesn't accept prompt templates, we'll adjust by
modifying _infer()
to accept an additional parameter specifying how to handle prompt/instruction injection (and
we might have to make supports_few_shotting()
engine-specific again).
Source code in sieves/engines/core.py
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
|
generation_settings
property
Return generation settings.
Returns:
Type | Description |
---|---|
GenerationSettings
|
Generation settings. |
inference_modes
abstractmethod
property
Return supported inference modes.
Returns:
Type | Description |
---|---|
type[EngineInferenceMode]
|
Supported inference modes. |
model
property
Return model instance.
Returns:
Type | Description |
---|---|
EngineModel
|
Model instance. |
__init__(model, generation_settings)
Initialize engine with model and generation settings.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
EngineModel
|
Instantiated model instance. |
required |
generation_settings
|
GenerationSettings
|
Generation settings. |
required |
Source code in sieves/engines/core.py
37 38 39 40 41 42 43 44 45 46 47 |
|
build_executable(inference_mode, prompt_template, prompt_signature, fewshot_examples=())
abstractmethod
Return a prompt executable for the given signature and mode.
This wraps the engine‑native generation callable (e.g., DSPy Predict, Outlines Generator) with Sieves’ uniform interface.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
inference_mode
|
EngineInferenceMode
|
Inference mode to use (e.g. classification, JSON, ... - this is engine-specific). |
required |
prompt_template
|
str | None
|
Prompt template. |
required |
prompt_signature
|
type[EnginePromptSignature] | EnginePromptSignature
|
Expected prompt signature type. |
required |
fewshot_examples
|
Sequence[BaseModel]
|
Few-shot examples. |
()
|
Returns:
Type | Description |
---|---|
Executable[EngineResult | None]
|
Prompt executable. |
Source code in sieves/engines/core.py
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
|
convert_fewshot_examples(fewshot_examples)
staticmethod
Convert few‑shot examples to dicts.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fewshot_examples
|
Sequence[BaseModel]
|
Fewshot examples to convert. |
required |
Returns:
Type | Description |
---|---|
list[dict[str, Any]]
|
Fewshot examples as dicts. |
Source code in sieves/engines/core.py
100 101 102 103 104 105 106 107 |
|