Как я могу распараллелить узлы в LangGraph, не дожидаясь завершения самого медленного узла, если он не нужен?Python

Программы на Python
Ответить
Anonymous
 Как я могу распараллелить узлы в LangGraph, не дожидаясь завершения самого медленного узла, если он не нужен?

Сообщение Anonymous »

Я пытаюсь запустить несколько узлов параллельно, чтобы уменьшить задержку, но не хочу ждать завершения работы всех узлов, если по ранним завершающим узлам я определю, что все они мне не нужны.
Вот простой пример графика, иллюстрирующий проблему. Все начинается с двух параллельных узлов: установки случайного числа и получения предпочтений города из какого-то источника. Если случайное число составляет 1–50, «Нью-Йорк» назначается городом независимо от предпочтения города, но если случайное число составляет 51–100, используется предпочтение города.

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

class State(TypedDict):
random_number: int
city: str
city_preference: str

graph: StateGraph = StateGraph(state_schema=State)

def set_random_number(state):
random_number = 1  # Hardcode to 1 for testing
print(f"SET RANDOM NUMBER: {random_number}")
return {"random_number": random_number}

def get_city_preference(state):
time.sleep(4)  # Simulate a time-consuming operation
city_preference = "Philadelphia"
print(f"GOT CITY PREFERENCE: {city_preference}")
return {"city_preference": city_preference}

def assign_city(state):
city = "NYC" if state["random_number"]
Ответить

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

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

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

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

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