structure_run_task
Adapted from the Griptape AI Framework documentation.
Bases:
BaseTask
Attributes
Name | Type | Description |
---|---|---|
structure_run_driver | BaseStructureRunDriver | Driver to run the Structure. |
Source Code in griptape/tasks/structure_run_task.py
@define class StructureRunTask(BaseTask): """Task to run a Structure. Attributes: structure_run_driver: Driver to run the Structure. """ _input: Union[str, list, tuple, BaseArtifact, Callable[[BaseTask], BaseArtifact]] = field( default=lambda task: task.full_context["args"][0] if task.full_context["args"] else TextArtifact(value=""), ) @property def input(self) -> BaseArtifact: return self._process_task_input(self._input) @input.setter def input(self, value: str | list | tuple | BaseArtifact | Callable[[BaseTask], BaseArtifact]) -> None: self._input = value structure_run_driver: BaseStructureRunDriver = field(kw_only=True) def try_run(self) -> BaseArtifact: if isinstance(self.input, ListArtifact): return self.structure_run_driver.run(*self.input.value) return self.structure_run_driver.run(self.input) def _process_task_input( self, task_input: str | tuple | list | BaseArtifact | Callable[[BaseTask], BaseArtifact], ) -> BaseArtifact: if isinstance(task_input, TextArtifact): task_input.value = J2().render_from_string(task_input.value, **self.full_context) return task_input if isinstance(task_input, Callable): return self._process_task_input(task_input(self)) if isinstance(task_input, ListArtifact): return ListArtifact([self._process_task_input(elem) for elem in task_input.value]) if isinstance(task_input, BaseArtifact): return task_input if isinstance(task_input, (list, tuple)): return ListArtifact([self._process_task_input(elem) for elem in task_input]) return self._process_task_input(TextArtifact(task_input))
_input = field(default=lambda task: task.full_context['args'][0] if task.full_context['args'] else TextArtifact(value=''))
class-attribute instance-attributeinput
property writablestructure_run_driver = field(kw_only=True)
class-attribute instance-attribute
_process_task_input(task_input)
Source Code in griptape/tasks/structure_run_task.py
def _process_task_input( self, task_input: str | tuple | list | BaseArtifact | Callable[[BaseTask], BaseArtifact], ) -> BaseArtifact: if isinstance(task_input, TextArtifact): task_input.value = J2().render_from_string(task_input.value, **self.full_context) return task_input if isinstance(task_input, Callable): return self._process_task_input(task_input(self)) if isinstance(task_input, ListArtifact): return ListArtifact([self._process_task_input(elem) for elem in task_input.value]) if isinstance(task_input, BaseArtifact): return task_input if isinstance(task_input, (list, tuple)): return ListArtifact([self._process_task_input(elem) for elem in task_input]) return self._process_task_input(TextArtifact(task_input))
try_run()
Source Code in griptape/tasks/structure_run_task.py
def try_run(self) -> BaseArtifact: if isinstance(self.input, ListArtifact): return self.structure_run_driver.run(*self.input.value) return self.structure_run_driver.run(self.input)
Could this page be better? Report a problem or suggest an addition!