From 4b1dad96cd4a7d90af5d85fc4aae0ac0dcc53343 Mon Sep 17 00:00:00 2001 From: Ayan Joshi Date: Sun, 8 Oct 2023 12:42:56 +0530 Subject: [PATCH 01/23] Commit --- application/prompts/custom_prompt.txt | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 application/prompts/custom_prompt.txt diff --git a/application/prompts/custom_prompt.txt b/application/prompts/custom_prompt.txt new file mode 100644 index 00000000..054da1e1 --- /dev/null +++ b/application/prompts/custom_prompt.txt @@ -0,0 +1,34 @@ +Welcome to the custom prompt file. You can use this file to create prompts for various tasks or experiments. Below are some examples of prompts you can use: + +1. *Summarization Task:* + + Prompt: Summarize the following article in 3-4 sentences. + Input: [Insert article here] + Output: Summarized article + +2. *Translation Task:* + + Prompt: Translate the English text into French. + Input: "Hello, how are you?" + Output: "Bonjour, comment รงa va ?" + +3. *Coding Task:* + + Prompt: Write a Python function that calculates the factorial of a given number. + Input: (Provide any specific number) + Output: (Gives factorial of the number) + +4. *Question-Answering Task:* + + Prompt: Answer the following question based on the given passage. + Input: [Insert passage here] + Question: [Insert question here] + Output: [Provided answer of the question] + +5. *Story Generation Task:* + + Prompt: Generate a short story about a detective solving a mystery. + Input: [Provide any additional context or details] + Output: [Gives short summary of the story] + +Feel free to customize and add your own prompts to this file. Each section includes a prompt and optional input. Happy Coding ! \ No newline at end of file From c688656607a6be2cbdf57038a75bf533556fb4ab Mon Sep 17 00:00:00 2001 From: Ayan Joshi Date: Mon, 9 Oct 2023 14:27:59 +0530 Subject: [PATCH 02/23] Commit --- application/prompts/custom_prompt.txt | 34 -------------------- docs/pages/Guides/Customising-prompts.md | 40 ++++++++++++++++++++++-- 2 files changed, 38 insertions(+), 36 deletions(-) delete mode 100644 application/prompts/custom_prompt.txt diff --git a/application/prompts/custom_prompt.txt b/application/prompts/custom_prompt.txt deleted file mode 100644 index 054da1e1..00000000 --- a/application/prompts/custom_prompt.txt +++ /dev/null @@ -1,34 +0,0 @@ -Welcome to the custom prompt file. You can use this file to create prompts for various tasks or experiments. Below are some examples of prompts you can use: - -1. *Summarization Task:* - - Prompt: Summarize the following article in 3-4 sentences. - Input: [Insert article here] - Output: Summarized article - -2. *Translation Task:* - - Prompt: Translate the English text into French. - Input: "Hello, how are you?" - Output: "Bonjour, comment รงa va ?" - -3. *Coding Task:* - - Prompt: Write a Python function that calculates the factorial of a given number. - Input: (Provide any specific number) - Output: (Gives factorial of the number) - -4. *Question-Answering Task:* - - Prompt: Answer the following question based on the given passage. - Input: [Insert passage here] - Question: [Insert question here] - Output: [Provided answer of the question] - -5. *Story Generation Task:* - - Prompt: Generate a short story about a detective solving a mystery. - Input: [Provide any additional context or details] - Output: [Gives short summary of the story] - -Feel free to customize and add your own prompts to this file. Each section includes a prompt and optional input. Happy Coding ! \ No newline at end of file diff --git a/docs/pages/Guides/Customising-prompts.md b/docs/pages/Guides/Customising-prompts.md index 1d3a7d4a..e2e26133 100644 --- a/docs/pages/Guides/Customising-prompts.md +++ b/docs/pages/Guides/Customising-prompts.md @@ -1,4 +1,40 @@ -## To customize a main prompt navigate to `/application/prompt/combine_prompt.txt` +# Customizing the Main Prompt -You can try editing it to see how the model responses. +To customize the main prompt for DocsGPT, follow these steps: + +1. Navigate to `/application/prompt/combine_prompt.txt`. + +2. Edit the `combine_prompt.txt` file to modify the prompt text. You can experiment with different phrasings and structures to see how the model responds. + +## Example Prompt Modification + +**Original Prompt:** +```markdown +QUESTION: How to merge tables in pandas? +========= +Content: pandas provides various facilities for easily combining together Series or DataFrame with various kinds of set logic for the indexes and relational algebra functionality in the case of join / merge-type operations. +Source: 28-pl +Content: pandas provides a single function, merge(), as the entry point for all standard database join operations between DataFrame or named Series objects: \n\npandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None) +Source: 30-pl +========= +FINAL ANSWER: To merge two tables in pandas, you can use the pd.merge() function. The basic syntax is: \n\npd.merge(left, right, on, how) \n\nwhere left and right are the two tables to merge, on is the column to merge on, and how is the type of merge to perform. \n\nFor example, to merge the two tables df1 and df2 on the column 'id', you can use: \n\npd.merge(df1, df2, on='id', how='inner') +SOURCES: 28-pl 30-pl + + +## Modified Prompt (for illustration): + +QUESTION: Explain the concept of pandas merge in Python. +========= +Content: The pandas merge function in Python allows you to combine DataFrame objects by performing SQL-style joins. It is a powerful tool for data manipulation and analysis. +Source: Official pandas documentation +Content: You can use the merge function with various options such as 'how,' 'on,' 'left_on,' and 'right_on' to control how the merging is done. +Source: Data science tutorial blog +========= +FINAL ANSWER: To perform a pandas merge in Python, use the `pd.merge()` function. This function takes two DataFrames as input and merges them based on the specified columns. For example, to merge DataFrames `df1` and `df2` on the 'key' column, you can use: `pd.merge(df1, df2, on='key', how='inner')`. +SOURCES: Official pandas documentation, Data science tutorial blog + + +## Conclusion + +Customizing the main prompt for DocsGPT allows you to tailor the AI's responses to your unique requirements. Whether you need in-depth explanations, code examples, or specific insights, you can achieve it by modifying the main prompt. Remember to experiment and fine-tune your prompts to get the best results. From d7b28a35867e5751aa4f735d5af0bbbf120dca2a Mon Sep 17 00:00:00 2001 From: Ayan Joshi Date: Tue, 10 Oct 2023 19:10:24 +0530 Subject: [PATCH 03/23] Update Customising-prompts.md --- docs/pages/Guides/Customising-prompts.md | 26 +++++++----------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/docs/pages/Guides/Customising-prompts.md b/docs/pages/Guides/Customising-prompts.md index e2e26133..2426974c 100644 --- a/docs/pages/Guides/Customising-prompts.md +++ b/docs/pages/Guides/Customising-prompts.md @@ -10,28 +10,16 @@ To customize the main prompt for DocsGPT, follow these steps: **Original Prompt:** ```markdown -QUESTION: How to merge tables in pandas? -========= -Content: pandas provides various facilities for easily combining together Series or DataFrame with various kinds of set logic for the indexes and relational algebra functionality in the case of join / merge-type operations. -Source: 28-pl -Content: pandas provides a single function, merge(), as the entry point for all standard database join operations between DataFrame or named Series objects: \n\npandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None) -Source: 30-pl -========= -FINAL ANSWER: To merge two tables in pandas, you can use the pd.merge() function. The basic syntax is: \n\npd.merge(left, right, on, how) \n\nwhere left and right are the two tables to merge, on is the column to merge on, and how is the type of merge to perform. \n\nFor example, to merge the two tables df1 and df2 on the column 'id', you can use: \n\npd.merge(df1, df2, on='id', how='inner') -SOURCES: 28-pl 30-pl +You are a DocsGPT, friendly and helpful AI assistant by Arc53 that provides help with documents. You give thorough answers with code examples if possible. +Use the following pieces of context to help answer the users question. If its not relevant to the question, provide friendly responses. +You have access to chat history, and can use it to help answer the question. +When using code examples, use the following format: +(code) +{summaries} -## Modified Prompt (for illustration): +Thank you -QUESTION: Explain the concept of pandas merge in Python. -========= -Content: The pandas merge function in Python allows you to combine DataFrame objects by performing SQL-style joins. It is a powerful tool for data manipulation and analysis. -Source: Official pandas documentation -Content: You can use the merge function with various options such as 'how,' 'on,' 'left_on,' and 'right_on' to control how the merging is done. -Source: Data science tutorial blog -========= -FINAL ANSWER: To perform a pandas merge in Python, use the `pd.merge()` function. This function takes two DataFrames as input and merges them based on the specified columns. For example, to merge DataFrames `df1` and `df2` on the 'key' column, you can use: `pd.merge(df1, df2, on='key', how='inner')`. -SOURCES: Official pandas documentation, Data science tutorial blog ## Conclusion From ca3e549dd4f35d3c7b3b33ff85a32e861f6ccd83 Mon Sep 17 00:00:00 2001 From: shivanandmn Date: Thu, 12 Oct 2023 13:29:52 +0530 Subject: [PATCH 04/23] added delete index of vector store in faiss --- application/vectorstore/faiss.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/application/vectorstore/faiss.py b/application/vectorstore/faiss.py index 217b0457..e5e8f7f5 100644 --- a/application/vectorstore/faiss.py +++ b/application/vectorstore/faiss.py @@ -24,3 +24,6 @@ class FaissStore(BaseVectorStore): def save_local(self, *args, **kwargs): return self.docsearch.save_local(*args, **kwargs) + + def delete_index(self, *args, **kwargs): + return self.docsearch.delete(*args, **kwargs) From 2e95666939a5df2ea0d1c8be2d47a54b5820103c Mon Sep 17 00:00:00 2001 From: shivanandmn Date: Mon, 16 Oct 2023 02:46:48 +0530 Subject: [PATCH 05/23] added new endpoint --- application/api/user/routes.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/application/api/user/routes.py b/application/api/user/routes.py index fdff2e97..b80562b2 100644 --- a/application/api/user/routes.py +++ b/application/api/user/routes.py @@ -84,6 +84,19 @@ def api_feedback(): ) return {"status": http.client.responses.get(response.status_code, "ok")} +@user.route("/api/delete_by_ids", methods=["get"]) +def delete_by_ids(): + """Delete by ID. These are the IDs in the vectorstore""" + + ids = request.args.get("path") + if not ids: + return {"status": "error"} + + if settings.VECTOR_STORE == "faiss": + result = vectors_collection.delete_index(ids=ids) + if result: + return {"status": "ok"} + return {"status": "error"} @user.route("/api/delete_old", methods=["get"]) def delete_old(): From fa8177d0e57c55b6e5fa8f47f1daf7707ace79e5 Mon Sep 17 00:00:00 2001 From: Vedant Borkar Date: Mon, 16 Oct 2023 19:52:16 +0530 Subject: [PATCH 06/23] Update Navigation.tsx --- frontend/src/Navigation.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/Navigation.tsx b/frontend/src/Navigation.tsx index be308eab..361ee652 100644 --- a/frontend/src/Navigation.tsx +++ b/frontend/src/Navigation.tsx @@ -264,7 +264,7 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { src={UploadIcon} onClick={() => setUploadModalState('ACTIVE')} > - {isDocsListOpen && ( + {!isDocsListOpen && (
{docs ? ( docs.map((doc, index) => { @@ -274,7 +274,7 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { key={index} onClick={() => { dispatch(setSelectedDocs(doc)); - setIsDocsListOpen(false); + setIsDocsListOpen(true); }} className="flex h-10 w-full cursor-pointer items-center justify-between border-x-2 border-b-2 hover:bg-gray-100" > From efcce6a8261065d816d901c677e08f34a396869d Mon Sep 17 00:00:00 2001 From: Rahul Kumar <104289350+rahul0x00@users.noreply.github.com> Date: Mon, 16 Oct 2023 14:51:24 +0000 Subject: [PATCH 07/23] Enhancement: Improve API Endpoint Documentation --- docs/pages/Developing/API-docs.md | 83 ++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 24 deletions(-) diff --git a/docs/pages/Developing/API-docs.md b/docs/pages/Developing/API-docs.md index 2d832845..61428188 100644 --- a/docs/pages/Developing/API-docs.md +++ b/docs/pages/Developing/API-docs.md @@ -1,9 +1,22 @@ -Currently, the application provides the following main API endpoints: +*Currently, the application provides the following main API endpoints:* + +# API Endpoints Documentation ### /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: +**Description:**: +This endpoint is used to request answers to user-provided questions. +**Request:** +Method: POST +Headers: Content-Type should be set to "application/json; charset=utf-8" +Request Body: JSON object with the following fields: +* **question:** The user's question +* **history:** (Optional) Previous conversation history +* **api_key:** Your API key +* **embeddings_key:** Your embeddings key +* **active_docs:** The location of active documentation + +Here is a JavaScript Fetch Request example: ```js // answer (POST http://127.0.0.1:5000/api/answer) fetch("http://127.0.0.1:5000/api/answer", { @@ -17,9 +30,8 @@ fetch("http://127.0.0.1:5000/api/answer", { .then((res) => res.text()) .then(console.log.bind(console)) ``` - -In response, you will get a JSON document like this one: - +**Response** +In response, you will get a JSON document containing the answer,query and the result: ```json { "answer": " Hi there! How can I help you?\n", @@ -29,9 +41,13 @@ In response, you will get a JSON document like this one: ``` ### /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 a body with 1 value. Here is a JavaScript fetch example: +**Description:** +This endpoint will make sure documentation is loaded on the server (just run it every time user is switching between libraries (documentations)). +**Request:** +Headers: Content-Type should be set to "application/json; charset=utf-8" +Request Body: JSON object with the field: +* **docs:** The location of the documentation ```js // answer (POST http://127.0.0.1:5000/api/docs_check) fetch("http://127.0.0.1:5000/api/docs_check", { @@ -45,7 +61,8 @@ fetch("http://127.0.0.1:5000/api/docs_check", { .then(console.log.bind(console)) ``` -In response, you will get a JSON document like this one: +**Response:** +In response, you will get a JSON document like this one indicating whether the documentation exists or not.: ```json { "status": "exists" @@ -54,8 +71,13 @@ In response, you will get a JSON document like this one: ### /api/combine -Provides JSON that tells UI which vectors are available and where they are located with a simple get request. +**Description:** +This endpoint provides information about available vectors and their locations with a simple GET request. +**Request:** +Method: GET + +**Response:** Response will include: `date`, `description`, `docLink`, `fullName`, `language`, `location` (local or docshub), `model`, `name`, `version`. @@ -64,7 +86,13 @@ 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 task's progress +**Description:** +This endpoint is used to upload a file that needs to be trained, response is JSON with task ID, which can be used to check on task's progress. + +**Request:** +Method: POST +Request Body: A multipart/form-data form with file upload and additional fields, including "user" and "name." + HTML example: ```html @@ -79,20 +107,23 @@ HTML example: ``` -Response: -```json -{ - "status": "ok", - "task_id": "b2684988-9047-428b-bd47-08518679103c" -} +**Response:** +This endpoint is used to get the JSON response with a status and a task ID that can be used to check the task's progress. + -``` ### /api/task_status -Gets task status (`task_id`) from `/api/upload`: +**Description:** +This endpoint is used to get the status of a task (`task_id`) from `/api/upload` + +**Request:** +Method: GET +Query Parameter: task_id (task ID to check) + +**Sample JavaScript Fetch Request:** ```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", { +fetch("http://localhost:5001/api/task_status?task_id=YOUR_TASK_ID", { "method": "GET", "headers": { "Content-Type": "application/json; charset=utf-8" @@ -102,7 +133,7 @@ fetch("http://localhost:5001/api/task_status?task_id=b2d2a0f4-387c-44fd-a443-e4f .then(console.log.bind(console)) ``` -Responses: +**Responses:** There are two types of responses: 1. While the task is still running, the 'current' value will show progress from 0 to 100. @@ -135,8 +166,11 @@ There are two types of responses: ``` ### /api/delete_old -Deletes old Vector Stores: +**Description:** +This endpoint is used to delete old Vector Stores. +**Request:** +Method: GET ```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", { @@ -148,8 +182,9 @@ fetch("http://localhost:5001/api/task_status?task_id=b2d2a0f4-387c-44fd-a443-e4f .then((res) => res.text()) .then(console.log.bind(console)) -Response: - +``` +**Response:** +JSON response indicating the status of the operation. ```json { "status": "ok" } ``` From 1c0b68f0e326f4a89b8bc2e05338f6b173232013 Mon Sep 17 00:00:00 2001 From: Rahul Kumar <104289350+rahul0x00@users.noreply.github.com> Date: Mon, 16 Oct 2023 20:27:09 +0530 Subject: [PATCH 08/23] Update API-docs.md --- docs/pages/Developing/API-docs.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/pages/Developing/API-docs.md b/docs/pages/Developing/API-docs.md index 61428188..9ef964fe 100644 --- a/docs/pages/Developing/API-docs.md +++ b/docs/pages/Developing/API-docs.md @@ -108,8 +108,7 @@ HTML example: ``` **Response:** -This endpoint is used to get the JSON response with a status and a task ID that can be used to check the task's progress. - +JSON response with a status and a task ID that can be used to check the task's progress. ### /api/task_status @@ -133,7 +132,7 @@ fetch("http://localhost:5001/api/task_status?task_id=YOUR_TASK_ID", { .then(console.log.bind(console)) ``` -**Responses:** +**Response:** There are two types of responses: 1. While the task is still running, the 'current' value will show progress from 0 to 100. From 06cc4b07ab58684045537f647e4f22b8fa270626 Mon Sep 17 00:00:00 2001 From: Rahul Kumar <104289350+rahul0x00@users.noreply.github.com> Date: Mon, 16 Oct 2023 20:35:17 +0530 Subject: [PATCH 09/23] Update API-docs.md --- docs/pages/Developing/API-docs.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/pages/Developing/API-docs.md b/docs/pages/Developing/API-docs.md index 9ef964fe..9007f48e 100644 --- a/docs/pages/Developing/API-docs.md +++ b/docs/pages/Developing/API-docs.md @@ -3,10 +3,12 @@ # API Endpoints Documentation ### /api/answer -**Description:**: +**Description:** + This endpoint is used to request answers to user-provided questions. **Request:** + Method: POST Headers: Content-Type should be set to "application/json; charset=utf-8" Request Body: JSON object with the following fields: @@ -30,7 +32,9 @@ fetch("http://127.0.0.1:5000/api/answer", { .then((res) => res.text()) .then(console.log.bind(console)) ``` + **Response** + In response, you will get a JSON document containing the answer,query and the result: ```json { @@ -41,10 +45,13 @@ In response, you will get a JSON document containing the answer,query and the re ``` ### /api/docs_check + **Description:** + This endpoint will make sure documentation is loaded on the server (just run it every time user is switching between libraries (documentations)). **Request:** + Headers: Content-Type should be set to "application/json; charset=utf-8" Request Body: JSON object with the field: * **docs:** The location of the documentation @@ -62,6 +69,7 @@ fetch("http://127.0.0.1:5000/api/docs_check", { ``` **Response:** + In response, you will get a JSON document like this one indicating whether the documentation exists or not.: ```json { @@ -72,24 +80,31 @@ In response, you will get a JSON document like this one indicating whether the d ### /api/combine **Description:** + This endpoint provides information about available vectors and their locations with a simple GET request. **Request:** + Method: GET **Response:** + Response will include: `date`, `description`, `docLink`, `fullName`, `language`, `location` (local or docshub), `model`, `name`, `version`. + Example of JSON in Docshub and local: + image ### /api/upload **Description:** + This endpoint is used to upload a file that needs to be trained, response is JSON with task ID, which can be used to check on task's progress. **Request:** + Method: POST Request Body: A multipart/form-data form with file upload and additional fields, including "user" and "name." @@ -108,11 +123,13 @@ HTML example: ``` **Response:** + JSON response with a status and a task ID that can be used to check the task's progress. ### /api/task_status **Description:** + This endpoint is used to get the status of a task (`task_id`) from `/api/upload` **Request:** @@ -133,6 +150,7 @@ fetch("http://localhost:5001/api/task_status?task_id=YOUR_TASK_ID", { ``` **Response:** + There are two types of responses: 1. While the task is still running, the 'current' value will show progress from 0 to 100. @@ -166,9 +184,11 @@ There are two types of responses: ### /api/delete_old **Description:** + This endpoint is used to delete old Vector Stores. **Request:** + Method: GET ```js // Task status (GET http://127.0.0.1:5000/api/docs_check) @@ -183,6 +203,7 @@ fetch("http://localhost:5001/api/task_status?task_id=b2d2a0f4-387c-44fd-a443-e4f ``` **Response:** + JSON response indicating the status of the operation. ```json { "status": "ok" } From c22b014056cbecfbbc8ee4ad0cab404077357d0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Oct 2023 17:53:36 +0000 Subject: [PATCH 10/23] Bump @babel/traverse from 7.20.13 to 7.23.2 in /frontend Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.20.13 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] --- frontend/package-lock.json | 122 +++++++++++++++++++------------------ 1 file changed, 62 insertions(+), 60 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 7c08dfb7..5fed8451 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -61,12 +61,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -112,13 +113,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -159,34 +161,34 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -245,30 +247,30 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -298,13 +300,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -312,9 +314,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -365,33 +367,33 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -400,13 +402,13 @@ } }, "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { From 9f9e2f3b240caba5e741e221c245c17d94d2aba0 Mon Sep 17 00:00:00 2001 From: Yash-sudo-web Date: Tue, 17 Oct 2023 00:15:03 +0530 Subject: [PATCH 11/23] Update Chatwoot-extension.md --- docs/pages/Extensions/Chatwoot-extension.md | 57 +++++++++++++-------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/docs/pages/Extensions/Chatwoot-extension.md b/docs/pages/Extensions/Chatwoot-extension.md index ab0b8d7e..47b995aa 100644 --- a/docs/pages/Extensions/Chatwoot-extension.md +++ b/docs/pages/Extensions/Chatwoot-extension.md @@ -1,29 +1,44 @@ -### To start chatwoot extension: -1. Prepare and start the DocsGPT itself (load your documentation too). Follow our [wiki](https://github.com/arc53/DocsGPT/wiki) to start it and to [ingest](https://github.com/arc53/DocsGPT/wiki/How-to-train-on-other-documentation) data. -2. Go to chatwoot, **Navigate** to your profile (bottom left), click on profile settings, scroll to the bottom and copy **Access Token**. -3. Navigate to `/extensions/chatwoot`. Copy `.env_sample` and create `.env` file. -4. Fill in the values. +### To Start Chatwoot Extension: -``` -docsgpt_url= -chatwoot_url= -docsgpt_key= -chatwoot_token= -``` +1. **Prepare and Start DocsGPT:** + - Launch DocsGPT using the instructions in our [wiki](https://github.com/arc53/DocsGPT/wiki). + - Make sure to load your documentation. -5. Start with `flask run` command. +2. **Get Access Token from Chatwoot:** + - Navigate to Chatwoot. + - Go to your profile (bottom left), click on profile settings. + - Scroll to the bottom and copy the **Access Token**. -If you want for bot to stop responding to questions for a specific user or session, just add a label `human-requested` in your conversation. +3. **Set Up Chatwoot Extension:** + - Navigate to `/extensions/chatwoot`. + - Copy `.env_sample` and create a `.env` file. + - Fill in the values in the `.env` file: + ```env + docsgpt_url= + chatwoot_url= + docsgpt_key= + chatwoot_token= + ``` -### Optional (extra validation) -1. In `app.py` uncomment lines 12-13 and 71-75 +4. **Start the Extension:** + - Use the command `flask run` to start the extension. -2. in your `.env` file add: +5. **Optional: Extra Validation** + - In `app.py`, uncomment lines 12-13 and 71-75. + - Add the following lines to your `.env` file: -``` -account_id=(optional) 1 -assignee_id=(optional) 1 -``` + ```env + account_id=(optional) 1 + assignee_id=(optional) 1 + ``` -Those are chatwoot values and will allow you to check if you are responding to correct widget and responding to questions assigned to specific user. + These Chatwoot values help ensure you respond to the correct widget and handle questions assigned to a specific user. + +### Stopping Bot Responses for Specific User or Session: +- If you want the bot to stop responding to questions for a specific user or session, add a label `human-requested` in your conversation. + +### Additional Notes: +- For further details on training on other documentation, refer to our [wiki](https://github.com/arc53/DocsGPT/wiki/How-to-train-on-other-documentation). + +Feel free to test it out, and let me know if there's anything more you'd like to add or adjust! From 2f21476b2afe6b59b867d06b97878af44e128971 Mon Sep 17 00:00:00 2001 From: Yash-sudo-web Date: Tue, 17 Oct 2023 00:18:40 +0530 Subject: [PATCH 12/23] Update Chatwoot-extension.md --- docs/pages/Extensions/Chatwoot-extension.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/pages/Extensions/Chatwoot-extension.md b/docs/pages/Extensions/Chatwoot-extension.md index 47b995aa..f9db022b 100644 --- a/docs/pages/Extensions/Chatwoot-extension.md +++ b/docs/pages/Extensions/Chatwoot-extension.md @@ -40,5 +40,3 @@ ### Additional Notes: - For further details on training on other documentation, refer to our [wiki](https://github.com/arc53/DocsGPT/wiki/How-to-train-on-other-documentation). - -Feel free to test it out, and let me know if there's anything more you'd like to add or adjust! From f9e67512791fd594cb926b09a0bc2117e8cc9960 Mon Sep 17 00:00:00 2001 From: Alexander Deshkevich Date: Mon, 16 Oct 2023 18:58:55 -0300 Subject: [PATCH 13/23] fix render lists in conversation --- .../ConversationBubble.module.css | 11 ++++++ .../src/conversation/ConversationBubble.tsx | 35 ++++++++++--------- 2 files changed, 29 insertions(+), 17 deletions(-) create mode 100644 frontend/src/conversation/ConversationBubble.module.css diff --git a/frontend/src/conversation/ConversationBubble.module.css b/frontend/src/conversation/ConversationBubble.module.css new file mode 100644 index 00000000..4a8d3a12 --- /dev/null +++ b/frontend/src/conversation/ConversationBubble.module.css @@ -0,0 +1,11 @@ +.list p { + display: inline; +} + +.list li:not(:first-child) { + margin-top: 1em; +} + +.list li > .list { + margin-top: 1em; +} diff --git a/frontend/src/conversation/ConversationBubble.tsx b/frontend/src/conversation/ConversationBubble.tsx index ad7db7a7..47fe709a 100644 --- a/frontend/src/conversation/ConversationBubble.tsx +++ b/frontend/src/conversation/ConversationBubble.tsx @@ -1,6 +1,7 @@ import { forwardRef, useState } from 'react'; import Avatar from '../Avatar'; import { FEEDBACK, MESSAGE_TYPE } from './conversationModels'; +import classes from './ConversationBubble.module.css'; import Alert from './../assets/alert.svg'; import { ReactComponent as Like } from './../assets/like.svg'; import { ReactComponent as Dislike } from './../assets/dislike.svg'; @@ -40,16 +41,6 @@ const ConversationBubble = forwardRef< }, 2000); }; - const List = ({ - ordered, - children, - }: { - ordered?: boolean; - children: React.ReactNode; - }) => { - const Tag = ordered ? 'ol' : 'ul'; - return {children}; - }; let bubble; if (type === 'QUESTION') { @@ -104,11 +95,23 @@ const ConversationBubble = forwardRef< ); }, - ul({ node, children }) { - return {children}; + ul({ children }) { + return ( +
    + {children} +
+ ); }, - ol({ node, children }) { - return {children}; + ol({ children }) { + return ( +
    + {children} +
+ ); }, }} > @@ -118,9 +121,7 @@ const ConversationBubble = forwardRef< <>
-
- Sources: -
+
Sources:
{sources?.map((source, index) => (
Date: Mon, 16 Oct 2023 20:09:59 -0300 Subject: [PATCH 14/23] Prevent unneccessary renders. Update show/hide state of feedback buttons by css instead React --- .../src/conversation/ConversationBubble.tsx | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/frontend/src/conversation/ConversationBubble.tsx b/frontend/src/conversation/ConversationBubble.tsx index ad7db7a7..83b98cda 100644 --- a/frontend/src/conversation/ConversationBubble.tsx +++ b/frontend/src/conversation/ConversationBubble.tsx @@ -27,7 +27,6 @@ const ConversationBubble = forwardRef< { message, type, className, feedback, handleFeedback, sources }, ref, ) { - const [showFeedback, setShowFeedback] = useState(false); const [openSource, setOpenSource] = useState(null); const [copied, setCopied] = useState(false); @@ -65,12 +64,7 @@ const ConversationBubble = forwardRef< ); } else { bubble = ( -
setShowFeedback(true)} - onMouseLeave={() => setShowFeedback(false)} - > +
-
- Sources: -
+
Sources:
{sources?.map((source, index) => (
{copied ? ( @@ -167,10 +159,10 @@ const ConversationBubble = forwardRef< )}
Date: Tue, 17 Oct 2023 08:28:13 +0530 Subject: [PATCH 15/23] Update API-docs.md --- docs/pages/Developing/API-docs.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/pages/Developing/API-docs.md b/docs/pages/Developing/API-docs.md index 9007f48e..1f9626ec 100644 --- a/docs/pages/Developing/API-docs.md +++ b/docs/pages/Developing/API-docs.md @@ -2,7 +2,7 @@ # API Endpoints Documentation -### /api/answer +### 1. /api/answer **Description:** This endpoint is used to request answers to user-provided questions. @@ -44,7 +44,7 @@ In response, you will get a JSON document containing the answer,query and the re } ``` -### /api/docs_check +### 2. /api/docs_check **Description:** @@ -78,7 +78,7 @@ In response, you will get a JSON document like this one indicating whether the d ``` -### /api/combine +### 3. /api/combine **Description:** This endpoint provides information about available vectors and their locations with a simple GET request. @@ -127,7 +127,7 @@ HTML example: JSON response with a status and a task ID that can be used to check the task's progress. -### /api/task_status +### 4. /api/task_status **Description:** This endpoint is used to get the status of a task (`task_id`) from `/api/upload` @@ -182,7 +182,7 @@ There are two types of responses: } ``` -### /api/delete_old +### 5. /api/delete_old **Description:** This endpoint is used to delete old Vector Stores. From 5c2b4398d9194268b6d21c6ec1a7651a9ec1720b Mon Sep 17 00:00:00 2001 From: Vedant Borkar Date: Tue, 17 Oct 2023 11:53:57 +0530 Subject: [PATCH 16/23] Update Navigation.tsx --- frontend/src/Navigation.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/Navigation.tsx b/frontend/src/Navigation.tsx index 361ee652..ede4ced4 100644 --- a/frontend/src/Navigation.tsx +++ b/frontend/src/Navigation.tsx @@ -255,7 +255,7 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { src={Arrow2} alt="arrow" className={`${ - isDocsListOpen ? 'rotate-0' : 'rotate-180' + !isDocsListOpen ? 'rotate-0' : 'rotate-180' } ml-auto mr-3 w-3 transition-all`} />
@@ -264,7 +264,7 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { src={UploadIcon} onClick={() => setUploadModalState('ACTIVE')} > - {!isDocsListOpen && ( + {isDocsListOpen && (
{docs ? ( docs.map((doc, index) => { @@ -274,7 +274,7 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { key={index} onClick={() => { dispatch(setSelectedDocs(doc)); - setIsDocsListOpen(true); + setIsDocsListOpen(false); }} className="flex h-10 w-full cursor-pointer items-center justify-between border-x-2 border-b-2 hover:bg-gray-100" > From 186f565b99915966ac95c7da882992da37e33ba9 Mon Sep 17 00:00:00 2001 From: Rahul Kumar <104289350+rahul0x00@users.noreply.github.com> Date: Tue, 17 Oct 2023 12:27:38 +0530 Subject: [PATCH 17/23] Update API-docs.md --- docs/pages/Developing/API-docs.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/pages/Developing/API-docs.md b/docs/pages/Developing/API-docs.md index 1f9626ec..fd01096b 100644 --- a/docs/pages/Developing/API-docs.md +++ b/docs/pages/Developing/API-docs.md @@ -98,7 +98,7 @@ Example of JSON in Docshub and local: image -### /api/upload +### 4. /api/upload **Description:** This endpoint is used to upload a file that needs to be trained, response is JSON with task ID, which can be used to check on task's progress. @@ -127,7 +127,7 @@ HTML example: JSON response with a status and a task ID that can be used to check the task's progress. -### 4. /api/task_status +### 5. /api/task_status **Description:** This endpoint is used to get the status of a task (`task_id`) from `/api/upload` @@ -182,7 +182,7 @@ There are two types of responses: } ``` -### 5. /api/delete_old +### 6. /api/delete_old **Description:** This endpoint is used to delete old Vector Stores. From 062f3256a7cee1e70c5334cee40be6dc569fcc13 Mon Sep 17 00:00:00 2001 From: Rahul Kumar <104289350+rahul0x00@users.noreply.github.com> Date: Tue, 17 Oct 2023 12:28:50 +0530 Subject: [PATCH 18/23] Update API-docs.md --- docs/pages/Developing/API-docs.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/pages/Developing/API-docs.md b/docs/pages/Developing/API-docs.md index fd01096b..09e4f875 100644 --- a/docs/pages/Developing/API-docs.md +++ b/docs/pages/Developing/API-docs.md @@ -1,6 +1,7 @@ +# API Endpoints Documentation + *Currently, the application provides the following main API endpoints:* -# API Endpoints Documentation ### 1. /api/answer **Description:** From ca48f000bd2e2852fec5650b5f1f1eb1f196c376 Mon Sep 17 00:00:00 2001 From: ManiYadla Date: Tue, 17 Oct 2023 20:40:27 +0530 Subject: [PATCH 19/23] changed the typos --- README.md | 70 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index c24a7483..53d590a2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@

- DocsGPT is a cutting-edge open-source solution that streamlines the process of finding information in project documentation. With its integration of the powerful GPT models, developers can easily ask questions about a project and receive accurate answers. + DocsGPT is a cutting-edge open-source solution that streamlines the process of finding information in the project documentation. With its integration of the powerful GPT models, developers can easily ask questions about a project and receive accurate answers. Say goodbye to time-consuming manual searches, and let DocsGPT help you quickly find the information you need. Try it out and see how it revolutionizes your project documentation experience. Contribute to its development and be a part of the future of AI-powered assistance.

@@ -21,61 +21,56 @@ Say goodbye to time-consuming manual searches, and let +
@@ -205,9 +206,10 @@ export default function Upload({
@@ -228,8 +230,9 @@ export default function Upload({ return (
{view}