llama-index
30 строк · 841.0 Байт
1"""LlamaIndex toolkit."""
2
3from typing import List
4
5from llama_index.legacy.bridge.langchain import BaseTool, BaseToolkit
6from llama_index.legacy.bridge.pydantic import Field
7from llama_index.legacy.langchain_helpers.agents.tools import (
8IndexToolConfig,
9LlamaIndexTool,
10)
11
12
13class LlamaToolkit(BaseToolkit):
14"""Toolkit for interacting with Llama indices."""
15
16index_configs: List[IndexToolConfig] = Field(default_factory=list)
17
18class Config:
19"""Configuration for this pydantic object."""
20
21arbitrary_types_allowed = True
22
23def get_tools(self) -> List[BaseTool]:
24"""Get the tools in the toolkit."""
25index_tools: List[BaseTool] = [
26LlamaIndexTool.from_tool_config(tool_config=tool_config)
27for tool_config in self.index_configs
28]
29
30return index_tools
31