1"use strict";(self.webpackChunkspoonos_cookbook=self.webpackChunkspoonos_cookbook||[]).push([[9685],{28453:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>d});var a=r(96540);const i={},l=a.createContext(i);function s(e){const n=a.useContext(l);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),a.createElement(l.Provider,{value:n},e.children)}},41340:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>t,frontMatter:()=>s,metadata:()=>a,toc:()=>o});const a=JSON.parse('{"id":"api-reference/spoon_ai/graph/spoon_ai.graph.builder","title":"spoon_ai.graph.builder","description":"* spoon\\\\ai.graph.builder","source":"@site/docs/api-reference/spoon_ai/graph/builder.md","sourceDirName":"api-reference/spoon_ai/graph","slug":"/api-reference/spoon_ai/graph/builder","permalink":"/docs/api-reference/spoon_ai/graph/builder","draft":false,"unlisted":false,"editUrl":"https://github.com/XSpoonAi/spoon-doc/tree/main/docs/api-reference/spoon_ai/graph/builder.md","tags":[],"version":"current","frontMatter":{"id":"spoon_ai.graph.builder","slug":"/api-reference/spoon_ai/graph/builder","title":"spoon_ai.graph.builder"},"sidebar":"tutorialSidebar","previous":{"title":"spoon_ai.graph.agent","permalink":"/docs/api-reference/spoon_ai/graph/agent"},"next":{"title":"spoon_ai.graph.checkpointer","permalink":"/docs/api-reference/spoon_ai/graph/checkpointer"}}');var i=r(74848),l=r(28453);const s={id:"spoon_ai.graph.builder",slug:"/api-reference/spoon_ai/graph/builder",title:"spoon_ai.graph.builder"},d="Table of Contents",c={},o=[{value:"<code>Intent</code> Objects",id:"intent-objects",level:2},{value:"<code>IntentAnalyzer</code> Objects",id:"intentanalyzer-objects",level:2},{value:"<code>AdaptiveStateBuilder</code> Objects",id:"adaptivestatebuilder-objects",level:2},{value:"<code>ParameterInferenceEngine</code> Objects",id:"parameterinferenceengine-objects",level:2},{value:"<code>NodeSpec</code> Objects",id:"nodespec-objects",level:2},{value:"<code>EdgeSpec</code> Objects",id:"edgespec-objects",level:2},{value:"<code>end</code>",id:"end",level:4},{value:"<code>ParallelGroupSpec</code> Objects",id:"parallelgroupspec-objects",level:2},{value:"<code>GraphTemplate</code> Objects",id:"graphtemplate-objects",level:2},{value:"<code>DeclarativeGraphBuilder</code> Objects",id:"declarativegraphbuilder-objects",level:2},{value:"<code>NodePlugin</code> Objects",id:"nodeplugin-objects",level:2},{value:"<code>NodePluginSystem</code> Objects",id:"nodepluginsystem-objects",level:2},{value:"<code>HighLevelGraphAPI</code> Objects",id:"highlevelgraphapi-objects",level:2}];function p(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"table-of-contents",children:"Table of Contents"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder",children:"spoon_ai.graph.builder"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.Intent",children:"Intent"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.IntentAnalyzer",children:"IntentAnalyzer"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.AdaptiveStateBuilder",children:"AdaptiveStateBuilder"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.ParameterInferenceEngine",children:"ParameterInferenceEngine"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.NodeSpec",children:"NodeSpec"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.EdgeSpec",children:"EdgeSpec"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.EdgeSpec.end",children:"end"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.ParallelGroupSpec",children:"ParallelGroupSpec"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.GraphTemplate",children:"GraphTemplate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.DeclarativeGraphBuilder",children:"DeclarativeGraphBuilder"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.NodePlugin",children:"NodePlugin"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.NodePluginSystem",children:"NodePluginSystem"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spoon_ai.graph.builder.HighLevelGraphAPI",children:"HighLevelGraphAPI"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder"}),"\n",(0,i.jsxs)(n.h1,{id:"module-spoon_aigraphbuilder",children:["Module ",(0,i.jsx)(n.code,{children:"spoon_ai.graph.builder"})]}),"\n",(0,i.jsx)(n.p,{children:"Declarative builders and helpers for SpoonAI graphs."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.Intent"}),"\n",(0,i.jsxs)(n.h2,{id:"intent-objects",children:[(0,i.jsx)(n.code,{children:"Intent"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"@dataclass\nclass Intent()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Result of intent analysis."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.IntentAnalyzer"}),"\n",(0,i.jsxs)(n.h2,{id:"intentanalyzer-objects",children:[(0,i.jsx)(n.code,{children:"IntentAnalyzer"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class IntentAnalyzer()\n"})}),"\n",(0,i.jsx)(n.p,{children:"LLM-powered intent analyzer."}),"\n",(0,i.jsx)(n.p,{children:"Core stays generic; concrete prompts/parsers are supplied by callers."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.AdaptiveStateBuilder"}),"\n",(0,i.jsxs)(n.h2,{id:"adaptivestatebuilder-objects",children:[(0,i.jsx)(n.code,{children:"AdaptiveStateBuilder"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class AdaptiveStateBuilder()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Construct initial graph state using query intent and optional parameters."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.ParameterInferenceEngine"}),"\n",(0,i.jsxs)(n.h2,{id:"parameterinferenceengine-objects",children:[(0,i.jsx)(n.code,{children:"ParameterInferenceEngine"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class ParameterInferenceEngine()\n"})}),"\n",(0,i.jsx)(n.p,{children:"LLM delegator for parameter extraction."}),"\n",(0,i.jsx)(n.p,{children:"Core keeps this generic; applications provide formatting/parsing via options."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.NodeSpec"}),"\n",(0,i.jsxs)(n.h2,{id:"nodespec-objects",children:[(0,i.jsx)(n.code,{children:"NodeSpec"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"@dataclass\nclass NodeSpec()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Declarative node specification."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.EdgeSpec"}),"\n",(0,i.jsxs)(n.h2,{id:"edgespec-objects",children:[(0,i.jsx)(n.code,{children:"EdgeSpec"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"@dataclass\nclass EdgeSpec()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Declarative edge specification."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.EdgeSpec.end"}),"\n",(0,i.jsx)(n.h4,{id:"end",children:(0,i.jsx)(n.code,{children:"end"})}),"\n",(0,i.jsx)(n.p,{children:"target name or callable router"}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.ParallelGroupSpec"}),"\n",(0,i.jsxs)(n.h2,{id:"parallelgroupspec-objects",children:[(0,i.jsx)(n.code,{children:"ParallelGroupSpec"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"@dataclass\nclass ParallelGroupSpec()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Parallel group specification."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.GraphTemplate"}),"\n",(0,i.jsxs)(n.h2,{id:"graphtemplate-objects",children:[(0,i.jsx)(n.code,{children:"GraphTemplate"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"@dataclass\nclass GraphTemplate()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Complete declarative template for a graph."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.DeclarativeGraphBuilder"}
1),"\n",(0,i.jsxs)(n.h2,{id:"declarativegraphbuilder-objects",children:[(0,i.jsx)(n.code,{children:"DeclarativeGraphBuilder"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class DeclarativeGraphBuilder()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Build StateGraph instances from declarative templates."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.NodePlugin"}),"\n",(0,i.jsxs)(n.h2,{id:"nodeplugin-objects",children:[(0,i.jsx)(n.code,{children:"NodePlugin"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class NodePlugin()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Pluggable node provider."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.NodePluginSystem"}),"\n",(0,i.jsxs)(n.h2,{id:"nodepluginsystem-objects",children:[(0,i.jsx)(n.code,{children:"NodePluginSystem"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class NodePluginSystem()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Registry and discovery for node plugins."}),"\n",(0,i.jsx)("a",{id:"spoon_ai.graph.builder.HighLevelGraphAPI"}),"\n",(0,i.jsxs)(n.h2,{id:"highlevelgraphapi-objects",children:[(0,i.jsx)(n.code,{children:"HighLevelGraphAPI"})," Objects"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class HighLevelGraphAPI()\n"})}),"\n",(0,i.jsx)(n.p,{children:"Convenience facade for building graphs per query."})]})}function t(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.