HrshvrdhnM2323's picture
Create app.py
7291a4e verified
import gradio as gr
import os
from utils.chatbot_logic import create_chatbot_chain
# Initialize the chatbot chain
chatbot_chain = create_chatbot_chain()
def chat_interface(message, history):
"""
Process user message and return chatbot response
"""
try:
response = chatbot_chain.invoke({"input": message})
return response["output"]
except Exception as e:
return f"Error: {str(e)}"
# Create Gradio Chat Interface
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown(
"""
# 🤖 LangChain Runnables Chatbot
A modular chatbot built using **LangChain Runnables** with multiple response strategies.
**Features:**
- Fact retrieval
- Joke generation
- Conversational memory
- Modular and extensible design
"""
)
chatbot = gr.Chatbot(
label="Chat History",
height=400,
type="messages"
)
msg = gr.Textbox(
label="Your Message",
placeholder="Ask me anything...",
lines=2
)
clear = gr.Button("Clear Chat")
def respond(message, chat_history):
bot_message = chat_interface(message, chat_history)
chat_history.append({"role": "user", "content": message})
chat_history.append({"role": "assistant", "content": bot_message})
return "", chat_history
msg.submit(respond, [msg, chatbot], [msg, chatbot])
clear.click(lambda: None, None, chatbot, queue=False)
if __name__ == "__main__":
demo.launch()