llama-index
91 строка · 2.9 Кб
1"""Create LlamaIndex agents."""
2
3from typing import Any, Optional4
5from llama_index.legacy.bridge.langchain import (6AgentExecutor,7AgentType,8BaseCallbackManager,9BaseLLM,10initialize_agent,11)
12from llama_index.legacy.langchain_helpers.agents.toolkits import LlamaToolkit13
14
15def create_llama_agent(16toolkit: LlamaToolkit,17llm: BaseLLM,18agent: Optional[AgentType] = None,19callback_manager: Optional[BaseCallbackManager] = None,20agent_path: Optional[str] = None,21agent_kwargs: Optional[dict] = None,22**kwargs: Any,23) -> AgentExecutor:24"""Load an agent executor given a Llama Toolkit and LLM.25
26NOTE: this is a light wrapper around initialize_agent in langchain.
27
28Args:
29toolkit: LlamaToolkit to use.
30llm: Language model to use as the agent.
31agent: A string that specified the agent type to use. Valid options are:
32`zero-shot-react-description`
33`react-docstore`
34`self-ask-with-search`
35`conversational-react-description`
36`chat-zero-shot-react-description`,
37`chat-conversational-react-description`,
38If None and agent_path is also None, will default to
39`zero-shot-react-description`.
40callback_manager: CallbackManager to use. Global callback manager is used if
41not provided. Defaults to None.
42agent_path: Path to serialized agent to use.
43agent_kwargs: Additional key word arguments to pass to the underlying agent
44**kwargs: Additional key word arguments passed to the agent executor
45
46Returns:
47An agent executor
48"""
49llama_tools = toolkit.get_tools()50return initialize_agent(51llama_tools,52llm,53agent=agent,54callback_manager=callback_manager,55agent_path=agent_path,56agent_kwargs=agent_kwargs,57**kwargs,58)59
60
61def create_llama_chat_agent(62toolkit: LlamaToolkit,63llm: BaseLLM,64callback_manager: Optional[BaseCallbackManager] = None,65agent_kwargs: Optional[dict] = None,66**kwargs: Any,67) -> AgentExecutor:68"""Load a chat llama agent given a Llama Toolkit and LLM.69
70Args:
71toolkit: LlamaToolkit to use.
72llm: Language model to use as the agent.
73callback_manager: CallbackManager to use. Global callback manager is used if
74not provided. Defaults to None.
75agent_kwargs: Additional key word arguments to pass to the underlying agent
76**kwargs: Additional key word arguments passed to the agent executor
77
78Returns:
79An agent executor
80"""
81# chat agent82# TODO: explore chat-conversational-react-description83agent_type = AgentType.CONVERSATIONAL_REACT_DESCRIPTION84return create_llama_agent(85toolkit,86llm,87agent=agent_type,88callback_manager=callback_manager,89agent_kwargs=agent_kwargs,90**kwargs,91)92