From c9bfe1752d532c53c48a7c81e6c7420df1a5df5d Mon Sep 17 00:00:00 2001 From: Vasilije <8619304+Vasilije1990@users.noreply.github.com> Date: Thu, 5 Oct 2023 10:51:52 +0200 Subject: [PATCH] Resolve some of the PR comments --- level_3/auth/auth_utils.py | 20 +++++++++----------- level_3/buffer/buffer/buffer_base.py | 21 +++------------------ level_3/buffer/buffer/buffer_context.py | 4 +--- level_3/models/memory.py | 2 +- level_3/models/metadatas.py | 2 +- level_3/models/operation.py | 2 +- level_3/models/sessions.py | 2 +- level_3/models/test_output.py | 2 +- level_3/models/test_set.py | 2 +- level_3/models/user.py | 2 +- level_3/tests/semantic_tests.py | 8 +++++++- level_3/vectordb/basevectordb.py | 4 +--- 12 files changed, 28 insertions(+), 43 deletions(-) diff --git a/level_3/auth/auth_utils.py b/level_3/auth/auth_utils.py index 41a1b09c6..240fa1c2f 100644 --- a/level_3/auth/auth_utils.py +++ b/level_3/auth/auth_utils.py @@ -1,6 +1,7 @@ from cognito.JWTBearer import JWKS, JWTBearer, JWTAuthorizationCredentials - +import os +import boto3 import requests region = "eu-west-1" @@ -13,17 +14,14 @@ print(jwks) auth = JWTBearer(jwks) - -import requests - # Set the Cognito authentication endpoint URL auth = JWTBearer(jwks) # Set the user credentials -username = "" #needed -password = "" #needed +username = os.getenv("COGNITO_USERNAME") +password = os.getenv("COGNITO_PASSWORD") # Create the authentication payload payload = { @@ -36,10 +34,10 @@ payload = { token_endpoint = f"https://your-cognito-domain.auth.{region}.amazoncognito.com/oauth2/token" # Set the client credentials -client_id = "" #needed -client_secret = "" +client_id = os.getenv("AWS_CLIENT_ID") +client_secret = os.getenv("AWS_CLIENT_SECRET") + -import boto3 def authenticate_and_get_token(username: str, password: str, user_pool_id: str, app_client_id: str) -> None: client = boto3.client('cognito-idp') @@ -55,8 +53,8 @@ def authenticate_and_get_token(username: str, password: str, ) print("Log in success") - print("Access token:", resp['AuthenticationResult']['AccessToken']) - print("ID token:", resp['AuthenticationResult']['IdToken']) + # print("Access token:", resp['AuthenticationResult']['AccessToken']) + # print("ID token:", resp['AuthenticationResult']['IdToken']) authenticate_and_get_token(username, password, user_pool_id, client_id) \ No newline at end of file diff --git a/level_3/buffer/buffer/buffer_base.py b/level_3/buffer/buffer/buffer_base.py index 6ec4ec68f..e785e378e 100644 --- a/level_3/buffer/buffer/buffer_base.py +++ b/level_3/buffer/buffer/buffer_base.py @@ -1,17 +1,8 @@ - -# Make sure to install the following packages: dlt, langchain, duckdb, python-dotenv, openai, weaviate-client -import json -from typing import Any import logging +from typing import Any logging.basicConfig(level=logging.INFO) -import marvin -from deep_translator import GoogleTranslator from dotenv import load_dotenv -from langchain.agents import initialize_agent, AgentType -from langchain.output_parsers import PydanticOutputParser -from langchain.tools import tool -from pydantic import parse_obj_as load_dotenv() from langchain import OpenAI @@ -23,16 +14,10 @@ import tracemalloc tracemalloc.start() import os -from datetime import datetime -from langchain import PromptTemplate -from langchain.chains.openai_functions import create_structured_output_chain -from langchain.prompts import HumanMessagePromptTemplate, ChatPromptTemplate -from pydantic import BaseModel, Field -from dotenv import load_dotenv -from langchain.schema import SystemMessage, HumanMessage + import uuid -load_dotenv() + diff --git a/level_3/buffer/buffer/buffer_context.py b/level_3/buffer/buffer/buffer_context.py index fc21d7ddc..9a3155cf9 100644 --- a/level_3/buffer/buffer/buffer_context.py +++ b/level_3/buffer/buffer/buffer_context.py @@ -1,5 +1,4 @@ -# Make sure to install the following packages: dlt, langchain, duckdb, python-dotenv, openai, weaviate-client import json from typing import Any import logging @@ -7,13 +6,12 @@ import logging logging.basicConfig(level=logging.INFO) import marvin from deep_translator import GoogleTranslator -from dotenv import load_dotenv + from langchain.agents import initialize_agent, AgentType from langchain.output_parsers import PydanticOutputParser from langchain.tools import tool from pydantic import parse_obj_as -load_dotenv() from langchain import OpenAI from langchain.chat_models import ChatOpenAI from typing import Optional, Dict, List, Union diff --git a/level_3/models/memory.py b/level_3/models/memory.py index b5a4db0b2..b326da7e6 100644 --- a/level_3/models/memory.py +++ b/level_3/models/memory.py @@ -13,7 +13,7 @@ class MemoryModel(Base): id = Column(String, primary_key=True) user_id = Column(String, ForeignKey('users.id'), index=True) created_at = Column(DateTime, default=datetime.utcnow) - updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + updated_at = Column(DateTime, onupdate=datetime.utcnow) methods_list = Column(String , nullable=True) attributes_list = Column(String, nullable=True) diff --git a/level_3/models/metadatas.py b/level_3/models/metadatas.py index de401444e..7d2716cba 100644 --- a/level_3/models/metadatas.py +++ b/level_3/models/metadatas.py @@ -17,7 +17,7 @@ class MetaDatas(Base): contract_metadata = Column(String, nullable=False) memory_id = Column(String, ForeignKey('memories.id'), index=True) created_at = Column(DateTime, default=datetime.utcnow) - updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + updated_at = Column(DateTime, onupdate=datetime.utcnow) user = relationship("User", back_populates="metadatas") memory = relationship("MemoryModel", back_populates="metadatas") diff --git a/level_3/models/operation.py b/level_3/models/operation.py index d91bae11f..030e13bae 100644 --- a/level_3/models/operation.py +++ b/level_3/models/operation.py @@ -14,7 +14,7 @@ class Operation(Base): id = Column(String, primary_key=True) session_id = Column(String, ForeignKey('sessions.id'), index=True) created_at = Column(DateTime, default=datetime.utcnow) - updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + updated_at = Column(DateTime, onupdate=datetime.utcnow) session = relationship("Session", back_populates="operations") diff --git a/level_3/models/sessions.py b/level_3/models/sessions.py index d727bc4b2..49be0436e 100644 --- a/level_3/models/sessions.py +++ b/level_3/models/sessions.py @@ -14,7 +14,7 @@ class Session(Base): id = Column(String, primary_key=True) user_id = Column(String, ForeignKey('users.id'), index=True) created_at = Column(DateTime, default=datetime.utcnow) - updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + updated_at = Column(DateTime, onupdate=datetime.utcnow) user = relationship("User", back_populates="sessions") operations = relationship("Operation", back_populates="session", cascade="all, delete-orphan") diff --git a/level_3/models/test_output.py b/level_3/models/test_output.py index cd1dfeb97..31ae6ccde 100644 --- a/level_3/models/test_output.py +++ b/level_3/models/test_output.py @@ -14,7 +14,7 @@ class TestOutput(Base): id = Column(String, primary_key=True) test_set_id = Column(String, ForeignKey('test_sets.id'), index=True) created_at = Column(DateTime, default=datetime.utcnow) - updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + updated_at = Column(DateTime, onupdate=datetime.utcnow) test_set = relationship("TestSet", back_populates="test_outputs") diff --git a/level_3/models/test_set.py b/level_3/models/test_set.py index 4f4b50dc1..12267943b 100644 --- a/level_3/models/test_set.py +++ b/level_3/models/test_set.py @@ -14,7 +14,7 @@ class TestSet(Base): id = Column(String, primary_key=True) user_id = Column(String, ForeignKey('users.id'), index=True) created_at = Column(DateTime, default=datetime.utcnow) - updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + updated_at = Column(DateTime, onupdate=datetime.utcnow) user = relationship("User", back_populates="test_sets") test_outputs = relationship("TestOutput", back_populates="test_set", cascade="all, delete-orphan") diff --git a/level_3/models/user.py b/level_3/models/user.py index 4100c47b2..2a30e13ef 100644 --- a/level_3/models/user.py +++ b/level_3/models/user.py @@ -15,7 +15,7 @@ class User(Base): id = Column(String, primary_key=True) name = Column(String, nullable=False, unique=True, index=True) created_at = Column(DateTime, default=datetime.utcnow) - updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + updated_at = Column(DateTime, onupdate=datetime.utcnow) memories = relationship("MemoryModel", back_populates="user", cascade="all, delete-orphan") sessions = relationship("Session", back_populates="user", cascade="all, delete-orphan") diff --git a/level_3/tests/semantic_tests.py b/level_3/tests/semantic_tests.py index ba957dae7..c21e07b4b 100644 --- a/level_3/tests/semantic_tests.py +++ b/level_3/tests/semantic_tests.py @@ -9,7 +9,13 @@ from deepeval.metrics.overall_score import assert_overall_score import json from deepeval.metrics.overall_score import OverallScoreMetric -# Write a sample ChatGPT function +# Needs to pass a QA test set + +# Needs to separately fetch QA test set from DB + +# Needs to have a function to run the tests that contain test set and store results in the DB + + async def main(): diff --git a/level_3/vectordb/basevectordb.py b/level_3/vectordb/basevectordb.py index 444fe8df6..d4fcb710e 100644 --- a/level_3/vectordb/basevectordb.py +++ b/level_3/vectordb/basevectordb.py @@ -27,17 +27,15 @@ import tracemalloc tracemalloc.start() -import os from datetime import datetime from langchain.embeddings.openai import OpenAIEmbeddings -from dotenv import load_dotenv + from langchain.schema import Document import uuid import weaviate from marshmallow import Schema, fields import json -load_dotenv() OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "") marvin.settings.openai.api_key = os.environ.get("OPENAI_API_KEY")