Код: Выделить всё
import gradio as gr
# Define the function for the first tab
def greet(text):
return f"Hello {text}"
# Define the function for the second tab
def farewell(text):
return f"Goodbye {text}"
# Create the interface for the first tab
with gr.Blocks() as greet_interface:
input_text = gr.Textbox(label="Input Text")
output_text = gr.Textbox(label="Output Text")
button = gr.Button("Submit")
button.click(greet, inputs=input_text, outputs=output_text)
# Create the interface for the second tab
with gr.Blocks() as farewell_interface:
input_text = gr.Textbox(label="Input Text")
output_text = gr.Textbox(label="Output Text")
button = gr.Button("Submit")
button.click(farewell, inputs=input_text, outputs=output_text)
# Combine the interfaces into tabs
with gr.Blocks() as demo:
with gr.Tabs():
with gr.TabItem("Greet"):
greet_interface.render()
with gr.TabItem("Farewell"):
farewell_interface.render()
# Launch the interface
# demo.launch()
demo.launch(server_name="0.0.0.0", server_port=7861)
Как это не работает:< /p>
Во второй вкладке (прощальная) при нажатии кнопки фактически вызывается функция приветствия. Прощание никогда не вызывается.
Я вижу, что в выходном_тексте второй вкладки выполняется некоторая обработка, но она никогда не завершается. Вместо этого заполняется выводимый текст первой вкладки.
Я не могу понять, почему это происходит.
Единственное отличие, которое у меня есть, это отличие среды
- Среда, в которой это работает:
- Python 3.11.1
- используйте venv
- gradio 4.37.2
[*]Среда, в которой происходит сбой
- Python 3.9.16< /li>
использовать стихи - gradio 4.32.2
Кстати, я уже пробовал использовать совершенно разные переменные для каждой вкладки, но это не работает
Подробнее здесь: https://stackoverflow.com/questions/786 ... -other-tab