MLAndBusiness / app.py
EnigmaOfTheWorld's picture
Update app.py
9cdfdc6
import os
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import ElasticVectorSearch, Pinecone, Weaviate, FAISS
from langchain.chains.question_answering import load_qa_chain
from langchain.llms import OpenAI
import gradio as gr
embeddings = OpenAIEmbeddings(openai_api_key=os.environ['OPENAI_API_KEY'])
docsearch = FAISS.load_local("embeddings",embeddings)
chain = load_qa_chain(OpenAI(openai_api_key=os.environ['OPENAI_API_KEY']), chain_type="stuff")
def ask_anything(chat_history,query):
greetings = ['hi', 'hello', 'hey', 'good morning', 'good afternoon', 'good evening', 'greetings', 'salutations', 'yo', 'howdy', 'hola', 'bonjour', 'konnichiwa', 'ni hao', 'ciao', 'salaam', 'shalom', 'namaste']
if query.lower() in greetings:
result = f"Hello!How are you?"
elif query.lower() in ["what are you?","who are you?"]:
result = f'I am an AI chatbot available to assist you.'
else:
docs = docsearch.similarity_search(query)
result = chain.run(input_documents=docs, question=query)
return chat_history + [(query,result)]
with gr.Blocks() as demo:
gr.HTML(value="""<h1 style="text-align: center;text-decoration: underline">AI Chatbot</h1>""")
chatbot = gr.Chatbot()
textbox = gr.Textbox(label="Your query")
textbox.submit(fn=ask_anything,inputs=[chatbot,textbox],outputs=[chatbot])
demo.launch(debug=True)