mirror of
https://github.com/hwchase17/langchain
synced 2024-11-04 06:00:26 +00:00
46f0cea2b9
Small improvement to the openapi prompt. The agent was not finding the server base URL (looping through all nodes). This small change narrows the search and enables finding the url faster. No dependency Twitter : @al1pra
30 lines
1.7 KiB
Python
30 lines
1.7 KiB
Python
# flake8: noqa
|
|
|
|
OPENAPI_PREFIX = """You are an agent designed to answer questions by making web requests to an API given the openapi spec.
|
|
|
|
If the question does not seem related to the API, return I don't know. Do not make up an answer.
|
|
Only use information provided by the tools to construct your response.
|
|
|
|
First, find the base URL needed to make the request.
|
|
|
|
Second, find the relevant paths needed to answer the question. Take note that, sometimes, you might need to make more than one request to more than one path to answer the question.
|
|
|
|
Third, find the required parameters needed to make the request. For GET requests, these are usually URL parameters and for POST requests, these are request body parameters.
|
|
|
|
Fourth, make the requests needed to answer the question. Ensure that you are sending the correct parameters to the request by checking which parameters are required. For parameters with a fixed set of values, please use the spec to look at which values are allowed.
|
|
|
|
Use the exact parameter names as listed in the spec, do not make up any names or abbreviate the names of parameters.
|
|
If you get a not found error, ensure that you are using a path that actually exists in the spec.
|
|
"""
|
|
OPENAPI_SUFFIX = """Begin!
|
|
|
|
Question: {input}
|
|
Thought: I should explore the spec to find the base server url for the API in the servers node.
|
|
{agent_scratchpad}"""
|
|
|
|
DESCRIPTION = """Can be used to answer questions about the openapi spec for the API. Always use this tool before trying to make a request.
|
|
Example inputs to this tool:
|
|
'What are the required query parameters for a GET request to the /bar endpoint?`
|
|
'What are the required parameters in the request body for a POST request to the /foo endpoint?'
|
|
Always give this tool a specific question."""
|