llm-homework2 / app.py
jouch's picture
Upload 4 files
396aabc verified
import gradio as gr
from langchain.embeddings import AzureOpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.chains import RetrievalQA
from langchain.chat_models import AzureChatOpenAI
import os
def initialize_data(vector_store_dir: str="data/IRM-help-reviews-faiss"):
db = FAISS.load_local(vector_store_dir, AzureOpenAIEmbeddings())
llm = AzureChatOpenAI(model_name="gpt-35-turbo", temperature=0.5)
global IRM_REVIEW_BOT
IRM_REVIEW_BOT = RetrievalQA.from_chain_type(llm,
retriever=db.as_retriever(search_type="similarity_score_threshold",
search_kwargs={"score_threshold": 0.7}))
IRM_REVIEW_BOT.return_source_documents = True
return IRM_REVIEW_BOT
def chat(message, history):
print(f"[message]{message}")
print(f"[history]{history}")
enable_chat = True
ans = IRM_REVIEW_BOT({"query": message})
if ans["source_documents"] or enable_chat:
print(f"[result]{ans['result']}")
print(f"[source_documents]{ans['source_documents']}")
return ans["result"]
else:
return "I don't know."
def launch_ui():
demo = gr.ChatInterface(
fn=chat,
title="IRM Help Review",
chatbot=gr.Chatbot(height=600),
)
demo.launch(share=True)
if __name__ == "__main__":
os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_VERSION"] = "2023-05-15"
os.environ["OPENAI_API_BASE"] = "https://pvg-azure-openai-uk-south.openai.azure.com/openai"
initialize_data()
launch_ui()