File size: 1,683 Bytes
f36f021 87cd864 a8d22a4 87cd864 e4ef93a 8972636 e4ef93a 957f93b 87cd864 e4ef93a 8972636 957f93b 8972636 c585131 8972636 87cd864 c585131 8972636 957f93b 8972636 8a646af 8972636 8a646af 87cd864 2cc6ea2 87cd864 2cc6ea2 87cd864 8a646af 87cd864 8972636 87cd864 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import gradio as gr
from my_memory_logic import run_with_session_memory
def chat_interface_fn(message, history, session_id):
"""
Simple chat function for Gradio's ChatInterface that only shows the most recent question and answer pair.
The session_id is used to maintain session-based memory.
"""
# 1) Get answer from the session-based memory pipeline
answer = run_with_session_memory(message, session_id)
# 2) Append only the new question and answer pair to history
history.append((message, answer))
# 3) Convert the most recent question-answer pair to message dictionaries for display
message_dicts = []
for user_msg, ai_msg in history[-1:]: # Only use the latest Q&A
message_dicts.append({"role": "user", "content": user_msg})
message_dicts.append({"role": "assistant", "content": ai_msg})
# Return the message dicts and updated history
return message_dicts, history
# Custom CSS for chat interface
my_chat_css = """
.gradio-container {
margin: auto;
}
.user .wrap {
text-align: right !important;
}
.assistant .wrap {
text-align: left !important;
}
"""
# Set up Gradio interface
with gr.Blocks(css=my_chat_css) as demo:
gr.Markdown("### DailyWellnessAI (User on right, Assistant on left)")
session_id_box = gr.Textbox(label="Session ID", value="abc123", interactive=True)
chat_interface = gr.ChatInterface(
fn=lambda msg, hist: chat_interface_fn(msg, hist, session_id_box.value),
title="DailyWellnessAI (Session-based Memory)",
description="Ask your questions. The session_id determines your stored memory."
)
# Launch the Gradio interface
demo.launch()
|