Spaces:
Sleeping
Sleeping
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() | |