Xây các dòng làm việc với LangGraph (phần 42)

Dự án tóm tắt video dài (tiếp tục)

Hãy định nghĩa 2 nodes:
+ summarize_video_chunk cho pha Map
+ _generate_final_summary cho pha Reduce.
Node đầu tiên hoạt động trên một state khác với state chính, nhưng đầu ra của nó được thêm vào state
chính. Chúng ta chạy node này nhiều lần và các đầu ra được kết hợp thành một list bên trong đồ thị
chính. Để lên kế hoạch các nhiệm vụ map này, chúng ta sẽ tạo một edge điều kiện kết nối START và
các nodes _summarize_video_chunk với một edge dựa trên một hàm _map_summaries:

code 2
Bây giờ, hãy đặt mọi thứ cùng với nhau và chạy graph của chúng ta. Chúng ta có thể truyền tất cả
các đối số tới dòng ống theo một phong cách đơn giản:

graph = StateGraph(AgentState)
graph.add_node(“summarize_video_chunk”, _summarize_video_chunk)
graph.add_node(“generate_final_summary”, _generate_final_summary)
graph.add_conditional_edges(START, _map_summaries, [“summarize_video_
chunk”])
graph.add_edge(“summarize_video_chunk”, “generate_final_summary”)
graph.add_edge(“generate_final_summary”, END)
app = graph.compile()
result = await app.ainvoke(

{“video_uri”: video_uri, “chunks”: 5, “interval_secs”: 600},
{“max_concurrency”: 3}

)[“final_summary”]

Bây giờ, khi chúng ta đã chuẩn bị xây dựng các dòng làm việc đầu tiên của chúng ta với LangGraph, có
một chủ đề cuối quan trọng của chúng ta để thảo luận. Cái gì xảy ra nếu lịch sử cuộc trao đổi trò chuyện
của bạn trở nên quá dài và sẽ không khớp vào cửa sổ bối cảnh hay nó sẽ bắt đầu làm LLM quên khỏi đầu
vào cuối cùng? Hãy thảo luận các cơ chế ghi nhớ khác nhau LangChain cung cấp.

Chia sẻ