{{pipeline_name_pascal}}Pipeline
What it is
- A template pipeline module defining a
Pipelinesubclass ({{pipeline_name_pascal}}Pipeline) plus associated configuration and parameters classes. - Intended to be extended by implementing
run(); current template returns no result (pass).
Public API
-
@dataclass {{pipeline_name_pascal}}PipelineConfiguration(PipelineConfiguration)- Purpose: Holds pipeline configuration (currently empty template).
-
class {{pipeline_name_pascal}}PipelineParameters(PipelineParameters)- Purpose: Defines the input schema for the pipeline (currently empty template; example field commented out).
-
class {{pipeline_name_pascal}}Pipeline(Pipeline[{{pipeline_name_pascal}}PipelineParameters])__init__(configuration: {{pipeline_name_pascal}}PipelineConfiguration)- Purpose: Initialize the pipeline with a configuration object.
run(parameters: {{pipeline_name_pascal}}PipelineParameters) -> rdflib.Graph- Purpose: Execute pipeline logic and return an RDFLib
Graph. - Status: Not implemented in template (
pass).
- Purpose: Execute pipeline logic and return an RDFLib
as_tools() -> list[langchain_core.tools.BaseTool]- Purpose: Expose the pipeline as a LangChain
StructuredTool. - Tool details:
name:"{{pipeline_name_pascal}}"func: Callsself.run({{pipeline_name_pascal}}PipelineParameters(**kwargs))args_schema:{{pipeline_name_pascal}}PipelineParameters
- Purpose: Expose the pipeline as a LangChain
as_api(router: naas_abi_core.utils.Expose.APIRouter, ...) -> None- Purpose: Placeholder for exposing the pipeline via an API router.
- Status: No routes are registered; returns
None.
Configuration/Dependencies
- Depends on:
naas_abi_core.pipeline:Pipeline,PipelineConfiguration,PipelineParameterslangchain_core.tools:BaseTool,StructuredTool(used byas_tools)rdflib:Graphand related RDF terms (onlyGraphis used in the template signature)pydantic.Field,typing.Annotated(intended for parameter definitions; currently unused)
Usage
Minimal usage requires implementing run() first.
from rdflib import Graph
from naas_abi_core.pipeline import PipelineConfiguration
# Import the generated classes from your module path
# from your_module import (
# {{pipeline_name_pascal}}Pipeline,
# {{pipeline_name_pascal}}PipelineConfiguration,
# {{pipeline_name_pascal}}PipelineParameters,
# )
class MyConfig({{pipeline_name_pascal}}PipelineConfiguration):
pass
class MyPipeline({{pipeline_name_pascal}}Pipeline):
def run(self, parameters: {{pipeline_name_pascal}}PipelineParameters) -> Graph:
return Graph()
pipeline = MyPipeline(MyConfig())
g = pipeline.run({{pipeline_name_pascal}}PipelineParameters())
print(type(g))
Using as a LangChain tool:
tools = pipeline.as_tools()
result = tools[0].invoke({}) # kwargs must match {{pipeline_name_pascal}}PipelineParameters
Caveats
run()is not implemented in the template; calling it as-is will returnNonedespite theGraphreturn type annotation.as_api()is a stub and does not register any endpoints.