tool#
Bases: BaseTool “) , RuleMixin ”)
Attributes#
Name |
Type |
Description |
|---|---|---|
<a href="tool.mdx#griptape.tools.extraction.tool.ExtractionTool.extraction_engine" title="extraction_engine = field() class-attribute instance-attribute (griptape.tools.extraction.tool.ExtractionTool.extraction_engine)"><code class="language-python">extraction_engine</code></a> |
<a href="../../engines#griptape.engines.BaseExtractionEngine" title="BaseExtractionEngine (griptape.engines.BaseExtractionEngine)"><code class="language-python">BaseExtractionEngine</code></a> |
ExtractionEngine.<br/> |
Source Code in griptape/tools/extraction/tool.py
@define(kw_only=True)
class ExtractionTool(BaseTool, RuleMixin):
"""Tool for using an Extraction Engine.
Attributes:
extraction_engine: `ExtractionEngine`.
"""
extraction_engine: BaseExtractionEngine = field()
@activity(
config={
"description": "Can be used extract structured text from data.",
"schema": Schema(
{
Literal("data"): Or(
str,
Schema(
{
"memory_name": str,
"artifact_namespace": str,
}
),
),
}
),
},
)
def extract(self, params: dict) -> ListArtifact | InfoArtifact | ErrorArtifact:
data = params["values"]["data"]
if isinstance(data, str):
artifacts = ListArtifact([TextArtifact(data)])
else:
memory = self.find_input_memory(data["memory_name"])
artifact_namespace = data["artifact_namespace"]
if memory is not None:
artifacts = memory.load_artifacts(artifact_namespace)
else:
return ErrorArtifact("memory not found")
return self.extraction_engine.extract_artifacts(artifacts)
extraction_engine = field()class-attribute instance-attribute
extract(params)#
Source Code in griptape/tools/extraction/tool.py
@activity(
config={
"description": "Can be used extract structured text from data.",
"schema": Schema(
{
Literal("data"): Or(
str,
Schema(
{
"memory_name": str,
"artifact_namespace": str,
}
),
),
}
),
},
)
def extract(self, params: dict) -> ListArtifact | InfoArtifact | ErrorArtifact:
data = params["values"]["data"]
if isinstance(data, str):
artifacts = ListArtifact([TextArtifact(data)])
else:
memory = self.find_input_memory(data["memory_name"])
artifact_namespace = data["artifact_namespace"]
if memory is not None:
artifacts = memory.load_artifacts(artifact_namespace)
else:
return ErrorArtifact("memory not found")
return self.extraction_engine.extract_artifacts(artifacts)