跳至内容

ChatGPT插件

init.py.

ChatGPT插件工具规范 #

基类: BaseToolSpec

ChatGPT插件工具。

该工具利用OpenAPI工具规范自动从清单文件加载ChatGPT插件。 您还应提供Requests工具规范,以便智能体能够调用OpenAPI端点。 如需使用需要授权的端点,请配合授权头信息使用Requests工具规范

Source code in llama-index-integrations/tools/llama-index-tools-chatgpt-plugin/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
70
71
72
73
74
class ChatGPTPluginToolSpec(BaseToolSpec):
    """
    ChatGPT Plugin Tool.

    This tool leverages the OpenAPI tool spec to automatically load ChatGPT
    plugins from a manifest file.
    You should also provide the Requests tool spec to allow the Agent to make calls to the OpenAPI endpoints
    To use endpoints with authorization, use the Requests tool spec with the authorization headers
    """

    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]:
        """
        You are an AI agent specifically designed to retrieve information by making web requests to an API based on an OpenAPI specification.

        Here's a step-by-step guide to assist you in answering questions:

        1. Determine the base URL required for making the request

        2. Identify the relevant paths necessary to address the question

        3. Find the required parameters for making the request

        4. Perform the necessary requests to obtain the answer

        Returns:
            Document: A List of Document objects describing the OpenAPI spec

        """
        return self.openapi.load_openapi_spec()

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

load_openapi_spec #

load_openapi_spec() -> List[Document]

你是一个专门设计的AI智能体,通过根据OpenAPI规范向API发起网络请求来检索信息。

以下是逐步指南,帮助您回答问题:

  1. 确定发起请求所需的基础URL

  2. 识别解决问题所需的相关路径

  3. 查找发起请求所需的参数

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

返回:

名称 类型 描述
Document List[Document]

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

Source code in llama-index-integrations/tools/llama-index-tools-chatgpt-plugin/llama_index/tools/chatgpt_plugin/base.py
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
def load_openapi_spec(self) -> List[Document]:
    """
    You are an AI agent specifically designed to retrieve information by making web requests to an API based on an OpenAPI specification.

    Here's a step-by-step guide to assist you in answering questions:

    1. Determine the base URL required for making the request

    2. Identify the relevant paths necessary to address the question

    3. Find the required parameters for making the request

    4. Perform the necessary requests to obtain the answer

    Returns:
        Document: A List of Document objects describing the OpenAPI spec

    """
    return self.openapi.load_openapi_spec()
优云智算