mirror of
https://github.com/lfnovo/open-notebook.git
synced 2026-04-30 12:30:01 +00:00
34 lines
874 B
Python
34 lines
874 B
Python
from langchain_core.runnables import (
|
|
RunnableConfig,
|
|
)
|
|
from langgraph.graph import END, START, StateGraph
|
|
from typing_extensions import TypedDict
|
|
|
|
from open_notebook.config import DEFAULT_MODELS
|
|
from open_notebook.graphs.utils import run_pattern
|
|
|
|
|
|
class PatternState(TypedDict):
|
|
input_text: str
|
|
pattern: str
|
|
output: str
|
|
|
|
|
|
def call_model(state: dict, config: RunnableConfig) -> dict:
|
|
model_name = config.get("configurable", {}).get(
|
|
"model_name", DEFAULT_MODELS.default_transformation_model
|
|
)
|
|
return {
|
|
"output": run_pattern(
|
|
pattern_name=state["pattern"],
|
|
model_name=model_name,
|
|
state=state,
|
|
)
|
|
}
|
|
|
|
|
|
agent_state = StateGraph(PatternState)
|
|
agent_state.add_node("agent", call_model)
|
|
agent_state.add_edge(START, "agent")
|
|
agent_state.add_edge("agent", END)
|
|
graph = agent_state.compile()
|