LangChain系列文章
- LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)
- LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)
- LangChain 62 深入理解LangChain 表达式语言25 agents代理 LangChain Expression Language (LCEL)
- LangChain 63 深入理解LangChain 表达式语言26 生成代码code并执行 LangChain Expression Language (LCEL)
- LangChain 64 深入理解LangChain 表达式语言27 添加审查 Moderation LangChain Expression Language (LCEL)
- LangChain 65 深入理解LangChain 表达式语言28 余弦相似度Router Moderation LangChain Expression Language (LCEL)
- LangChain 66 深入理解LangChain 表达式语言29 管理prompt提示窗口大小 LangChain Expression Language (LCEL)
- LangChain 67 深入理解LangChain 表达式语言30 调用tools搜索引擎 LangChain Expression Language (LCEL)
- LangChain 68 LLM Deployment大语言模型部署方案
- LangChain 69 向量数据库Pinecone入门
- LangChain 70 Evaluation 评估、衡量在多样化数据上的性能和完整性
- LangChain 71 字符串评估器String Evaluation衡量在多样化数据上的性能和完整性
- LangChain 72 reference改变结果 字符串评估器String Evaluation
- LangChain 73 给结果和参考评分 Scoring Evaluator
- LangChain 74 有用的或者有害的helpful or harmful Scoring Evaluator
- LangChain 75 打造你自己的OpenAI + LangChain网页应用
- LangChain 76 LangSmith 从入门到精通一
- LangChain 77 LangSmith 从入门到精通二
- LangChain 78 LangSmith 从入门到精通三
- LangChain 79 LangGraph 从入门到精通一
- LangChain 80 LangGraph 从入门到精通二
- LangChain 81 LangGraph 从入门到精通三
- LangChain 82 LangGraph 从入门到精通四
1. Graph
from langgraph.graph import Graph
graph = Graph()
这个接口和 StateGraph 一样,唯一的区别是它不会随着时间更新状态对象,而是依赖于在每一步传递完整的状态。这意味着从一个节点返回的任何东西都是下一个节点的输入。
2. END
from langgraph.graph import END
这是表示图结束的特殊节点。这意味着传递到这个节点的任何内容都将成为图的最终输出。它可以在两个地方使用:
- 作为
add_edge
中的end_key
- 作为传递给
add_conditional_edges
的conditional_edge_mapping
中的一个值
3. 预先构建的示例
我们还添加了一些方法,以便轻松使用常见的、预先构建的图形和组件。
3.1 ToolExecutor
from langgraph.prebuilt import ToolExecutor
这是一个简单的帮助类,用于调用工具。它是由一系列工具的参数化的:
tools = [...]
tool_executor = ToolExecutor(tools)
然后它暴露一个可运行的接口 runnable interface。它可以用来调用工具:您可以传入一个AgentAction,它将查找相关工具并使用适当的输入调用它。
3.2 chat_agent_executor.create_function_calling_executor
from langgraph.prebuilt import chat_agent_executor
这是一个用于创建与利用函数调用的聊天模型配合工作的图表的辅助函数。可以通过传入一个模型和一个工具列表来创建。模型必须是支持OpenAI函数调用的模型。
from langchain_openai import ChatOpenAI
from langchain_community.tools.tavily_search import TavilySearchResults
from langgraph.prebuilt import chat_agent_executor
from langchain_core.messages import HumanMessage
tools = [TavilySearchResults(max_results=1)]
model = ChatOpenAI()
app = chat_agent_executor.create_function_calling_executor(model, tools)
inputs = {"messages": [HumanMessage(content="what is the weather in sf")]}
for s in app.stream(inputs):
print(list(s.values())[0])
print("----")
3.3 create_agent_executor
from langgraph.prebuilt import create_agent_executor
这是一个用于创建与LangChain Agents一起工作的图表的辅助函数。可以通过传入一个代理和一个工具列表来创建。
from langgraph.prebuilt import create_agent_executor
from langchain_openai import ChatOpenAI
from langchain import hub
from langchain.agents import create_openai_functions_agent
from langchain_community.tools.tavily_search import TavilySearchResults
tools = [TavilySearchResults(max_results=1)]
# Get the prompt to use - you can modify this!
prompt = hub.pull("hwchase17/openai-functions-agent")
# Choose the LLM that will drive the agent
llm = ChatOpenAI(model="gpt-3.5-turbo-1106")
# Construct the OpenAI Functions agent
agent_runnable = create_openai_functions_agent(llm, tools, prompt)
app = create_agent_executor(agent_runnable, tools)
inputs = {"input": "what is the weather in sf", "chat_history": []}
for s in app.stream(inputs):
print(list(s.values())[0])
print("----")
代码
https://github.com/zgpeace/pets-name-langchain/tree/develop
参考
https://python.langchain.com/docs/langsmith/walkthrough