diff --git a/.env.template b/.env.template index bfa1122b3..e7eff9d51 100644 --- a/.env.template +++ b/.env.template @@ -9,6 +9,6 @@ POSTGRES_HOST = localhost POSTGRES_HOST_DOCKER = postgres SEGMENT_KEY = Etl4WJwzOkeDPAjaOXOMgyU16hO7mV7B COG_ARCH_DIR = cognitive_architecture - GRAPH_DB_URL = - GRAPH_DB_PW = - GRAPH_DB_USER = +GRAPH_DB_URL = +GRAPH_DB_PW = +GRAPH_DB_USER = diff --git a/cognitive_architecture/database/postgres/database_crud.py b/cognitive_architecture/database/postgres/database_crud.py index 3f713acb0..5807de460 100644 --- a/cognitive_architecture/database/postgres/database_crud.py +++ b/cognitive_architecture/database/postgres/database_crud.py @@ -34,16 +34,24 @@ async def add_entity(session, entity): return "Successfully added entity" - +def update_entity_graph_summary(session, model, entity_id, new_value): + with session_scope(session) as s: + # Retrieve the entity from the database + entity = s.query(model).filter_by(id=entity_id).first() + if entity: + entity.graph_summary = new_value + s.commit() + return "Successfully updated entity" + else: + return "Entity not found" async def update_entity(session, model, entity_id, new_value): async with session_scope(session) as s: # Retrieve the entity from the database entity = await s.get(model, entity_id) if entity: - # Update the relevant column and 'updated_at' will be automatically updated entity.operation_status = new_value - return "Successfully updated entity" + await s.commit() else: return "Entity not found" diff --git a/cognitive_architecture/database/vectordb/vectordb.py b/cognitive_architecture/database/vectordb/vectordb.py index 4b988d223..0b4c759ce 100644 --- a/cognitive_architecture/database/vectordb/vectordb.py +++ b/cognitive_architecture/database/vectordb/vectordb.py @@ -151,6 +151,7 @@ class WeaviateVectorDB(VectorDB): # Update Weaviate memories here if namespace is None: namespace = self.namespace + params['user_id'] = self.user_id retriever = self.init_weaviate(embeddings=OpenAIEmbeddings(),namespace = namespace, retriever_type="single_document_context") if loader_settings: # Assuming _document_loader returns a list of documents @@ -173,6 +174,7 @@ class WeaviateVectorDB(VectorDB): for doc in documents[0]: chunk_count += 1 params['chunk_order'] = chunk_count + # document_to_load = self._stuct(observation, params, metadata_schema_class) logging.info("Loading document with defautl loader settings %s", str(doc)) @@ -202,20 +204,7 @@ class WeaviateVectorDB(VectorDB): search_type = 'hybrid' logging.info("The search type is s%", search_type) - if search_type == 'summary': - from weaviate.classes import Filter - client = weaviate.connect_to_wcs( - cluster_url=config.weaviate_url, - auth_credentials=weaviate.AuthApiKey(config.weaviate_api_key) - ) - summary_collection = client.collections.get(self.namespace) - response = summary_collection.query.fetch_objects( - filters=Filter("user_id").equal(self.user_id) & - Filter("chunk_order").less_than(25), - limit=15 - ) - return response if not namespace: namespace = self.namespace @@ -266,6 +255,38 @@ class WeaviateVectorDB(VectorDB): .with_autocut(n_of_observations) .do() ) + elif search_type == 'summary': + filter_object = { + "operator": "And", + "operands": [ + { + "path": ["user_id"], + "operator": "Equal", + "valueText": self.user_id, + }, + { + "path": ["chunk_order"], + "operator": "LessThan", + "valueNumber": 30, + }, + ] + } + base_query = client.query.get( + namespace, list(list_objects_of_class(namespace, client.schema.get())) + ).with_additional( + ["id", "creationTimeUnix", "lastUpdateTimeUnix", "score", 'distance'] + ).with_where(filter_object).with_limit(30) + query_output = ( + base_query + .do() + ) + # from weaviate.classes import Filter + # client = weaviate.connect_to_wcs( + # cluster_url=config.weaviate_url, + # auth_credentials=weaviate.AuthApiKey(config.weaviate_api_key) + # ) + + return query_output elif search_type == 'generate': generate_prompt = kwargs.get('generate_prompt', "") query_output = ( @@ -293,6 +314,8 @@ class WeaviateVectorDB(VectorDB): return query_output + + async def delete_memories(self, namespace:str, params: dict = None): if namespace is None: namespace = self.namespace diff --git a/cognitive_architecture/vectorstore_manager.py b/cognitive_architecture/vectorstore_manager.py index 89a66fc4c..25c0d8084 100644 --- a/cognitive_architecture/vectorstore_manager.py +++ b/cognitive_architecture/vectorstore_manager.py @@ -170,7 +170,7 @@ class Memory: self.OPENAI_API_KEY = config.openai_key @classmethod - async def create_memory(cls, user_id: str, session, job_id, memory_label:str, **kwargs): + async def create_memory(cls, user_id: str, session, job_id:str=None, memory_label:str=None, **kwargs): """ Class method that acts as a factory method for creating Memory instances. It performs necessary DB checks or updates before instance creation. diff --git a/main.py b/main.py index ac0492f95..cc98eb8ad 100644 --- a/main.py +++ b/main.py @@ -5,7 +5,7 @@ from cognitive_architecture.database.postgres.models.memory import MemoryModel from cognitive_architecture.classifiers.classifier import classify_documents import os from dotenv import load_dotenv -from cognitive_architecture.database.postgres.database_crud import session_scope +from cognitive_architecture.database.postgres.database_crud import session_scope, update_entity_graph_summary from cognitive_architecture.database.postgres.database import AsyncSessionLocal from cognitive_architecture.utils import generate_letter_uuid import instructor @@ -38,6 +38,7 @@ from sqlalchemy.future import select from cognitive_architecture.utils import get_document_names, generate_letter_uuid, get_memory_name_by_doc_id, get_unsumarized_vector_db_namespace, get_vectordb_namespace, get_vectordb_document_name async def fetch_document_vectordb_namespace(session: AsyncSession, user_id: str, namespace_id:str): + logging.info("user id is", user_id) memory = await Memory.create_memory(user_id, session, namespace=namespace_id, memory_label=namespace_id) @@ -47,8 +48,9 @@ async def fetch_document_vectordb_namespace(session: AsyncSession, user_id: str, await memory.manage_memory_attributes(existing_user) print("Namespace id is %s", namespace_id) await memory.add_dynamic_memory_class(namespace_id.lower(), namespace_id) + namespace_class = namespace_id + "_class" - dynamic_memory_class = getattr(memory, namespace_id.lower(), None) + dynamic_memory_class = getattr(memory, namespace_class.lower(), None) methods_to_add = ["add_memories", "fetch_memories", "delete_memories"] @@ -62,6 +64,7 @@ async def fetch_document_vectordb_namespace(session: AsyncSession, user_id: str, print("Available memory classes:", await memory.list_memory_classes()) result = await memory.dynamic_method_call(dynamic_memory_class, 'fetch_memories', observation="placeholder", search_type="summary") + logging.info("Result is", result) return result, namespace_id @@ -174,78 +177,36 @@ async def user_query_to_graph_db(session: AsyncSession, user_id: str, query_inpu -async def add_documents_to_graph_db(session: AsyncSession, user_id: str= None, loader_settings:dict=None, stupid_local_testing_flag=False): #clean this up Vasilije, don't be sloppy +async def add_documents_to_graph_db(session: AsyncSession, user_id: str= None, loader_settings:dict=None): """""" + try: + # await update_document_vectordb_namespace(postgres_session, user_id) + memory_names, docs = await get_unsumarized_vector_db_namespace(session, user_id) - - # try: - # await update_document_vectordb_namespace(postgres_session, user_id) - memory_names, docs = await get_unsumarized_vector_db_namespace(session, user_id) - logging.info("Memory names are", memory_names) - logging.info("Docs are", docs) - for doc, memory_name in zip(docs, memory_names): - doc_name, doc_id = doc - # if stupid_local_testing_flag: - # classification = [{ - # "DocumentCategory": "Literature", - # "Title": "Bartleby, the Scrivener", - # "Summary": "The document is a narrative about an enigmatic copyist named Bartleby who works in a law office. Despite initially being a diligent employee, Bartleby begins to refuse tasks with the phrase 'I would prefer not to' and eventually stops working altogether. His passive resistance and mysterious behavior confound the narrator, who is also his employer. Bartleby's refusal to leave the office leads to various complications, and he is eventually taken to the Tombs as a vagrant. The story ends with Bartleby's death and the revelation that he may have previously worked in the Dead Letter Office, which adds a layer of poignancy to his character.", - # "d_id": "2a5c571f-bad6-4649-a4ac-36e4bb4f34cd" - # }, - # { - # "DocumentCategory": "Science", - # "Title": "The Mysterious World of Quantum Mechanics", - # "Summary": "This article delves into the fundamentals of quantum mechanics, exploring its paradoxical nature where particles can exist in multiple states simultaneously. It discusses key experiments and theories that have shaped our understanding of the quantum world, such as the double-slit experiment, Schrödinger's cat, and quantum entanglement. The piece also touches upon the implications of quantum mechanics for future technology, including quantum computing and cryptography.", - # "d_id": "f4e2c3b1-4567-8910-11a2-b3c4d5e6f7g8" - # }, - # { - # "DocumentCategory": "History", - # "Title": "The Rise and Fall of the Roman Empire", - # "Summary": "This essay provides an overview of the Roman Empire's history, from its foundation to its eventual decline. It examines the political, social, and economic factors that contributed to the empire's expansion and success, as well as those that led to its downfall. Key events and figures such as Julius Caesar, the Punic Wars, and the transition from republic to empire are discussed. The essay concludes with an analysis of the empire's lasting impact on Western civilization.", - # "d_id": "8h7g6f5e-4d3c-2b1a-09e8-d7c6b5a4f3e2" - # }, - # { - # "DocumentCategory": "Technology", - # "Title": "The Future of Artificial Intelligence", - # "Summary": "This report explores the current state and future prospects of artificial intelligence (AI). It covers the evolution of AI from simple algorithms to advanced neural networks capable of deep learning. The document discusses various applications of AI in industries such as healthcare, finance, and transportation, as well as ethical considerations and potential risks associated with AI development. Predictions for future advancements and their societal impact are also presented.", - # "d_id": "3c2b1a09-d8e7-f6g5-h4i3-j1k2l3m4n5o6" - # }, - # { - # "DocumentCategory": "Economics", - # "Title": "Global Economic Trends and Predictions", - # "Summary": "This analysis examines major trends in the global economy, including the rise of emerging markets, the impact of technology on job markets, and shifts in international trade. It delves into the economic effects of recent global events, such as pandemics and geopolitical conflicts, and discusses how these might shape future economic policies and practices. The document provides predictions for economic growth, inflation rates, and currency fluctuations in the coming years.", - # "d_id": "7k6j5h4g-3f2e-1d0c-b8a9-m7n6o5p4q3r2" - # } - # ] - # for classification in classification: - # - # neo4j_graph_db = Neo4jGraphDB(url=config.graph_database_url, username=config.graph_database_username, - # password=config.graph_database_password) - # rs = neo4j_graph_db.create_document_node_cypher(classification, user_id) - # neo4j_graph_db.query(rs, classification) - # - # # select doc from the store - # neo4j_graph_db.update_document_node_with_namespace(user_id, vectordb_namespace=memory_name, document_id=doc_id) - # else: - try: + logging.info("Docs are", docs) + for doc, memory_name in zip(docs, memory_names): + logging.info("Memory names are", memory_name) classification_content = await fetch_document_vectordb_namespace(session, user_id, memory_name) - except: - classification_content = "None" - # - # classification = await classify_documents(doc_name, document_id =doc_id, content=classification_content) - # - # logging.info("Classification is", str(classification)) - # neo4j_graph_db = Neo4jGraphDB(url=config.graph_database_url, username=config.graph_database_username, - # password=config.graph_database_password) - # rs = neo4j_graph_db.create_document_node_cypher(classification, user_id) - # neo4j_graph_db.query(rs, classification) - # - # # select doc from the store - # neo4j_graph_db.update_document_node_with_namespace(user_id, vectordb_namespace=memory_name, - # document_id=doc_id) - await update_entity(session, DocsModel, doc_id, True) - # except: - # pass + logging.info("Classification content is", classification_content) + + retrieval_chunks = [item['text'] for item in classification_content[0]['data']['Get'][memory_name]] + # Concatenating the extracted text values + concatenated_retrievals = ' '.join(retrieval_chunks) + print(concatenated_retrievals) + doc_name, doc_id = doc + classification = await classify_documents(doc_name, document_id =doc_id, content=concatenated_retrievals) + + logging.info("Classification is", str(classification)) + neo4j_graph_db = Neo4jGraphDB(url=config.graph_database_url, username=config.graph_database_username, + password=config.graph_database_password) + rs = neo4j_graph_db.create_document_node_cypher(classification, user_id) + neo4j_graph_db.query(rs, classification) + neo4j_graph_db.update_document_node_with_namespace(user_id, vectordb_namespace=memory_name, + document_id=doc_id) + logging.info("hERE IS THE OUT2323", doc_id) + await update_entity_graph_summary(session, DocsModel, doc_id, True) + except Exception as e: + return e class ResponseString(BaseModel): response: str = Field(..., default_factory=list) @@ -368,30 +329,31 @@ async def main(): user_id = "user" async with session_scope(AsyncSessionLocal()) as session: + await update_entity(session, DocsModel, "8cd9a022-5a7a-4af5-815a-f988415536ae", True) # out = await get_vectordb_namespace(session, user_id) - params = { - "version": "1.0", - "agreement_id": "AG123456", - "privacy_policy": "https://example.com/privacy", - "terms_of_service": "https://example.com/terms", - "format": "json", - "schema_version": "1.1", - "checksum": "a1b2c3d4e5f6", - "owner": "John Doe", - "license": "MIT", - "validity_start": "2023-08-01", - "validity_end": "2024-07-31", - } - loader_settings = { - "format": "PDF", - "source": "DEVICE", - "path": [".data"], - "strategy": "SUMMARY", - } - await load_documents_to_vectorstore(session, user_id, loader_settings=loader_settings) - await user_query_to_graph_db(session, user_id, "I walked in the forest yesterday and added to my list I need to buy some milk in the store and get a summary from a classical book i read yesterday") - await add_documents_to_graph_db(session, user_id, loader_settings=loader_settings) - await user_context_enrichment(session, user_id, query="Tell me about the book I read yesterday") + # params = { + # "version": "1.0", + # "agreement_id": "AG123456", + # "privacy_policy": "https://example.com/privacy", + # "terms_of_service": "https://example.com/terms", + # "format": "json", + # "schema_version": "1.1", + # "checksum": "a1b2c3d4e5f6", + # "owner": "John Doe", + # "license": "MIT", + # "validity_start": "2023-08-01", + # "validity_end": "2024-07-31", + # } + # loader_settings = { + # "format": "PDF", + # "source": "DEVICE", + # "path": [".data"], + # "strategy": "SUMMARY", + # } + # await load_documents_to_vectorstore(session, user_id, loader_settings=loader_settings) + # await user_query_to_graph_db(session, user_id, "I walked in the forest yesterday and added to my list I need to buy some milk in the store and get a summary from a classical book i read yesterday") + # await add_documents_to_graph_db(session, user_id, loader_settings=loader_settings) + # await user_context_enrichment(session, user_id, query="Tell me about the book I read yesterday") if __name__ == "__main__": diff --git a/poetry.lock b/poetry.lock index ab48d70bd..53bf2c4af 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1010,13 +1010,13 @@ vision = ["Pillow (>=6.2.1)"] [[package]] name = "deepeval" -version = "0.20.37" +version = "0.20.36" description = "The open-source evaluation framework for LLMs." optional = false python-versions = "*" files = [ - {file = "deepeval-0.20.37-py3-none-any.whl", hash = "sha256:9bf243b7b89a4033b417c2c256b7c3e576a7b872fda8a75dc721848850143d4c"}, - {file = "deepeval-0.20.37.tar.gz", hash = "sha256:e2ea8d0b470b9d883b57b84ba807bff7a0f82f742db1a32d0f3c397909f9addb"}, + {file = "deepeval-0.20.36-py3-none-any.whl", hash = "sha256:54bf59025b7128663a6311deae523f82b62da5f3b049e875a4c5ad82af09db15"}, + {file = "deepeval-0.20.36.tar.gz", hash = "sha256:8737b424656ffb70cb17fb2b578e69a5295c143c83fcb74a939d3386fcbc1f60"}, ] [package.dependencies] @@ -1025,7 +1025,7 @@ langchain = "*" nltk = "3.8.1" pandas = "*" portalocker = "*" -protobuf = "3.20.3" +protobuf = "4.21.6" pydantic = "*" pytest = "*" pytest-xdist = "*" @@ -1813,6 +1813,74 @@ files = [ [package.extras] protobuf = ["grpcio-tools (>=1.60.0)"] +[[package]] +name = "grpcio-tools" +version = "1.60.0" +description = "Protobuf code generator for gRPC" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpcio-tools-1.60.0.tar.gz", hash = "sha256:ed30499340228d733ff69fcf4a66590ed7921f94eb5a2bf692258b1280b9dac7"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:6807b7a3f3e6e594566100bd7fe04a2c42ce6d5792652677f1aaf5aa5adaef3d"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:857c5351e9dc33a019700e171163f94fcc7e3ae0f6d2b026b10fda1e3c008ef1"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:ec0e401e9a43d927d216d5169b03c61163fb52b665c5af2fed851357b15aef88"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e68dc4474f30cad11a965f0eb5d37720a032b4720afa0ec19dbcea2de73b5aae"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbf0ed772d2ae7e8e5d7281fcc00123923ab130b94f7a843eee9af405918f924"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c771b19dce2bfe06899247168c077d7ab4e273f6655d8174834f9a6034415096"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e5614cf0960456d21d8a0f4902e3e5e3bcacc4e400bf22f196e5dd8aabb978b7"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-win32.whl", hash = "sha256:87cf439178f3eb45c1a889b2e4a17cbb4c450230d92c18d9c57e11271e239c55"}, + {file = "grpcio_tools-1.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:687f576d7ff6ce483bc9a196d1ceac45144e8733b953620a026daed8e450bc38"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:2a8a758701f3ac07ed85f5a4284c6a9ddefcab7913a8e552497f919349e72438"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:7c1cde49631732356cb916ee1710507967f19913565ed5f9991e6c9cb37e3887"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:d941749bd8dc3f8be58fe37183143412a27bec3df8482d5abd6b4ec3f1ac2924"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9ee35234f1da8fba7ddbc544856ff588243f1128ea778d7a1da3039be829a134"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8f7a5094adb49e85db13ea3df5d99a976c2bdfd83b0ba26af20ebb742ac6786"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:24c4ead4a03037beaeb8ef2c90d13d70101e35c9fae057337ed1a9144ef10b53"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:811abb9c4fb6679e0058dfa123fb065d97b158b71959c0e048e7972bbb82ba0f"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-win32.whl", hash = "sha256:bd2a17b0193fbe4793c215d63ce1e01ae00a8183d81d7c04e77e1dfafc4b2b8a"}, + {file = "grpcio_tools-1.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:b22b1299b666eebd5752ba7719da536075eae3053abcf2898b65f763c314d9da"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:74025fdd6d1cb7ba4b5d087995339e9a09f0c16cf15dfe56368b23e41ffeaf7a"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:5a907a4f1ffba86501b2cdb8682346249ea032b922fc69a92f082ba045cca548"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:1fbb9554466d560472f07d906bfc8dcaf52f365c2a407015185993e30372a886"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f10ef47460ce3c6fd400f05fe757b90df63486c9b84d1ecad42dcc5f80c8ac14"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:321b18f42a70813545e416ddcb8bf20defa407a8114906711c9710a69596ceda"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:081336d8258f1a56542aa8a7a5dec99a2b38d902e19fbdd744594783301b0210"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:addc9b23d6ff729d9f83d4a2846292d4c84f5eb2ec38f08489a6a0d66ac2b91e"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-win32.whl", hash = "sha256:e87cabac7969bdde309575edc2456357667a1b28262b2c1f12580ef48315b19d"}, + {file = "grpcio_tools-1.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:e70d867c120d9849093b0ac24d861e378bc88af2552e743d83b9f642d2caa7c2"}, + {file = "grpcio_tools-1.60.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:559ce714fe212aaf4abbe1493c5bb8920def00cc77ce0d45266f4fd9d8b3166f"}, + {file = "grpcio_tools-1.60.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:7a5263a0f2ddb7b1cfb2349e392cfc4f318722e0f48f886393e06946875d40f3"}, + {file = "grpcio_tools-1.60.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:18976684a931ca4bcba65c78afa778683aefaae310f353e198b1823bf09775a0"}, + {file = "grpcio_tools-1.60.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5c519a0d4ba1ab44a004fa144089738c59278233e2010b2cf4527dc667ff297"}, + {file = "grpcio_tools-1.60.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6170873b1e5b6580ebb99e87fb6e4ea4c48785b910bd7af838cc6e44b2bccb04"}, + {file = "grpcio_tools-1.60.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:fb4df80868b3e397d5fbccc004c789d2668b622b51a9d2387b4c89c80d31e2c5"}, + {file = "grpcio_tools-1.60.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dba6e32c87b4af29b5f475fb2f470f7ee3140bfc128644f17c6c59ddeb670680"}, + {file = "grpcio_tools-1.60.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f610384dee4b1ca705e8da66c5b5fe89a2de3d165c5282c3d1ddf40cb18924e4"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:4041538f55aad5b3ae7e25ab314d7995d689e968bfc8aa169d939a3160b1e4c6"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:2fb4cf74bfe1e707cf10bc9dd38a1ebaa145179453d150febb121c7e9cd749bf"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:2fd1671c52f96e79a2302c8b1c1f78b8a561664b8b3d6946f20d8f1cc6b4225a"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd1e68c232fe01dd5312a8dbe52c50ecd2b5991d517d7f7446af4ba6334ba872"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17a32b3da4fc0798cdcec0a9c974ac2a1e98298f151517bf9148294a3b1a5742"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9970d384fb0c084b00945ef57d98d57a8d32be106d8f0bd31387f7cbfe411b5b"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5ce6bbd4936977ec1114f2903eb4342781960d521b0d82f73afedb9335251f6f"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-win32.whl", hash = "sha256:2e00de389729ca8d8d1a63c2038703078a887ff738dc31be640b7da9c26d0d4f"}, + {file = "grpcio_tools-1.60.0-cp38-cp38-win_amd64.whl", hash = "sha256:6192184b1f99372ff1d9594bd4b12264e3ff26440daba7eb043726785200ff77"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:eae27f9b16238e2aaee84c77b5923c6924d6dccb0bdd18435bf42acc8473ae1a"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:b96981f3a31b85074b73d97c8234a5ed9053d65a36b18f4a9c45a2120a5b7a0a"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:1748893efd05cf4a59a175d7fa1e4fbb652f4d84ccaa2109f7869a2be48ed25e"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a6fe752205caae534f29fba907e2f59ff79aa42c6205ce9a467e9406cbac68c"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3456df087ea61a0972a5bc165aed132ed6ddcc63f5749e572f9fff84540bdbad"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f3d916606dcf5610d4367918245b3d9d8cd0d2ec0b7043d1bbb8c50fe9815c3a"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fc01bc1079279ec342f0f1b6a107b3f5dc3169c33369cf96ada6e2e171f74e86"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-win32.whl", hash = "sha256:2dd01257e4feff986d256fa0bac9f56de59dc735eceeeb83de1c126e2e91f653"}, + {file = "grpcio_tools-1.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:1b93ae8ffd18e9af9a965ebca5fa521e89066267de7abdde20721edc04e42721"}, +] + +[package.dependencies] +grpcio = ">=1.60.0" +protobuf = ">=4.21.6,<5.0dev" +setuptools = "*" + [[package]] name = "gunicorn" version = "20.1.0" @@ -3671,33 +3739,25 @@ murmurhash = ">=0.28.0,<1.1.0" [[package]] name = "protobuf" -version = "3.20.3" -description = "Protocol Buffers" +version = "4.21.6" +description = "" optional = false python-versions = ">=3.7" files = [ - {file = "protobuf-3.20.3-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99"}, - {file = "protobuf-3.20.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e"}, - {file = "protobuf-3.20.3-cp310-cp310-win32.whl", hash = "sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c"}, - {file = "protobuf-3.20.3-cp310-cp310-win_amd64.whl", hash = "sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7"}, - {file = "protobuf-3.20.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469"}, - {file = "protobuf-3.20.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4"}, - {file = "protobuf-3.20.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4"}, - {file = "protobuf-3.20.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454"}, - {file = "protobuf-3.20.3-cp37-cp37m-win32.whl", hash = "sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905"}, - {file = "protobuf-3.20.3-cp37-cp37m-win_amd64.whl", hash = "sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c"}, - {file = "protobuf-3.20.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7"}, - {file = "protobuf-3.20.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee"}, - {file = "protobuf-3.20.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050"}, - {file = "protobuf-3.20.3-cp38-cp38-win32.whl", hash = "sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86"}, - {file = "protobuf-3.20.3-cp38-cp38-win_amd64.whl", hash = "sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9"}, - {file = "protobuf-3.20.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b"}, - {file = "protobuf-3.20.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b"}, - {file = "protobuf-3.20.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402"}, - {file = "protobuf-3.20.3-cp39-cp39-win32.whl", hash = "sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480"}, - {file = "protobuf-3.20.3-cp39-cp39-win_amd64.whl", hash = "sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7"}, - {file = "protobuf-3.20.3-py2.py3-none-any.whl", hash = "sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db"}, - {file = "protobuf-3.20.3.tar.gz", hash = "sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2"}, + {file = "protobuf-4.21.6-cp310-abi3-win32.whl", hash = "sha256:49f88d56a9180dbb7f6199c920f5bb5c1dd0172f672983bb281298d57c2ac8eb"}, + {file = "protobuf-4.21.6-cp310-abi3-win_amd64.whl", hash = "sha256:7a6cc8842257265bdfd6b74d088b829e44bcac3cca234c5fdd6052730017b9ea"}, + {file = "protobuf-4.21.6-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:ba596b9ffb85c909fcfe1b1a23136224ed678af3faf9912d3fa483d5f9813c4e"}, + {file = "protobuf-4.21.6-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:4143513c766db85b9d7c18dbf8339673c8a290131b2a0fe73855ab20770f72b0"}, + {file = "protobuf-4.21.6-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:b6cea204865595a92a7b240e4b65bcaaca3ad5d2ce25d9db3756eba06041138e"}, + {file = "protobuf-4.21.6-cp37-cp37m-win32.whl", hash = "sha256:9666da97129138585b26afcb63ad4887f602e169cafe754a8258541c553b8b5d"}, + {file = "protobuf-4.21.6-cp37-cp37m-win_amd64.whl", hash = "sha256:308173d3e5a3528787bb8c93abea81d5a950bdce62840d9760effc84127fb39c"}, + {file = "protobuf-4.21.6-cp38-cp38-win32.whl", hash = "sha256:aa29113ec901281f29d9d27b01193407a98aa9658b8a777b0325e6d97149f5ce"}, + {file = "protobuf-4.21.6-cp38-cp38-win_amd64.whl", hash = "sha256:8f9e60f7d44592c66e7b332b6a7b4b6e8d8b889393c79dbc3a91f815118f8eac"}, + {file = "protobuf-4.21.6-cp39-cp39-win32.whl", hash = "sha256:80e6540381080715fddac12690ee42d087d0d17395f8d0078dfd6f1181e7be4c"}, + {file = "protobuf-4.21.6-cp39-cp39-win_amd64.whl", hash = "sha256:77b355c8604fe285536155286b28b0c4cbc57cf81b08d8357bf34829ea982860"}, + {file = "protobuf-4.21.6-py2.py3-none-any.whl", hash = "sha256:07a0bb9cc6114f16a39c866dc28b6e3d96fa4ffb9cc1033057412547e6e75cb9"}, + {file = "protobuf-4.21.6-py3-none-any.whl", hash = "sha256:c7c864148a237f058c739ae7a05a2b403c0dfa4ce7d1f3e5213f352ad52d57c6"}, + {file = "protobuf-4.21.6.tar.gz", hash = "sha256:6b1040a5661cd5f6e610cbca9cfaa2a17d60e2bb545309bc1b278bb05be44bdd"}, ] [[package]] @@ -6343,24 +6403,23 @@ wasabi = ">=0.9.1,<1.2.0" [[package]] name = "weaviate-client" -version = "4.0b1" +version = "4.4b1" description = "A python native Weaviate client" optional = false python-versions = ">=3.8" files = [ - {file = "weaviate-client-4.0b1.tar.gz", hash = "sha256:db7ab8f50ab0a83f52d63bf0a9f9179bc4f47620393a2e2da528a0c6373f75b3"}, - {file = "weaviate_client-4.0b1-py3-none-any.whl", hash = "sha256:a453d26026427e186e49d9119017749e90c037c47526798693118632dfcf0554"}, + {file = "weaviate-client-4.4b1.tar.gz", hash = "sha256:f0b766dcf9230e798b8f97172a428510fe1e48bd9de32fd2167f8550a1ad5910"}, + {file = "weaviate_client-4.4b1-py3-none-any.whl", hash = "sha256:7bf8bf58b191db6605bd62aca9f9fa8bfe3447a4570aaaa53af34004efb65ce2"}, ] [package.dependencies] authlib = ">=1.2.1,<2.0.0" +grpcio = ">=1.57.0,<2.0.0" +grpcio-tools = ">=1.57.0,<2.0.0" pydantic = ">=2.1.1,<3.0.0" requests = ">=2.30.0,<3.0.0" validators = ">=0.21.2,<1.0.0" -[package.extras] -grpc = ["grpcio (>=1.57.0,<2.0.0)", "grpcio-tools (>=1.57.0,<2.0.0)"] - [[package]] name = "werkzeug" version = "3.0.1" @@ -6723,4 +6782,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "1794d169cd2ebd8d53e87f72475704b2eb2aadf24878f4677bdd0df87e7db0e1" +content-hash = "b32ccb9319a4411b11b4aa2fde21b354ea93488e4bd6057c62847baf47cf7db6" diff --git a/pyproject.toml b/pyproject.toml index 18f80ad3d..4df59ca4a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ pypdf = "^3.12.0" fastjsonschema = "^2.18.0" marvin = "^1.3.0" dlt = { version ="^0.3.8", extras = ["duckdb"]} -weaviate-client = "4.*" +weaviate-client = "4.4b1" python-multipart = "^0.0.6" deepeval = "^0.20.12" pymupdf = "^1.23.3"