In the example code given to you, I want the default mode to be wide mode in the streamlit code, and we can only have one single exchange, so no need to write: "Exchange 1". Also, make the key-stroke: "Ctrl + Return" to submit the message. And clear the input field when the message is sent.
```py
import streamlit as st
from gradio_client import Client
import json
import os

# Initialize client
@st.cache_resource
def get_client():
    return Client('yuntian-deng/o1mini')

client = get_client()

# File path for history
HISTORY_FILE = 'history.json'

# Load history
def load_history():
    if os.path.exists(HISTORY_FILE):
        try:
            with open(HISTORY_FILE, 'r') as f:
                history = json.load(f)
                # Ensure history is a list of dictionaries with 'user' and 'bot'
                if isinstance(history, list) and all(isinstance(entry, dict) for entry in history):
                    return history
        except:
            pass
    return []

# Save history
def save_history(history):
    with open(HISTORY_FILE, 'w') as f:
        json.dump(history, f, indent=2)

# Initialize session state
if 'history' not in st.session_state:
    st.session_state.history = load_history()

st.title("Interactive Chat Interface")

st.markdown("### Chat History")

# Display and edit history
for idx, entry in enumerate(st.session_state.history):
    with st.expander(f"Exchange {idx + 1}", expanded=True):
        user_key = f"user_{idx}"
        bot_key = f"bot_{idx}"
        # Editable text areas
        user_text = st.text_area("User:", value=entry.get('user', ''), key=user_key, height=100)
        bot_text = st.text_area("Bot:", value=entry.get('bot', ''), key=bot_key, height=100)
        # Update history with edited text
        st.session_state.history[idx]['user'] = user_text
        st.session_state.history[idx]['bot'] = bot_text

st.markdown("---")
st.markdown("### New Message")

# Input for new message
new_message = st.text_area("Enter your message here:", height=100)

# Button to send message
if st.button("Send"):
    if new_message.strip() != "":
        # Append user message to history
        st.session_state.history.append({'user': new_message.strip(), 'bot': ""})
        save_history(st.session_state.history)
        
        # Prepare inputs for the model
        inputs = []
        for entry in st.session_state.history:
            inputs.append(entry['user'])
            if entry['bot']:
                inputs.append(entry['bot'])
        
        # Call the model
        try:
            result = client.predict(
                inputs=inputs,
                top_p=1,
                temperature=1,
                chat_counter=0,
                chatbot=[],
                api_name='/predict'
            )
            if result and len(result) > 0 and len(result[0]) > 0 and len(result[0][0]) > 1:
                output = result[0][0][1]
            else:
                output = "Sorry, I couldn't generate a response."
        except Exception as e:
            output = f"Error: {str(e)}"
        
        # Append bot response to history
        st.session_state.history[-1]['bot'] = output
        save_history(st.session_state.history)
        
        # Clear the input area
        st.rerun()

# Button to save edits
if st.button("Save Edits"):
    save_history(st.session_state.history)
    st.success("Edits saved successfully!")
```