From 0cb5eb56e125d137565d16fcabcf1c5486ca050e Mon Sep 17 00:00:00 2001 From: David Emmanuel Date: Wed, 9 Oct 2024 17:25:32 +0100 Subject: [PATCH 1/3] perf: cache OpenAI model --- main.py | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/main.py b/main.py index 8cd3101..aec9949 100644 --- a/main.py +++ b/main.py @@ -14,28 +14,33 @@ from dotenv import load_dotenv load_dotenv() -# Configure OpenAI API using Azure OpenAI -openai.api_key = os.getenv("API_KEY") -openai.api_base = os.getenv("ENDPOINT") -openai.api_type = "azure" # Necessary for using the OpenAI library with Azure OpenAI -openai.api_version = os.getenv("OPENAI_API_VERSION") # Latest / target version of the API +@st.cache_resource +def get_llm() -> ChatOpenAI: + # Configure OpenAI API using Azure OpenAI + openai.api_key = os.getenv("API_KEY") + openai.api_base = os.getenv("ENDPOINT") + openai.api_type = "azure" # Necessary for using the OpenAI library with Azure OpenAI + openai.api_version = os.getenv("OPENAI_API_VERSION") # Latest / target version of the API -# Implementation -from langchain.embeddings import OpenAIEmbeddings + # Implementation + from langchain.embeddings import OpenAIEmbeddings -# OpenAI Settings -model_deployment = "text-embedding-ada-002" -# SDK calls this "engine", but naming it "deployment_name" for clarity + # OpenAI Settings + model_deployment = "text-embedding-ada-002" + # SDK calls this "engine", but naming it "deployment_name" for clarity -model_name = "text-embedding-ada-002" + model_name = "text-embedding-ada-002" -openai_embeddings: OpenAIEmbeddings = OpenAIEmbeddings( - openai_api_version = os.getenv("OPENAI_API_VERSION"), openai_api_key = os.getenv("API_KEY"), - openai_api_base = os.getenv("ENDPOINT"), openai_api_type = "azure" -) + openai_embeddings: OpenAIEmbeddings = OpenAIEmbeddings( + openai_api_version = os.getenv("OPENAI_API_VERSION"), openai_api_key = os.getenv("API_KEY"), + openai_api_base = os.getenv("ENDPOINT"), openai_api_type = "azure" + ) -# LLM - Azure OpenAI -llm = ChatOpenAI(temperature = 0.3, openai_api_key = os.getenv("API_KEY"), openai_api_base = os.getenv("ENDPOINT"), model_name="gpt-35-turbo", engine="Voicetask") + # LLM - Azure OpenAI + llm = ChatOpenAI(temperature = 0.3, openai_api_key = os.getenv("API_KEY"), openai_api_base = os.getenv("ENDPOINT"), model_name="gpt-35-turbo", engine="Voicetask") + return llm + +llm = get_llm() #sidebar configuration #import the file check functions From aaa481cad259bcac82ffc35fc4e785dbeb59eec3 Mon Sep 17 00:00:00 2001 From: David Emmanuel Date: Wed, 9 Oct 2024 17:40:17 +0100 Subject: [PATCH 2/3] feat: save user prompts in session state --- main.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index aec9949..d389bdc 100644 --- a/main.py +++ b/main.py @@ -78,13 +78,21 @@ def get_llm() -> ChatOpenAI: else: st.session_state.uploaded_files = None - - #chat area +def send_message(): + prompt = st.session_state.prompt + st.session_state.messages.append(('user', prompt)) + +if 'messages' not in st.session_state: + st.session_state.messages = [] + message = st.container() -if prompt:=st.chat_input("Enter your query"): - message.chat_message("user").write(prompt) +st.chat_input("Enter your query", key='prompt', on_submit=send_message) + +with message: + for role, text in st.session_state.messages: + st.chat_message(role).write(text) From e732d7e39f099d556621a0402c3df347ce51f351 Mon Sep 17 00:00:00 2001 From: Samuel Bamgbola Date: Wed, 9 Oct 2024 17:57:54 +0100 Subject: [PATCH 3/3] Moved import statements out of the function --- main.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/main.py b/main.py index 41d8ff8..95417ed 100644 --- a/main.py +++ b/main.py @@ -6,6 +6,7 @@ # Langchain components from langchain.chains import RetrievalQA from langchain.chat_models import ChatOpenAI +from langchain.embeddings import OpenAIEmbeddings # Add OpenAI library import openai @@ -22,9 +23,6 @@ def get_llm() -> ChatOpenAI: openai.api_type = "azure" # Necessary for using the OpenAI library with Azure OpenAI openai.api_version = os.getenv("OPENAI_API_VERSION") # Latest / target version of the API - # Implementation - from langchain.embeddings import OpenAIEmbeddings - # OpenAI Settings model_deployment = "text-embedding-ada-002" # SDK calls this "engine", but naming it "deployment_name" for clarity