{"_id":"@api2ai/core","_rev":"10-3297cef176ca5dea1ae573ac58cab7c8","name":"@api2ai/core","dist-tags":{"latest":"0.6.1"},"versions":{"0.1.1":{"name":"@api2ai/core","version":"0.1.1","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format cjs --dts"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^3.3.0","swagger-parser":"^10.0.3"},"gitHead":"e9fab4fae592d64f1199892a843cf962df0a8280","_id":"@api2ai/core@0.1.1","_nodeVersion":"20.2.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-JavTKngDET/hgBLcri9m0THMNgpzZm06P466A2E629WwI2BNYobtddEt1visCrFfcRcaWzcXS/rBLUtc4x+2qQ==","shasum":"7e1e7e6960c8ae658b328e5d3550fae2b80ad65c","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.1.1.tgz","fileCount":25,"unpackedSize":757980,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGj+fBXojFzyXuqOwOGbywVoZUu9K2C4NJ+kZyA9cGRJAiEA5Jn1Vl0bEqJnxc/11yVYwEVvQlbvKxtuJbtUBjfMjbI="}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.1.1_1689878978445_0.604144469187982"},"_hasShrinkwrap":false},"0.2.0":{"name":"@api2ai/core","version":"0.2.0","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format esm --dts --clean"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^3.3.0","swagger-parser":"^10.0.3"},"gitHead":"e2bb5874af25fd543e364acc36e40a90ac75704d","_id":"@api2ai/core@0.2.0","_nodeVersion":"20.2.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-7L5VC3xyerxdKL8hr/L+ZWI/4jvCFzMz5V+tao73q3r3P9QxpBFy1YkPiqvCPA7U3RgyCAGxwWa6Jm3I+0M1kg==","shasum":"5f5a122b1144b1f3b4a1000e2342d2086b6dcc90","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.2.0.tgz","fileCount":25,"unpackedSize":756929,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG72xAN5jR5StNT+OKHYeEwtxszKERqM6FNtdNyiPWJRAiBC6mm9ihnul8v9izbmP1V0IYxiatOli9nrCMjbyExRUg=="}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.2.0_1689963315942_0.37799239179939503"},"_hasShrinkwrap":false},"0.2.1":{"name":"@api2ai/core","version":"0.2.1","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format cjs,esm --dts --clean"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^3.3.0","swagger-parser":"^10.0.3"},"gitHead":"e2bb5874af25fd543e364acc36e40a90ac75704d","_id":"@api2ai/core@0.2.1","_nodeVersion":"20.2.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-Elu3l+0IwXpgNiZUmvBw0yF3EfFabA9Zqspqpf0Zsih0icuObz97G9cU5dF3dqi2AqNxQG2ATAh/K3+9m1VJ3A==","shasum":"d53989968d1ce444fbb9b1c867a8d217e23132ff","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.2.1.tgz","fileCount":27,"unpackedSize":1459970,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFvjUcjghfQpkcz2gXnj56ZkTjOVxh+ctPAHlCp4KsgXAiBsQSvY2IAvJ4XVZN7o5zQPPTSFXuN5efC6ebryPe4emg=="}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.2.1_1689964978296_0.9082854157895888"},"_hasShrinkwrap":false},"0.3.0":{"name":"@api2ai/core","version":"0.3.0","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format cjs,esm --dts --clean && ./fix-ono.sh"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^3.3.0","swagger-parser":"^10.0.3"},"gitHead":"e2bb5874af25fd543e364acc36e40a90ac75704d","_id":"@api2ai/core@0.3.0","_nodeVersion":"20.2.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-/dNsUpUMSnp655z1hncX+tGzm9NaAOerDtBLRGmXLC5Q4IEnmHrgukzj9RZ6XZnAKnZxvv2QOY8RWn+7Zhqv/A==","shasum":"fdcd2ba32e93abb0ad085311d856b91bffc0d297","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.3.0.tgz","fileCount":28,"unpackedSize":1460327,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYJlqs+aQLguTwujhlm4JVhqCbQMkyMHtVhCvS8fehlgIhAKcv4YqlrZPxwrqOsT+CCIh6kqDRbDZ4+7yiVdAezhfc"}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.3.0_1689968766295_0.2054267562513563"},"_hasShrinkwrap":false},"0.3.1":{"name":"@api2ai/core","version":"0.3.1","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","keywords":["Open API Spec","ai","api","openai"],"scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format cjs,esm --dts --clean"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^3.3.0","swagger-parser":"^10.0.3"},"gitHead":"96a0aa08302292e72d24d86652daafb57aa5513a","description":"⚡ Create an API assistant from any Open API Spec ⚡","_id":"@api2ai/core@0.3.1","_nodeVersion":"20.2.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-K3YU2tlvb8lD03nl/o5E2JRWIA2kKyVByLK1HacGH0vci5t7YNmDvtvJG1r07vK8SEH8lzjOSxCBYkHaHn1aRg==","shasum":"79735503412147ff430c3f31285333724fc320ea","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.3.1.tgz","fileCount":29,"unpackedSize":1468422,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDo2KkEMHxO57caWKAjwQ4EKCVKUw6uFsWkXFs94mAIwQIhAMU8wBz8l5kK0UFkxk38l4I1xt/Pc5W1PtnwHPT/FP7B"}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.3.1_1690510183031_0.825151012921501"},"_hasShrinkwrap":false},"0.4.0":{"name":"@api2ai/core","version":"0.4.0","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","keywords":["Open API Spec","ai","api","openai"],"scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format cjs,esm --dts --clean"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^3.3.0","swagger-parser":"^10.0.3"},"gitHead":"58adffa6d7a34c7efa25c24f2297a7b8da10b364","description":"⚡ Create an API assistant from any Open API Spec ⚡","_id":"@api2ai/core@0.4.0","_nodeVersion":"20.2.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-Lv9rUh2f55aUQFsnvGyDHHubfz/kkkANud3LJUe9afpMZfzWNN5UoKxPuDs1X6foE7HR0mW3zlru0TYZQh1YWw==","shasum":"b1efaac970a34f8f1882fa18da0279e9719f1347","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.4.0.tgz","fileCount":29,"unpackedSize":1468547,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkQ+ELjjXQ1Jk6Hi5BIsVMoT58mJPgsbFQ3S0fgwwXpQIgWIvV4QflyxAr3l0JRVxQifxgbFsOS72Iv3QE4Trz2Q4="}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.4.0_1690510746505_0.47311125646238206"},"_hasShrinkwrap":false},"0.5.0":{"name":"@api2ai/core","version":"0.5.0","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","keywords":["Open API Spec","ai","api","openai"],"scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format cjs,esm --dts --clean"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^3.3.0","swagger-parser":"^10.0.3"},"gitHead":"dc2b772ddb6cd8ce9283d1de5e6a6987c7a09a85","description":"⚡ Create an API assistant from any Open API Spec ⚡","_id":"@api2ai/core@0.5.0","_nodeVersion":"20.2.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-RSWBEHq40mGF7nT6LcAyJn+zrPsFHlkmbF4vp4VKJFEs56lTSOSDdBCWv68jAiETMw7o+43NJ5ctMuNFVBupZQ==","shasum":"a54d2c9107e6aaa9963a4ef19f6a68ca2ce15003","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.5.0.tgz","fileCount":29,"unpackedSize":1476489,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjjfnphPMnuK8WkKlYexD95X1rNrkNdzvrjwCpGnYwYgIhAO1yJmkSngKsJ9V3ZE4EbDdZI6PozSXieiNnlhyF518Q"}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.5.0_1690912092780_0.9188125657071107"},"_hasShrinkwrap":false},"0.6.0":{"name":"@api2ai/core","version":"0.6.0","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","keywords":["Open API Spec","OpenAPI","ai","api","openai"],"scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format cjs,esm --dts --clean"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^4.0.1","swagger-parser":"^10.0.3"},"gitHead":"b8d696e22caeaacd86f631345a1fe08598f80ed1","description":"⚡ Create an API assistant from any OpenAPI Spec ⚡","_id":"@api2ai/core@0.6.0","_nodeVersion":"18.17.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-LP5emTpD20AxhuLAv22HrtCJSEHKygpCCIORTzoH+IWCiYmuGQ7TugO9h53Vrws7xmuXBRoGVnKYsfr1i1nO7g==","shasum":"3dfadec2c08450dd1729bc4c0d87ab4d11885974","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.6.0.tgz","fileCount":29,"unpackedSize":1474448,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjGo1orEON89KuHqQKpPvohIdTRRFd1p/gwr6snPgczAiEA1gqjm2Qt5SNaRRPHlnLOm0rOmN5FvKZmvSPc8FwsDWY="}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.6.0_1692464567162_0.9740463327466196"},"_hasShrinkwrap":false},"0.6.1":{"name":"@api2ai/core","version":"0.6.1","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","keywords":["Open API Spec","OpenAPI","ai","api","openai"],"scripts":{"lint":"eslint \"**/*.ts*\"","test":"jest","build":"tsup ./index.ts --format cjs,esm --dts --clean"},"devDependencies":{"@changesets/cli":"^2.26.2","eslint":"^7.32.0","eslint-config-custom":"*","@types/jest":"^26.0.22","jest":"^29.6.1","ts-jest":"^29.1.1","tsconfig":"*","tsup":"^7.1.0","typescript":"^4.5.2"},"dependencies":{"openai":"^4.0.1","swagger-parser":"^10.0.3"},"_id":"@api2ai/core@0.6.1","gitHead":"8f5d3734cfa379148567fa6842d8dab68e394dd9","description":"⚡ Create an API assistant from any OpenAPI Spec ⚡","_nodeVersion":"18.17.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-Eo/5rHb3nwrsfX0+UKTNfTwP/45KW4GawsfsMI1036ELSfbs4Bf4hJGcZql8J+52wmUyd/eTV1RFvHQT9h7QMQ==","shasum":"77c74afc57b9117e9fc623b3e87ac8334cf99b33","tarball":"https://registry.npmjs.org/@api2ai/core/-/core-0.6.1.tgz","fileCount":29,"unpackedSize":1474542,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsGqEoqrFlafgsBclYeA8pKF0nDDCRBDwW35QwT9R+EgIhAMmhbp2tQER/y8QQOUlA+lwpFsOz3GYwwK0/DrabYR4B"}]},"_npmUser":{"name":"mquan","email":"mquannie@gmail.com"},"directories":{},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.6.1_1699376714120_0.4591361407754335"},"_hasShrinkwrap":false}},"time":{"created":"2023-07-20T18:49:38.351Z","0.1.1":"2023-07-20T18:49:38.605Z","modified":"2023-11-07T17:05:14.679Z","0.1.2":"2023-07-20T19:30:25.974Z","0.2.0":"2023-07-21T18:15:16.094Z","0.2.1":"2023-07-21T18:42:58.552Z","0.3.0":"2023-07-21T19:46:06.549Z","0.3.1":"2023-07-28T02:09:43.298Z","0.4.0":"2023-07-28T02:19:06.804Z","0.5.0":"2023-08-01T17:48:13.007Z","0.6.0":"2023-08-19T17:02:47.460Z","0.6.1":"2023-11-07T17:05:14.475Z"},"maintainers":[{"name":"mquan","email":"mquannie@gmail.com"}],"license":"MIT","readme":"# ☁️⇨🤖🧠 api2ai\n\n⚡ Create an API assistant from any OpenAPI Spec ⚡\n\n<img width=\"680\" alt=\"api2ai demo with multiple APIs\" src=\"https://github.com/mquan/api2ai/assets/138784/6719fdb2-6687-4768-a599-d61d7ab454a6\">\n\n## Features\n\n**api2ai** lets you interface with any API using plain English or any natural language.\n\n- Automatically parses OpenAPI spec and auth schemes\n- Selects endpoint and parses arguments provided in user prompt into query and body params.\n- Invokes the API call and return the response\n- Comes with a local API\n\n<img width=\"901\" alt=\"api2ai demo with multiple languages\" src=\"https://github.com/mquan/api2ai/assets/138784/aead4548-7d61-4ec6-8228-7c999e182cf0\">\n\n## Installation\n\n`npm install --save @api2ai/core`\n\n`yarn add --save @api2ai/core`\n\n## Quickstart\n\nThe following example uses OpenAI API, essentially creating a single interface for all OpenAI endpoints. Please check out the [api code](https://github.com/mquan/api2ai/blob/main/server/pages/api/run.ts) for more details.\n\n```typescript\nimport { ApiAgent } from \"@api2ai/core\";\n\nconst OPEN_AI_KEY = \"sk-...\";\n\nconst agent = new ApiAgent({\n  apiKey: OPEN_AI_KEY,\n  model: \"gpt-3.5-turbo-1106\", // \"gpt-4-1106-preview\" also works\n  apis: [\n    {\n      filename: \"path/to/open-api-spec.yaml\",\n      auth: { token: \"sk-....\" },\n    },\n    {\n      filename: \"url/to/another-open-api-spec.yaml\",\n      auth: { username: \"u$er\", password: \"pa$$word\" },\n    },\n  ],\n});\n\nconst result = await agent.execute({\n  userPrompt: \"Create an image of Waikiki beach\",\n  verbose: true, // default: false\n});\n\n// Sanitized output of result\n{\n  \"userPrompt\": \"Create an image of Waikiki beach\",\n  \"selectedOperation\": \"createImage\",\n  \"request\": {\n    \"url\": \"https://api.openai.com/v1/images/generations\",\n    \"method\": \"post\",\n    \"headers\": {\n      \"Content-Type\": \"application/json\",\n      \"Authorization\": \"Bearer sk-...\"\n    },\n    \"body\": \"{\\\"prompt\\\":\\\"Waikiki beach\\\"}\"\n  },\n  \"response\": {\n    \"headers\": {},\n    \"status\": 200,\n    \"body\": {\n      \"created\": 1691253354,\n      \"data\": [\n        {\n          \"url\": \"https://oaidalleapiprodscus.blob.core.windows.net/private/org-mSgbuBJYTxIWjjopcJpDnkwh/user-.../img-ZsEtynyCxFIYTlDfWor0mTJP.png?st=2023-08-05T15%3A35%3A54Z&se=2023-08-05T17%3A35%3A54Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2023-08-04T18%3A09%3A06Z&ske=2023-08-05T18%3A09%3A06Z&sks=b&skv=2021-08-06&sig=ZYKOP%2BGlz60di2sCiHMWL5ssruXyGMlAUFmQx/aXmqA%3D\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## Using the agent via the API\n\nTo run the server in your machine, please clone the repo and follow the instruction in [Development & Contributing section](#development--contributing).\n\nWe use `dotenv` to store environment variables. Please create an `.env` file in the project's root directory and add your openai key\n\n`OPEN_AI_KEY=sk-...`\n\nStart the server\n\n`yarn dev`\n\nMake an api call\n\n```typescript\nfetch(\"http://localhost:5555/api/run\", {\n  headers: { \"Content-Type\": \"application/json\" },\n  method: \"POST\",\n  body: JSON.stringify({\n    userPrompt:\n      \"Create an image of an astronaut swimming with dolphins in clear water ocean\",\n  }),\n});\n```\n\nConfigure the `server/pages/api/api2ai.config.ts` file to add your own APIs. Follow the existing template in this file. You may add as many files as you want.\n\n## OpenAPI Spec\n\n**api2ai** parses valid OAS files to determine which endpoint and parameters to use. Please ensure your OAS contains descriptive parameters and requestBody schema definition. We currently support OAS version 3.0.0 and above.\n\nTips: We leverage the `summary` fields to determine which endpoint to use. You can tweak your prompt according to the summary text for better result.\n\n### Authentication\n\nConfigure your API auth credentials under the `auth` key for applicable APIs:\n\n```typescript\n// server/pages/api/api2ai.config.ts\nexport const configs = {\n  model: \"gpt-3.5-turbo-1106\",\n  token: process.env[\"OPEN_AI_KEY\"],\n  apis: [\n    {\n      file: \"path/to/your-open-api-spec.yaml\",\n      auth: { token: process.env[\"MY_API_KEY\"] },\n    },\n  ],\n};\n```\n\nCurrently, we support the following auth schemes:\n\n- [Bearer authentication](https://swagger.io/docs/specification/authentication/bearer-authentication/)\n- [API keys](https://swagger.io/docs/specification/authentication/api-keys/)\n- [Basic auth](https://swagger.io/docs/specification/authentication/basic-authentication/)\n\nPlease ensure `securitySchemes` fields are properly defined. Refer to the [Swagger doc](https://swagger.io/docs/specification/authentication/) for more details.\n\n## Development & Contributing\n\nWe use yarn and [turbo](https://turbo.build/). Please clone the repo and install both in order to run the demo and build packages in your machine.\n\n```\nyarn install\nyarn build\n```\n\nTo run the server\n\n`yarn dev`\n\nAccess the app from `http://localhost:5555/`\n\nTo run all tests\n\n`yarn test`\n\nRun a single test file\n\n`turbo run test -- core/src/api/__tests__/operation.test.ts`\n","readmeFilename":"README.md","description":"⚡ Create an API assistant from any OpenAPI Spec ⚡","keywords":["Open API Spec","OpenAPI","ai","api","openai"]}