LangChain 83 LangGraph 从入门到精通五

LangChain系列文章

  1. LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)
  2. LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)
  3. LangChain 62 深入理解LangChain 表达式语言25 agents代理 LangChain Expression Language (LCEL)
  4. LangChain 63 深入理解LangChain 表达式语言26 生成代码code并执行 LangChain Expression Language (LCEL)
  5. LangChain 64 深入理解LangChain 表达式语言27 添加审查 Moderation LangChain Expression Language (LCEL)
  6. LangChain 65 深入理解LangChain 表达式语言28 余弦相似度Router Moderation LangChain Expression Language (LCEL)
  7. LangChain 66 深入理解LangChain 表达式语言29 管理prompt提示窗口大小 LangChain Expression Language (LCEL)
  8. LangChain 67 深入理解LangChain 表达式语言30 调用tools搜索引擎 LangChain Expression Language (LCEL)
  9. LangChain 68 LLM Deployment大语言模型部署方案
  10. LangChain 69 向量数据库Pinecone入门
  11. LangChain 70 Evaluation 评估、衡量在多样化数据上的性能和完整性
  12. LangChain 71 字符串评估器String Evaluation衡量在多样化数据上的性能和完整性
  13. LangChain 72 reference改变结果 字符串评估器String Evaluation
  14. LangChain 73 给结果和参考评分 Scoring Evaluator
  15. LangChain 74 有用的或者有害的helpful or harmful Scoring Evaluator
  16. LangChain 75 打造你自己的OpenAI + LangChain网页应用
  17. LangChain 76 LangSmith 从入门到精通一
  18. LangChain 77 LangSmith 从入门到精通二
  19. LangChain 78 LangSmith 从入门到精通三
  20. LangChain 79 LangGraph 从入门到精通一
  21. LangChain 80 LangGraph 从入门到精通二
  22. LangChain 81 LangGraph 从入门到精通三
  23. 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_edgesconditional_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

你可能感兴趣的:(LLM-Large,Language,Models,langchain,langsmith,llm,chatgpt,langgraph)