Currently, the application provides the following main API endpoints: ### /api/answer It's a POST request that sends a JSON in body with 4 values. It will receive an answer for a user provided question. Here is a JavaScript fetch example: ```js // answer (POST http://127.0.0.1:5000/api/answer) fetch("http://127.0.0.1:5000/api/answer", { "method": "POST", "headers": { "Content-Type": "application/json; charset=utf-8" }, "body": JSON.stringify({"question":"Hi","history":null,"api_key":"OPENAI_API_KEY","embeddings_key":"OPENAI_API_KEY", "active_docs": "javascript/.project/ES2015/openai_text-embedding-ada-002/"}) }) .then((res) => res.text()) .then(console.log.bind(console)) ``` In response you will get a json document like this one: ```json { "answer": " Hi there! How can I help you?\n", "query": "Hi", "result": " Hi there! How can I help you?\nSOURCES:" } ``` ### /api/docs_check It will make sure documentation is loaded on a server (just run it every time user is switching between libraries (documentations)). It's a POST request that sends a JSON in body with 1 value. Here is a JavaScript fetch example: ```js // answer (POST http://127.0.0.1:5000/api/docs_check) fetch("http://127.0.0.1:5000/api/docs_check", { "method": "POST", "headers": { "Content-Type": "application/json; charset=utf-8" }, "body": JSON.stringify({"docs":"javascript/.project/ES2015/openai_text-embedding-ada-002/"}) }) .then((res) => res.text()) .then(console.log.bind(console)) ``` In response you will get a json document like this one: ```json { "status": "exists" } ``` ### /api/combine Provides json that tells UI which vectors are available and where they are located with a simple get request. Response will include: `date`, `description`, `docLink`, `fullName`, `language`, `location` (local or docshub), `model`, `name`, `version`. Example of json in Docshub and local: ### /api/upload Uploads file that needs to be trained, response is json with task id, which can be used to check on tasks progress HTML example: ```html
``` Response: ```json { "status": "ok", "task_id": "b2684988-9047-428b-bd47-08518679103c" } ``` ### /api/task_status Gets task status (`task_id`) from `/api/upload`: ```js // Task status (Get http://127.0.0.1:5000/api/task_status) fetch("http://localhost:5001/api/task_status?task_id=b2d2a0f4-387c-44fd-a443-e4fe2e7454d1", { "method": "GET", "headers": { "Content-Type": "application/json; charset=utf-8" }, }) .then((res) => res.text()) .then(console.log.bind(console)) ``` Responses: There are two types of responses: 1. While task is still running, where "current" will show progress from 0 to 100: ```json { "result": { "current": 1 }, "status": "PROGRESS" } ``` 2. When task is completed: ```json { "result": { "directory": "temp", "filename": "install.rst", "formats": [ ".rst", ".md", ".pdf" ], "name_job": "somename", "user": "local" }, "status": "SUCCESS" } ``` ### /api/delete_old Deletes old [Vector stores](https://python.langchain.com/docs/modules/data_connection/vectorstores/): ```js // Task status (GET http://127.0.0.1:5000/api/docs_check) fetch("http://localhost:5001/api/task_status?task_id=b2d2a0f4-387c-44fd-a443-e4fe2e7454d1", { "method": "GET", "headers": { "Content-Type": "application/json; charset=utf-8" }, }) .then((res) => res.text()) .then(console.log.bind(console)) ``` Response: ```json { "status": "ok" } ```