mirror of
https://github.com/gradio-app/gradio.git
synced 2024-11-21 01:01:05 +08:00
Miscellaneous doc fixes (#7131)
* fixes * few doc fixes * add changeset * add changeset * state in demo --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
This commit is contained in:
parent
125a832ab7
commit
7d53aa13a3
5
.changeset/clean-sheep-drive.md
Normal file
5
.changeset/clean-sheep-drive.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
"gradio": patch
|
||||
---
|
||||
|
||||
fix:Miscellaneous doc fixes
|
1
demo/interface_state/run.ipynb
Normal file
1
demo/interface_state/run.ipynb
Normal file
@ -0,0 +1 @@
|
||||
{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: interface_state"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio "]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["import gradio as gr\n", "\n", "def store_message(message: str, history: list[str]):\n", " output = {\n", " \"Current messages\": message,\n", " \"Previous messages\": history[::-1]\n", " }\n", " history.append(message)\n", " return output, history\n", "\n", "demo = gr.Interface(fn=store_message, \n", " inputs=[\"textbox\", gr.State(value=[])], \n", " outputs=[\"json\", gr.State()])\n", "\n", "if __name__ == \"__main__\":\n", " demo.launch()"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5}
|
16
demo/interface_state/run.py
Normal file
16
demo/interface_state/run.py
Normal file
@ -0,0 +1,16 @@
|
||||
import gradio as gr
|
||||
|
||||
def store_message(message: str, history: list[str]):
|
||||
output = {
|
||||
"Current messages": message,
|
||||
"Previous messages": history[::-1]
|
||||
}
|
||||
history.append(message)
|
||||
return output, history
|
||||
|
||||
demo = gr.Interface(fn=store_message,
|
||||
inputs=["textbox", gr.State(value=[])],
|
||||
outputs=["json", gr.State()])
|
||||
|
||||
if __name__ == "__main__":
|
||||
demo.launch()
|
@ -49,7 +49,7 @@ class Audio(
|
||||
):
|
||||
"""
|
||||
Creates an audio component that can be used to upload/record audio (as an input) or display audio (as an output).
|
||||
Preprocessing: passes the uploaded audio as a {Tuple(int, numpy.array)} corresponding to (sample rate in Hz, audio data as a 16-bit int array whose values range from -32768 to 32767), or as a {str} filepath, depending on `type`.
|
||||
Preprocessing: depending on `type`, passes the uploaded audio as {str} filepath or a {Tuple(int, numpy.array)} corresponding to (sample rate in Hz, audio data). If the latter, the audio data is a 16-bit int array whose values range from -32768 to 32767 and shape of the audio data array is (samples,) for mono audio or (samples, channels) for multi-channel audio.
|
||||
Postprocessing: expects a {Tuple(int, numpy.array)} corresponding to (sample rate in Hz, audio data as a float or int numpy array) or as a {str} or {pathlib.Path} filepath or URL to an audio file, or bytes for binary content (recommended for streaming). Note: When converting audio data from float format to WAV, the audio is normalized by its peak value to avoid distortion or clipping in the resulting audio.
|
||||
Examples-format: a {str} filepath to a local file that contains audio.
|
||||
Demos: main_note, generate_tone, reverse_audio
|
||||
|
@ -21,7 +21,7 @@ class State(Component):
|
||||
|
||||
Preprocessing: No preprocessing is performed
|
||||
Postprocessing: No postprocessing is performed
|
||||
Demos: blocks_simple_squares
|
||||
Demos: interface_state, blocks_simple_squares
|
||||
Guides: real-time-speech-recognition
|
||||
"""
|
||||
|
||||
|
@ -18,11 +18,15 @@ Another type of data persistence Gradio supports is session state, where data pe
|
||||
2. At the end of the function, return the updated value of the state as an extra return value.
|
||||
3. Add the `'state'` input and `'state'` output components when creating your `Interface`
|
||||
|
||||
A chatbot is an example where you would need session state - you want access to a users previous submissions, but you cannot store chat history in a global variable, because then chat history would get jumbled between different users.
|
||||
Here's a simple app to illustrate session state - this app simply stores users previous submissions and displays them back to the user:
|
||||
|
||||
$code_chatbot_dialogpt
|
||||
$demo_chatbot_dialogpt
|
||||
|
||||
Notice how the state persists across submits within each page, but if you load this demo in another tab (or refresh the page), the demos will not share chat history.
|
||||
$code_interface_state
|
||||
$demo_interface_state
|
||||
|
||||
The default value of `state` is None. If you pass a default value to the state parameter of the function, it is used as the default value of the state instead. The `Interface` class only supports a single input and outputs state variable, though it can be a list with multiple elements. For more complex use cases, you can use Blocks, [which supports multiple `State` variables](/guides/state-in-blocks/).
|
||||
|
||||
Notice how the state persists across submits within each page, but if you load this demo in another tab (or refresh the page), the demos will not share chat history. Here, we could not store the submission history in a global variable, otherwise the submission history would then get jumbled between different users.
|
||||
|
||||
The initial value of the `State` is `None` by default. If you pass a parameter to the `value` argument of `gr.State()`, it is used as the default value of the state instead.
|
||||
|
||||
Note: the `Interface` class only supports a single session state variable (though it can be a list with multiple elements). For more complex use cases, you can use Blocks, [which supports multiple `State` variables](/guides/state-in-blocks/). Alternatively, if you are building a chatbot that maintains user state, consider using the `ChatInterface` abstraction, [which manages state automatically](/guides/creating-a-chatbot-fast).
|
||||
|
@ -163,10 +163,7 @@ The `.then()` method of an event listener executes the subsequent event regardle
|
||||
|
||||
## Running Events Continuously
|
||||
|
||||
You can run events on a fixed schedule using the `every` parameter of the event listener. This will run the event
|
||||
`every` number of seconds while the client connection is open. If the connection is closed, the event will stop running after the following iteration.
|
||||
Note that this does not take into account the runtime of the event itself. So a function
|
||||
with a 1 second runtime running with `every=5`, would actually run every 6 seconds.
|
||||
You can run events on a fixed schedule using the `every` parameter of the event listener. This will run the event `every` number of seconds while the client connection is open. If the connection is closed, the event will stop running after the following iteration. Note that this does not take into account the runtime of the event itself. So a function with a 1 second runtime running with `every=5`, would actually run every 6 seconds. Also note that this parameter does not apply to the `js` function, only the Python function associated with the event listener.
|
||||
|
||||
Here is an example of a sine curve that updates every second!
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user