基类: BaseToolSpec
ChatGPT 插件工具。
此工具利用 OpenAPI 工具规范,从清单文件自动加载 ChatGPT 插件。您还应提供 Requests 工具规范,以允许 Agent 调用 OpenAPI 端点。对于需要授权的端点,请使用包含授权头部的 Requests 工具规范。
源代码位于 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
|
您是一个 AI Agent,专门设计用于根据 OpenAPI 规范发起 Web 请求来检索信息。
以下是帮助您回答问题的分步指南:
-
确定发出请求所需的基 URL
-
识别解决问题所需的相关路径
-
查找发出请求所需的参数
-
执行必要的请求以获取答案
返回值
名称 | 类型 |
描述 |
Document |
List[Document]
|
描述 OpenAPI 规范的 Document 对象列表
|
源代码位于 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()
|