LangGraph工作流生成小红书、朋友圈、微博文案(学习)
·
使用官网的workFlows+Agents修改的一个生成不同平台文案的例子,通过用户输入的不同内容,自行判断调用哪个分支,生成对应的文案,主要是学习和记录,我用的是阿里百炼的模型,直接上代码
import os
from typing_extensions import Literal
from langchain.messages import HumanMessage, SystemMessage
from langchain_openai import ChatOpenAI
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END
from IPython.display import Image, display
from pydantic import BaseModel, Field
# Schema for structured output to use as routing logic
class Route(BaseModel):
step: Literal["小红书", "朋友圈", "微博"] = Field(
None, description="下一步进入路由处理"
)
llm = ChatOpenAI(model="qwen3-max",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",api_key=os.environ.get("API_KEY"))
# Augment the LLM with schema for structured output
router = llm.with_structured_output(Route)
# State
class State(TypedDict):
input: str
decision: str
output: str
# Nodes
def llm_call_1(state: State):
"""Write a 小红书"""
result = llm.invoke(state["input"])
return {"output": result.content}
def llm_call_2(state: State):
"""Write a 朋友圈"""
result = llm.invoke(state["input"])
return {"output": result.content}
def llm_call_3(state: State):
"""Write a 微博"""
result = llm.invoke(state["input"])
return {"output": result.content}
def llm_call_router(state: State):
"""Route the input to the appropriate node"""
# Run the augmented LLM with structured output to serve as routing logic
decision = router.invoke(
[
SystemMessage(
content="根据客户输入的内容判断流程走向"
),
HumanMessage(content=state["input"]),
]
)
return {"decision": decision.step}
# Conditional edge function to route to the appropriate node
def route_decision(state: State):
# Return the node name you want to visit next
if state["decision"] == "小红书":
print("小红书")
return "llm_call_1"
elif state["decision"] == "朋友圈":
print("朋友圈")
return "llm_call_2"
elif state["decision"] == "微博":
print("微博")
return "llm_call_3"
# Build workflow
router_builder = StateGraph(State)
# Add nodes
router_builder.add_node("llm_call_1", llm_call_1)
router_builder.add_node("llm_call_2", llm_call_2)
router_builder.add_node("llm_call_3", llm_call_3)
router_builder.add_node("llm_call_router", llm_call_router)
# Add edges to connect nodes
router_builder.add_edge(START, "llm_call_router")
router_builder.add_conditional_edges(
"llm_call_router",
route_decision,
{ # Name returned by route_decision : Name of next node to visit
"llm_call_1": "llm_call_1",
"llm_call_2": "llm_call_2",
"llm_call_3": "llm_call_3",
},
)
router_builder.add_edge("llm_call_1", END)
router_builder.add_edge("llm_call_2", END)
router_builder.add_edge("llm_call_3", END)
# Compile workflow
router_workflow = router_builder.compile()
# Show the workflow
display(Image(router_workflow.get_graph().draw_mermaid_png()))
# Invoke
state = router_workflow.invoke({"input": "写一个小红书的推文关于马年大吉的短文"})
print(state["output"])
后台输出:
<IPython.core.display.Image object>
小红书
【马年大吉🐎|奔腾好运一整年!】
2026年就是下一个马年啦~
作为十二生肖里最活力四射、自由奔放的代表,
属马的宝子们今年/明年注定要“马”上起飞!✨
🔥 马年关键词:
✅ 精力充沛 ✅ 事业高升 ✅ 贵人相助 ✅ 桃花旺盛
不管是本命年还是非本命年,
戴上一匹小马挂饰、穿点红色,
都能沾沾“龙马精神”的好运气!
🌟 小Tips:
- 本命年记得穿红内衣/袜子辟邪
- 办公桌放一匹铜马摆件,助旺事业运
- 多去户外跑跑跳跳,顺应马的自由能量
愿你如骏马奔腾,一路向前不回头!
评论区留下你的生肖👇
看看谁和马最配?💕
#马年大吉 #本命年穿搭 #生肖运势 #好运加持 #小红书玄学
挺有意思!!!
更多推荐



所有评论(0)