Reduce Operation¶
The Reduce operation aggregates multiple values in a given column into a single result according to the user's instruction.
Core Implementation¶
nirvana.ops.reduce.ReduceOperation(user_instruction: str = '', input_columns: list[str] = [], context: list[dict] | str | None = None, model: str | None = None, tool: Callable | BaseTool | None = None, strategy: Literal['plain'] = 'plain', rate_limit: int = 16, assertions: list[Callable] | None = [])
¶
Bases: BaseOperation
Reduce operator: Aggregates values in a column based on an NL-specified reduction function
This is a simple implementation that does not consider the case where the input length exceeds the token limit.
The next step is to implement several optimizations, like summarize and aggregate and incremental aggregation
Source code in nirvana/ops/reduce.py
Attributes¶
prompter = ReducePrompter()
instance-attribute
¶
input_columns = input_columns
instance-attribute
¶
dependencies: list[str]
property
¶
generated_fields: list[str]
property
¶
op_kwargs
property
¶
Functions¶
execute(input_data: pd.DataFrame, **kwargs)
async
¶
Source code in nirvana/ops/reduce.py
Output Class¶
nirvana.ops.reduce.ReduceOpOutputs(cost: float = 0.0, output: Any = None)
dataclass
¶
Function Wrapper¶
nirvana.ops.reduce
¶
reduce_wrapper(input_data: Iterable[Any], user_instruction: str = None, input_column: str = None, context: list[dict] | str | None = None, model: str | None = None, func: Callable = None, strategy: Literal['plain'] = 'plain', rate_limit: int = 16, assertions: list[Callable] | None = [], **kwargs)
A function wrapper for reduce operation
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input_data
|
Iterable[Any]
|
Input data |
required |
user_instruction
|
str
|
User instruction. Defaults to None. |
None
|
input_column
|
str
|
Input column. Defaults to None. |
None
|
context
|
list[dict] | str
|
Context. Defaults to None. |
None
|
model
|
str
|
Model. Defaults to None. |
None
|
func
|
Callable
|
User function. Defaults to None. |
None
|
strategy
|
Literal['plain']
|
Strategy. Defaults to "plain". |
'plain'
|
rate_limit
|
int
|
Rate limit. Defaults to 16. |
16
|
assertions
|
list[Callable]
|
Assertions. Defaults to []. |
[]
|
**kwargs
|
Additional keyword arguments for OpenAI Clent. |
{}
|