llama-index

Форк
0
43 строки · 1.3 Кб
1
"""Download tool from Llama Hub."""
2

3
from typing import Optional, Type
4

5
from llama_index.legacy.download.module import (
6
    LLAMA_HUB_URL,
7
    MODULE_TYPE,
8
    download_llama_module,
9
    track_download,
10
)
11
from llama_index.legacy.tools.tool_spec.base import BaseToolSpec
12

13

14
def download_tool(
15
    tool_class: str,
16
    llama_hub_url: str = LLAMA_HUB_URL,
17
    refresh_cache: bool = False,
18
    custom_path: Optional[str] = None,
19
) -> Type[BaseToolSpec]:
20
    """Download a single tool from Llama Hub.
21

22
    Args:
23
        tool_class: The name of the tool class you want to download,
24
            such as `GmailToolSpec`.
25
        refresh_cache: If true, the local cache will be skipped and the
26
            loader will be fetched directly from the remote repo.
27
        custom_path: Custom dirpath to download loader into.
28

29
    Returns:
30
        A Loader.
31
    """
32
    tool_cls = download_llama_module(
33
        tool_class,
34
        llama_hub_url=llama_hub_url,
35
        refresh_cache=refresh_cache,
36
        custom_dir="tools",
37
        custom_path=custom_path,
38
        library_path="tools/library.json",
39
    )
40
    if not issubclass(tool_cls, BaseToolSpec):
41
        raise ValueError(f"Tool class {tool_class} must be a subclass of BaseToolSpec.")
42
    track_download(tool_class, MODULE_TYPE.TOOL)
43
    return tool_cls
44

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.