Toggle Menu
Prev Up Next

# `langchain.agents.openai_functions_agent.base`.OpenAIFunctionsAgent

class langchain.agents.openai_functions_agent.base.OpenAIFunctionsAgent

  Bases: `BaseSingleActionAgent`

  [Deprecated] An Agent driven by OpenAIs function powered API.

  Parameters

    - llm – This should be an instance of ChatOpenAI, specifically a model that supports using functions.

    - tools – The tools this agent has access to.

    - prompt – The prompt for this agent, should support agent_scratchpad as one of the variables. For an easy way to construct this prompt, use OpenAIFunctionsAgent.create_prompt(…)

  Notes

  Deprecated since version 0.1.0: Use create_openai_functions_agent instead.

  Create a new model by parsing and validating input data from keyword arguments.

  Raises ValidationError if the input data cannot be parsed to form a valid model.

  param llm: BaseLanguageModel [Required]
  param output_parser: Type[OpenAIFunctionsAgentOutputParser] = <class 'langchain.agents.output_parsers.openai_functions.OpenAIFunctionsAgentOutputParser'>
  param prompt: BasePromptTemplate [Required]
  param tools: Sequence[BaseTool] [Required]
  async aplan(intermediate_steps: List[Tuple[AgentAction, str]], callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None, **kwargs: Any) → Union[AgentAction, AgentFinish]

    Given input, decided what to do.

    Parameters

      - intermediate_steps (List[Tuple[AgentAction, str]]) – Steps the LLM has taken to date, along with observations

      - **kwargs (Any) – User inputs.

      - callbacks (Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]]) –

      - **kwargs –

    Returns

      Action specifying what tool to use.

    Return type

      Union[AgentAction, AgentFinish]

  classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) → Model

    Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

    Parameters

      - _fields_set (Optional[SetStr]) –

      - values (Any) –

    Return type

      Model

  copy(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, update: Optional[DictStrAny] = None, deep: bool = False) → Model

    Duplicate a model, optionally choose which fields to include, exclude and change.

    Parameters

      - include (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) – fields to include in new model

      - exclude (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) – fields to exclude from new model, as with values this takes precedence over include

      - update (Optional[DictStrAny]) – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

      - deep (bool) – set to True to make a deep copy of the model

      - self (Model) –

    Returns

      new model instance

    Return type

      Model

  classmethod create_prompt(system_message: Optional[SystemMessage] = SystemMessage(content='You are a helpful AI assistant.'), extra_prompt_messages: Optional[List[BaseMessagePromptTemplate]] = None) → ChatPromptTemplate

    Create prompt for this agent.

    Parameters

      - system_message (Optional[SystemMessage]) – Message to use as the system message that will be the first in the prompt.

      - extra_prompt_messages (Optional[List[BaseMessagePromptTemplate]]) – Prompt messages that will be placed between the system message and the new human input.

    Returns

      A prompt template to pass into this agent.

    Return type

      ChatPromptTemplate

  dict(**kwargs: Any) → Dict

    Return dictionary representation of agent.

    Parameters

      kwargs (Any) –

    Return type

      Dict

  classmethod from_llm_and_tools(llm: BaseLanguageModel, tools: Sequence[BaseTool], callback_manager: Optional[BaseCallbackManager] = None, extra_prompt_messages: Optional[List[BaseMessagePromptTemplate]] = None, system_message: Optional[SystemMessage] = SystemMessage(content='You are a helpful AI assistant.'), **kwargs: Any) → BaseSingleActionAgent

    Construct an agent from an LLM and tools.

    Parameters

      - llm (BaseLanguageModel) –

      - tools (Sequence[BaseTool]) –

      - callback_manager (Optional[BaseCallbackManager]) –

      - extra_prompt_messages (Optional[List[BaseMessagePromptTemplate]]) –

      - system_message (Optional[SystemMessage]) –

      - kwargs (Any) –

    Return type

      BaseSingleActionAgent

  classmethod from_orm(obj: Any) → Model
    Parameters

      obj (Any) –

    Return type

      Model

  get_allowed_tools() → List[str]

    Get allowed tools.

    Return type

      List[str]

  json(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) → unicode

    Generate a JSON representation of the model, include and exclude arguments as per dict().

    encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

    Parameters

      - include (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) –

      - exclude (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) –

      - by_alias (bool) –

      - skip_defaults (Optional[bool]) –

      - exclude_unset (bool) –

      - exclude_defaults (bool) –

      - exclude_none (bool) –

      - encoder (Optional[Callable[[Any], Any]]) –

      - models_as_dict (bool) –

      - dumps_kwargs (Any) –

    Return type

      unicode

  classmethod parse_file(path: Union[str, Path], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: Protocol = None, allow_pickle: bool = False) → Model
    Parameters

      - path (Union[str, Path]) –

      - content_type (unicode) –

      - encoding (unicode) –

      - proto (Protocol) –

      - allow_pickle (bool) –

    Return type

      Model

  classmethod parse_obj(obj: Any) → Model
    Parameters

      obj (Any) –

    Return type

      Model

  classmethod parse_raw(b: Union[str, bytes], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: Protocol = None, allow_pickle: bool = False) → Model
    Parameters

      - b (Union[str, bytes]) –

      - content_type (unicode) –

      - encoding (unicode) –

      - proto (Protocol) –

      - allow_pickle (bool) –

    Return type

      Model

  plan(intermediate_steps: List[Tuple[AgentAction, str]], callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None, with_functions: bool = True, **kwargs: Any) → Union[AgentAction, AgentFinish]

    Given input, decided what to do.

    Parameters

      - intermediate_steps (List[Tuple[AgentAction, str]]) – Steps the LLM has taken to date, along with observations

      - **kwargs (Any) – User inputs.

      - callbacks (Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]]) –

      - with_functions (bool) –

      - **kwargs –

    Returns

      Action specifying what tool to use.

    Return type

      Union[AgentAction, AgentFinish]

  return_stopped_response(early_stopping_method: str, intermediate_steps: List[Tuple[AgentAction, str]], **kwargs: Any) → AgentFinish

    Return response when agent has been stopped due to max iterations.

    Parameters

      - early_stopping_method (str) –

      - intermediate_steps (List[Tuple[AgentAction, str]]) –

      - kwargs (Any) –

    Return type

      AgentFinish

  save(file_path: Union[Path, str]) → None

    Save the agent.

    Parameters

      file_path (Union[Path, str]) – Path to file to save the agent to.

    Return type

      None

    Example: .. code-block:: python

    > # If working with agent executor agent.agent.save(file_path=”path/agent.yaml”)

  classmethod schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') → DictStrAny
    Parameters

      - by_alias (bool) –

      - ref_template (unicode) –

    Return type

      DictStrAny

  classmethod schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs: Any) → unicode
    Parameters

      - by_alias (bool) –

      - ref_template (unicode) –

      - dumps_kwargs (Any) –

    Return type

      unicode

  tool_run_logging_kwargs() → Dict
    Return type

      Dict

  classmethod update_forward_refs(**localns: Any) → None

    Try to update ForwardRefs on fields based on this Model, globalns and localns.

    Parameters

      localns (Any) –

    Return type

      None

  classmethod validate(value: Any) → Model
    Parameters

      value (Any) –

    Return type

      Model

  property functions: List[dict]
  property input_keys: List[str]

    Get input keys. Input refers to user input here.

  property return_values: List[str]

    Return values of the agent.

# Examples using OpenAIFunctionsAgent

- Install package

- LLMonitor

- and some deps for this notebook