Spaces:
Runtime error
Runtime error
| """An Langchain Agent that uses ChromaDB as a query tool""" | |
| from langchain.agents import AgentType, initialize_agent, load_tools | |
| from langchain.tools import Tool | |
| from gnosis.search import Search | |
| class PDFExplainer: | |
| """An Agent that uses ChromaDB as a query tool""" | |
| def __init__(self, llm, chroma_db, extra_tools=False): | |
| """Initialize the Agent""" | |
| search = Search(chroma_db) | |
| self.tools = [ | |
| Tool.from_function( | |
| func=search.run, | |
| name="Search on ChromaDB", | |
| description="Useful when you need more context for answering a question.", | |
| handle_parsing_errors=True, | |
| ) | |
| ] | |
| if extra_tools: | |
| self.tools.extend(load_tools(["wikipedia"])) | |
| self.agent = initialize_agent( | |
| self.tools, | |
| llm, | |
| agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, | |
| verbose=False, | |
| handle_parsing_errors=True, | |
| ) | |
| def add_tools(self, tools: list[Tool]): | |
| """Add tools to the Agent""" | |
| self.tools.extend(tools) | |
| def replace_agent(self, agent: AgentType, llm): | |
| """Replace the Agent""" | |
| self.agent = initialize_agent( | |
| self.tools, | |
| llm, | |
| agent=agent, | |
| verbose=False, | |
| handle_parsing_errors=True, | |
| ) | |