langchain.agents.openai_functions_agent.base
.create_openai_functions_agent¶
- langchain.agents.openai_functions_agent.base.create_openai_functions_agent(llm: BaseLanguageModel, tools: Sequence[BaseTool], prompt: ChatPromptTemplate) Runnable [source]¶
创建一个使用OpenAI功能调用的智能体。
- 参数
llm (BaseLanguageModel) – 使用的LLM作为智能体。应与OpenAI功能调用兼容,因此可以是支持该功能的OpenAI模型或添加等效支持的另一个模型的包装器。
tools (Sequence[BaseTool]) – 此智能体可访问的工具。
prompt (ChatPromptTemplate) – 要使用的提示。有关更多信息,请参阅下面的提示部分。
- 返回值
- 表示智能体的Runnable序列。它接受与提示中传递的所有相同的输入变量。
它返回作为输出的AgentAction或AgentFinish。
- 抛出
ValueError – 如果提示中没有 agent_scratchpad。
- 返回类型
示例
创建不带内存的智能体
from langchain_community.chat_models import ChatOpenAI from langchain.agents import AgentExecutor, create_openai_functions_agent from langchain import hub prompt = hub.pull("hwchase17/openai-functions-agent") model = ChatOpenAI() tools = ... agent = create_openai_functions_agent(model, tools, prompt) agent_executor = AgentExecutor(agent=agent, tools=tools) agent_executor.invoke({"input": "hi"}) # Using with chat history from langchain_core.messages import AIMessage, HumanMessage agent_executor.invoke( { "input": "what's my name?", "chat_history": [ HumanMessage(content="hi! my name is bob"), AIMessage(content="Hello Bob! How can I assist you today?"), ], } )
提示
- 智能体提示必须有一个 agent_scratchpad 键,它是一个
MessagesPlaceholder
。中间智能体动作和工具输出消息将传递到这里。
以下是一个示例
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder prompt = ChatPromptTemplate.from_messages( [ ("system", "You are a helpful assistant"), MessagesPlaceholder("chat_history", optional=True), ("human", "{input}"), MessagesPlaceholder("agent_scratchpad"), ] )