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()