LangGraph.JS Запуск потока с определенной контрольной точки, похоже, не работает, начинается с началаJavascript

Форум по Javascript
Ответить
Anonymous
 LangGraph.JS Запуск потока с определенной контрольной точки, похоже, не работает, начинается с начала

Сообщение Anonymous »

Я использую LangGraph.JS (@langchain/langgraph). У меня очень простой процесс, как описано ниже:

Код: Выделить всё

const graphAnnotation = Annotation.Root({
input: Annotation(),
activitiesToDo: Annotation(),
});

export type State = typeof graphAnnotation.State;
export type Update = {
activitiesToDo?: Activity[];
};

export function createGraph(checkpointer?: BaseCheckpointSaver) {
const workflow = new StateGraph(graphAnnotation)
.addNode("type", TypeNode)
.addNode("budget", BudgetNode)
.addNode("activities", ActivitiesNode)
.addEdge(START, "type")
.addEdge("type", "budget")
.addEdge("budget", "activities")
.addEdge("activities", END);

// Compile the graph with the checkpointer
const graph = workflow.compile({ checkpointer });

return { graph };
}
Я также создал собственный контрольный указатель, который сохраняет контрольные точки в файле JSON на диске. Если вам интересен этот код, я загрузил его здесь.
Теперь, когда я запускаю свой поток в первый раз, он работает нормально. Затем я проверяю файлы JSON и получаю идентификатор контрольной точки узла действий. Затем я использую его в конфигурации:

Код: Выделить всё

async function main() {
console.log("Starting...");

const config = {
configurable: {
thread_id: "thread-1-here",
checkpoint_id: "1efd33fa-9d7b-6060-8003-33b2528001d3",
},
};

const checkpointer = new FileCheckpointSaver("./checkpoints");

const { graph } = createGraph(checkpointer);

const res: any = await graph.invoke(
{
input: {
type: "indoor",
budget: "medium",
},
},
config
);

console.log(res);
}

main().catch(console.error);
Но теперь, когда я запускаю код, я вижу, что узлы «Тип» и «Бюджет» выполняются из-за console.log:

Код: Выделить всё

Starting...
Runing Type Node...
Runing Budget Node...
Runing Activities Node...
Ошибочно ли мое предположение, что он должен пропускать первые два узла и выполнять только действия? Может ли кто-нибудь помочь мне понять, как я могу повторно запустить с определенного узла или повторно запустить один узел и т. д.?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... ork-starts
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»