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:用作代理的LLM。应该能够使用OpenAI函数调用,因此可以是支持该功能的OpenAI模型,或者是添加了等效支持的不同模型的包装器。 tools:此代理可以访问的工具。 prompt:要使用的提示。有关更多信息,请参阅下面的提示部分。

返回:

代表代理的可运行序列。它接受与传入的提示相同的所有输入变量。它返回一个AgentAction或AgentFinish。

示例:

创建一个没有记忆的代理

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"})

# 与聊天历史一起使用
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"),
    ]
)
Parameters
Return type

Runnable

Examples using create_openai_functions_agent