From cf37666f027b4bbeee710c102157d7c9e51baaf6 Mon Sep 17 00:00:00 2001 From: Matt <77928207+mattzcarey@users.noreply.github.com> Date: Tue, 11 Jul 2023 11:09:56 +0100 Subject: [PATCH] feat: tests get default brain (#593) * feat: tests get default brain * feat: chains docs * feat: brains docs * fix: remove brain_id creation from fe * fix: docs categories --- backend/models/brains.py | 28 +++------ backend/test_main.py | 59 ++++++++++++++++-- docs/docs/backend/brains/_category_.json | 9 +++ docs/docs/backend/brains/brains.md | 27 ++++++++ docs/docs/backend/chains/_category_.json | 9 +++ .../backend/chains/open_ai_functions_tree.jpg | Bin 0 -> 63726 bytes docs/docs/backend/chains/qa.md | 31 +++++++++ 7 files changed, 139 insertions(+), 24 deletions(-) create mode 100644 docs/docs/backend/brains/_category_.json create mode 100644 docs/docs/backend/brains/brains.md create mode 100644 docs/docs/backend/chains/_category_.json create mode 100644 docs/docs/backend/chains/open_ai_functions_tree.jpg create mode 100644 docs/docs/backend/chains/qa.md diff --git a/backend/models/brains.py b/backend/models/brains.py index b5bc8aa13..6b5c5795a 100644 --- a/backend/models/brains.py +++ b/backend/models/brains.py @@ -2,11 +2,13 @@ import os from typing import Any, List, Optional from uuid import UUID +from logger import get_logger +from models.settings import CommonsDep, common_dependencies +from models.users import User from pydantic import BaseModel from utils.vectors import get_unique_files_from_vector_ids -from models.settings import CommonsDep, common_dependencies -from models.users import User +logger = get_logger(__name__) class Brain(BaseModel): @@ -16,7 +18,6 @@ class Brain(BaseModel): model: Optional[str] = "gpt-3.5-turbo-0613" temperature: Optional[float] = 0.0 max_tokens: Optional[int] = 256 - brain_size: Optional[float] = 0.0 # pyright: ignore reportPrivateUsage=none max_brain_size: Optional[int] = int(os.getenv("MAX_BRAIN_SIZE", 0)) files: List[Any] = [] _commons: Optional[CommonsDep] = None @@ -35,7 +36,6 @@ class Brain(BaseModel): self.get_unique_brain_files() current_brain_size = sum(float(doc["size"]) for doc in self.files) - print("current_brain_size", current_brain_size) return current_brain_size @property @@ -86,8 +86,6 @@ class Brain(BaseModel): return response.data def delete_brain(self, user_id): - print("user_id", user_id) - print("self.id", self.id) results = ( self.commons["supabase"] .table("brains_users") @@ -96,7 +94,6 @@ class Brain(BaseModel): .execute() ) if len(results.data) == 0: - print("You are not the owner of this brain.") return {"message": "You are not the owner of this brain."} else: results = ( @@ -106,7 +103,6 @@ class Brain(BaseModel): .match({"brain_id": self.id}) .execute() ) - print("results", results) results = ( self.commons["supabase"] @@ -115,7 +111,6 @@ class Brain(BaseModel): .match({"brain_id": self.id}) .execute() ) - print("results", results) results = ( self.commons["supabase"] @@ -124,14 +119,12 @@ class Brain(BaseModel): .match({"brain_id": self.id}) .execute() ) - print("results", results) def create_brain(self): commons = common_dependencies() response = ( commons["supabase"].table("brains").insert({"name": self.name}).execute() ) - # set the brainId with response.data self.id = response.data[0]["brain_id"] return response.data @@ -206,13 +199,10 @@ class Brain(BaseModel): vector_ids = [item["vector_id"] for item in response.data] - print("vector_ids", vector_ids) - if len(vector_ids) == 0: return [] self.files = get_unique_files_from_vector_ids(vector_ids) - print("unique_files", self.files) return self.files @@ -258,19 +248,17 @@ def get_default_user_brain(user: User): commons = common_dependencies() response = ( commons["supabase"] - .from_("brains_users") # I'm assuming this is the correct table + .from_("brains_users") .select("brain_id") .filter("user_id", "eq", user.id) - .filter( - "default_brain", "eq", True - ) # Assuming 'default' is the correct column name + .filter("default_brain", "eq", True) .execute() ) - print("Default brain response:", response.data) + logger.info("Default brain response:", response.data) default_brain_id = response.data[0]["brain_id"] if response.data else None - print(f"Default brain id: {default_brain_id}") + logger.info(f"Default brain id: {default_brain_id}") if default_brain_id: brain_response = ( diff --git a/backend/test_main.py b/backend/test_main.py index 7f8141c97..425692302 100644 --- a/backend/test_main.py +++ b/backend/test_main.py @@ -45,8 +45,9 @@ def test_create_and_delete_api_key(): assert verify_response.status_code == 200 # Now, let's delete the API key - # Assuming the key_id is part of the api_key_info response. If not, adjust this. + assert "key_id" in api_key_info key_id = api_key_info["key_id"] + delete_response = client.delete( f"/api-key/{key_id}", headers={"Authorization": f"Bearer {API_KEY}"} ) @@ -71,8 +72,6 @@ def test_retrieve_default_brain(): def test_create_brain(): - # Generate a random UUID for brain_id - random_brain_id = str(uuid.uuid4()) # Generate a random name for the brain random_brain_name = "".join( @@ -81,7 +80,6 @@ def test_create_brain(): # Set up the request payload payload = { - "brain_id": random_brain_id, "name": random_brain_name, "status": "public", "model": "gpt-3.5-turbo-0613", @@ -153,6 +151,59 @@ def test_delete_all_brains(): assert delete_response.status_code == 200 +def test_delete_all_brains_and_get_default_brain(): + # First create a new brain + test_create_brain() + + # Now, retrieve all brains for the current user + response = client.get( + "/brains/", + headers={"Authorization": "Bearer " + API_KEY}, + ) + + # Assert that the response status code is 200 (HTTP OK) + assert response.status_code == 200 + assert len(response.json()["brains"]) > 0 + + test_delete_all_brains() + + # Now, retrieve all brains for the current user + response = client.get( + "/brains/", + headers={"Authorization": "Bearer " + API_KEY}, + ) + + # Assert that the response status code is 200 (HTTP OK) + assert response.status_code == 200 + assert len(response.json()["brains"]) == 0 + + # Get the default brain, it should create one if it doesn't exist + response = client.get( + "/brains/default/", + headers={"Authorization": "Bearer " + API_KEY}, + ) + + # Assert that the response status code is 200 (HTTP OK) + assert response.status_code == 200 + assert response.json()["name"] == "Default brain" + + # Now, retrieve all brains for the current user + response = client.get( + "/brains/", + headers={"Authorization": "Bearer " + API_KEY}, + ) + + # Assert that there is only one brain + response_data = response.json() + assert len(response_data) == 1 + for brain in response_data["brains"]: + assert "id" in brain + assert "name" in brain + + # Assert that the brain is the default brain + assert response_data["brains"][0]["name"] == "Default brain" + + def test_get_all_chats(): # Making a GET request to the /chat endpoint to retrieve all chats response = client.get( diff --git a/docs/docs/backend/brains/_category_.json b/docs/docs/backend/brains/_category_.json new file mode 100644 index 000000000..64943b0a1 --- /dev/null +++ b/docs/docs/backend/brains/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Brains", + "position": 3, + "link": { + "type": "generated-index", + "description": "What are brains?" + } +} + diff --git a/docs/docs/backend/brains/brains.md b/docs/docs/backend/brains/brains.md new file mode 100644 index 000000000..c37aa105a --- /dev/null +++ b/docs/docs/backend/brains/brains.md @@ -0,0 +1,27 @@ +--- +sidebar_position: 1 +--- + +# Introduction to Brains + +Quivr has a concept of "Brains". They are ring fenced bodies of information that can be used to provide context to Large Language Models (LLMs) to answer questions on a particular topic. + +LLMs are trained on a large variety of data but to answer a question on a specific topic or to be used to make deductions around a specific topic, they need to be supplied with the context of that topic. + +Quivr uses brains as an intuitive way to provide that context. + +When a brain is selected in Quivr, the LLM will be provided with only the context of that brain. This allows users to build brains for specific topics and then use them to answer questions about that topic. + +In the future there will be the functionality to share brains with other users of Quivr. + +## How to use Brains + +To use a brain, simply select the menu from using the Brain icon in the header at the top right of the Quivr interface. + +You can create a new brain by clicking the "Create Brain" button. You will be prompted to enter a name for the brain. If you wish you can also just use the default brain for your account. + +To switch to a different brain, simply click on the brain name in the menu and select the brain you wish to use. + +If you have not chosen a brain, you can assume that any documentation you upload will be added to the default brain. + +**Note: If you are having problems with the chat functionality, try selecting a brain from the menu. The default brain is not always selected automatically and you will need a brain selected to use the chat functionality.** diff --git a/docs/docs/backend/chains/_category_.json b/docs/docs/backend/chains/_category_.json new file mode 100644 index 000000000..f2784a275 --- /dev/null +++ b/docs/docs/backend/chains/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Chains", + "position": 4, + "link": { + "type": "generated-index", + "description": "What are chains?" + } +} + diff --git a/docs/docs/backend/chains/open_ai_functions_tree.jpg b/docs/docs/backend/chains/open_ai_functions_tree.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9a55e52a70b2bd404551916a2337f24a16140aa GIT binary patch literal 63726 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