Dự án tóm tắt video dài
Hãy xây dựng một dòng làm việc LangGraph cái thực thi cách tiếp cận Map-Reduce trình bày ở trên. Trước
tiên, hãy định nghĩa state của đồ thị cái theo dấu video được yêu cầu, tóm tắt trung gian chúng ta sinh
ra suốt bước pha, và tóm tắt cuối cùng:
from langgraph.constants import Send
import operatorclass AgentState(TypedDict):
video_uri: str
chunks: int
interval_secs: int
summaries: Annotated[list, operator.add]
final_summary: strclass _ChunkState(TypedDict):
video_uri: str
start_offset: int
interval_secs: int
Kế hoạch state của chúng ta bây giờ theo dấu tất cả các đối số đầu vào (để rằng chúng có thể được truy
cập bởi các nodes khác nhau) và các kết quả trung gian để rằng chúng ta có thể truyền chúng qua các
nodes. Tuy nhiên, mô hình Map-Reduce trình bày thách thức khác: chúng ta cần lên kế hoạch nhiều nhiệm
vụ tương tự cái xử lí các bộ phận khác nhau của video gốc song song. LangGraph cung cấp một Send node
đặc biệt cái làm có thể lên kê hoạch thực thi động trên một node với một trạng thái cụ thể. Cho cách
tiếp cận này, chúng ta cần một kế hoạch state thêm gọi là _ChunkState để trình bày một bước map. Nó là
đáng để đề cập rằng xắp sếp trật tự được đảm bảo – các kết quả được thu thập (nói cách khác, áp dụng
cho state chính) trong chính xác cùng trật tự khi các nodes được lên kế hoạch.
