[DB Loader] Support Java functions and OpenAPI JSON with demo #282
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds 2 adapters to existing
db_loadand allows users to ingest Java functions and Web APIs in OpenAPI JSON format into the vector database of NLWeb. Both adapters come with their own demos.Get started
Please follow the README file.
Key features in this PR
OpenAPI JSON
Given a web API in OpenAPI JSON format, the new
openapi_strategy.pyadapter parses the API URL, HTTP method, parameters, return values, and description into APIReference @ schema.org. Example:Input OpenAPI JSON
Output
{ "url": "../demo/verb_demo/github_com.json#getUser(String)", "name": "github_com.getUser", "site": "github_com", "schema_data": {...} }Java Function
Given a Java function interface, the new
java_strategy.pyadapter parses the function name, parameters, return values, and docs strings into APIReference @ schema.org. Example:Input Java function
Output
{ "url": "../demo/verb_demo/alaskaair_com.java#searchFlights(String, String, String, String)", "name": "alaskaair_com.searchFlights", "site": "alaskaair_com", "schema_data": {...} }demo files
All demo files are available at
demo/verb_demo.CLI
We also add a
cli-app.pyfor users to interact with NLWeb from command line.