|
|
|
import gradio as gr |
|
from my_memory_logic import run_with_session_memory |
|
|
|
def chat_interface_fn(message, history, session_id): |
|
""" |
|
Single-turn function for Gradio's ChatInterface. |
|
'session_id' is used to store conversation across turns. |
|
""" |
|
answer = run_with_session_memory(message, session_id) |
|
|
|
history.append((message, answer)) |
|
|
|
|
|
message_dicts = [] |
|
for user_msg, ai_msg in history: |
|
message_dicts.append({"role": "user", "content": user_msg}) |
|
message_dicts.append({"role": "assistant", "content": ai_msg}) |
|
return message_dicts, history |
|
|
|
with gr.Blocks() as demo: |
|
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="Multi-turn chat using session ID and RunnableWithMessageHistory." |
|
) |
|
|
|
demo.launch() |
|
|