copilot icon indicating copy to clipboard operation
copilot copied to clipboard

Can't import a Swagger file

Open alexiri opened this issue 1 year ago • 3 comments

Describe the bug Importing a swagger file while creating a copilot fails with no error. The copilot is left with no APIs, they can't be edited after the fact (#47) and it also can't be deleted (#447).

To Reproduce Steps to reproduce the behavior:

  1. Go to the main page
  2. Click on 'Create Copilot'
  3. Give it a name in step 2 of the wizard
  4. In step 3, import the swagger file from https://petstore.swagger.io/
  5. Watch how nothing happens.

Expected behavior The swagger file should be imported.

Screenshots The console shows the following errors:

image

The response from that 404 request is the following:

{"is_error":true,"message":"Failed to parse Swagger file: No servers found in Swagger data."}

The swagger file does have a server specified, though:

"host":"petstore.swagger.io"

Here I am assuming that the swagger file from swagger.io is in fact correctly formed, but given that they're the standardizing body, I think it's a fair assumption.

Desktop (please complete the following information):

  • OS: Linux
  • Browser: Firefox
  • Version: 121.0

alexiri avatar Dec 30 '23 22:12 alexiri

Hi @alexiri thanks for raising this!

The parser only supports OpenAPI 3.0 which relies on servers to get the base URL, I think hosts is used in OpenAPI 2.0.

I will ship a change to make it more apparent in the error message, in the meanwhile maybe you can take a look here https://github.com/openchatai/OpenCopilot/blob/main/llm-server/utils/swagger_parser.py#L150 , I think if we added another check for hosts it will work! because the rest is the same between 3.0 and 2.0.


For the delete part, I will take a look at it today.

gharbat avatar Dec 30 '23 23:12 gharbat

Also, @alexiri when you download the swagger file from petstore, it doesn't have the full server url. Please set it up like this

Screenshot 2024-01-06 at 3 32 39 PM

codebanesr avatar Jan 06 '24 10:01 codebanesr

@ah7255703 The error is not being displayed on the frontend when swagger parsing fails

codebanesr avatar Jan 06 '24 10:01 codebanesr