Skip to content

Chatgpt plugin

init.py.

ChatGPTPluginToolSpec #

Bases: BaseToolSpec

ChatGPT插件工具。

该工具利用OpenAPI工具规范自动从清单文件中加载ChatGPT插件。 您还应提供Requests工具规范,以允许代理程序调用OpenAPI端点。 要使用带授权的端点,请使用带有授权头的Requests工具规范。

Source code in llama_index/tools/chatgpt_plugin/base.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class ChatGPTPluginToolSpec(BaseToolSpec):
    """ChatGPT插件工具。

    该工具利用OpenAPI工具规范自动从清单文件中加载ChatGPT插件。
    您还应提供Requests工具规范,以允许代理程序调用OpenAPI端点。
    要使用带授权的端点,请使用带有授权头的Requests工具规范。"""

    spec_functions = ["load_openapi_spec", "describe_plugin"]

    def __init__(
        self, manifest: Optional[dict] = None, manifest_url: Optional[str] = None
    ):
        import yaml

        if manifest and manifest_url:
            raise ValueError("You cannot provide both a manifest and a manifest_url")
        elif manifest:
            pass
        elif manifest_url:
            response = requests.get(manifest_url).text
            manifest = yaml.safe_load(response)
        else:
            raise ValueError("You must provide either a manifest or a manifest_url")

        if manifest["api"]["type"] != "openapi":
            raise ValueError(
                f'API type must be "openapi", not "{manifest["api"]["type"]}"'
            )

        if manifest["auth"]["type"] != "none":
            raise ValueError("Authentication cannot be supported for ChatGPT plugins")

        self.openapi = OpenAPIToolSpec(url=manifest["api"]["url"])

        self.plugin_description = f"""
            'human_description': {manifest['description_for_human']}
            'model_description': {manifest['description_for_model']}
        """

    def load_openapi_spec(self) -> List[Document]:
        """你是一个专门设计用于根据基于OpenAPI规范的API进行网络请求以检索信息的AI代理。

以下是一份逐步指南,以帮助你回答问题:

1. 确定进行请求所需的基本URL

2. 确定必要的路径以解决问题

3. 查找进行请求所需的参数

4. 执行必要的请求以获得答案

返回:
    文档:描述OpenAPI规范的文档对象列表
"""
        return self.openapi.load_openapi_spec()

    def describe_plugin(self) -> List[Document]:
        return self.plugin_description

load_openapi_spec #

load_openapi_spec() -> List[Document]

你是一个专门设计用于根据基于OpenAPI规范的API进行网络请求以检索信息的AI代理。

以下是一份逐步指南,以帮助你回答问题:

  1. 确定进行请求所需的基本URL

  2. 确定必要的路径以解决问题

  3. 查找进行请求所需的参数

  4. 执行必要的请求以获得答案

返回: 文档:描述OpenAPI规范的文档对象列表

Source code in llama_index/tools/chatgpt_plugin/base.py
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
    def load_openapi_spec(self) -> List[Document]:
        """你是一个专门设计用于根据基于OpenAPI规范的API进行网络请求以检索信息的AI代理。

以下是一份逐步指南,以帮助你回答问题:

1. 确定进行请求所需的基本URL

2. 确定必要的路径以解决问题

3. 查找进行请求所需的参数

4. 执行必要的请求以获得答案

返回:
    文档:描述OpenAPI规范的文档对象列表
"""
        return self.openapi.load_openapi_spec()