import asyncio
from langgraph.graph import StateGraph, START, END
from langchain_openai import ChatOpenAI
from typing import TypedDict
# ===== 1. 定义状态 =====
class MyState(TypedDict):
question: str
thought: str
answer: str
# ===== 3. 定义节点 =====
def think_node(state: MyState):
"""模拟思考过程"""
print("🤔 思考中...")
state["thought"] = "是怎么染色的呢?"
return state
def answer_node(state: MyState):
"""生成最终答案"""
print("\n✅ 回答完成!")
state["answer"] = "是用彩笔染色的。"
return state
# ===== 4. 构建图 =====
def build_graph():
graph_builder = StateGraph(MyState)
graph_builder.add_node("思考节点", think_node)
graph_builder.add_node("回答节点", answer_node)
graph_builder.add_edge(START, "思考节点")
graph_builder.add_edge("思考节点", "回答节点")
graph_builder.add_edge("回答节点", END)
return graph_builder.compile()
async def main(state: MyState):
"""主函数"""
graph = build_graph()
result = None
async for event in graph.astream(state):
print(event)
result = event
return result
# 任务2:快任务
async def fastprint():
print("\n/n")
print("我是 12345")
async def run():
#后台跑langgraph
task1 = asyncio.create_task(main({"question": "为什么天空是蓝色的?"}))
#后台跑fastprint
task2 = asyncio.create_task(fastprint())
await task1
await task2
# ===== 5. 测试运行 =====
if __name__ == "__main__":
# result = asyncio.run(main({"question": "为什么天空是蓝色的?"}))
# print("最终回答:")
# print(result)
asyncio.run(run())