国外主流媒体网站口碑营销的成功案例
概念 :思考-执行循环系统
- ✅ 优点:提升任务完成度,适合复杂问题拆解
- ❌ 缺点:执行延迟较高,资源消耗大
from langchain_core.messages import SystemMessage, HumanMessage, ToolMessage, AIMessage
from langgraph.prebuilt import ToolNode
from langchain_core.tools import tool
from langgraph.graph import MessagesState, StateGraph,START, END
from langchain_openai import ChatOpenAI
import os# 初始化模型
llm = ChatOpenAI(model="gpt-3.5-turbo",openai_api_key=os.environ["GPT_API_KEY"],openai_api_base="https://api.chatanywhere.tech/v1",streaming=False # 禁用流式传输
)# 定义函数,后续作为节点
@tool
def add_numbers(a: float, b: float) -> float:"""计算两数之和参数:a (float): 第一个数字b (float): 第二个数字返回:float: 两数之和"""print(f"开始计算:{a} + {b} = {a+b}")return a + b@tool
def get_planet_mass(planet: str):"""查询星球质量(单位:千克)参数:planet (str): 星球名称,例如 'Earth' 或 '地球'返回:float: 星球质量"""PLANET_MASSES = {'Mercury': 3.301e23,'Venus': 4.867e24,'Earth': 5.972e24,'Mars': 6.417e23,'Jupiter': 1.899e27,'Saturn': 5.685e26,'Uranus': 8.682e25,'Neptune': 1.024e26,'Sun': 1.989e30}print(f"查询星球质量:{planet}")mass = PLANET_MASSES.get(planet, 0)print(f"{planet}的星球质量为:{mass} kg")return f"{planet}的质量为{mass} 10^24千克"# 所有的tool 工具列表
tools = [get_planet_mass, add_numbers]def llm_call(state: MessagesState):# 将工具列表绑定到大模型上llm_with_tools = llm.bind_tools(tools)print(f"大模型开始判断")response = llm_with_tools.invoke([SystemMessage(content="""你是一个智能助手"""),*state["messages"]])return {"messages": state["messages"] + [response]}def should_continue(state: MessagesState):"""判断是否继续执行"""messages = state["messages"]last_message = messages[-1]if last_message.tool_calls:print(f"调用工具: {last_message.tool_calls}")return "Action"print(f"流程结束")return END#定义图
workflow = StateGraph(MessagesState)
# 定义节点
workflow.add_node("llm_call", llm_call)
# 将所有的工具封装成工具节点
workflow.add_node("tools", ToolNode(tools=tools))# 定义边
workflow.add_edge(START,"llm_call")
workflow.add_conditional_edges("llm_call",should_continue,{"Action": "tools",END: END}
)
workflow.add_edge("tools", "llm_call")# 编译
graph = workflow.compile()# 执行
graph.invoke({"messages": [HumanMessage(content="请计算一下Earth和Sun的质量之和。")]})
执行结果