Gradio 智能体与 MCP 黑客马拉松

获奖者
Gradio logo
  1. 组件
  2. 代码

Gradio 新手?从这里开始:开始入门

查看发布历史

代码

gradio.Code(···)
import gradio as gr with gr.Blocks() as demo: gr.Code(language="python", value=""" import gradio as gr def hello(name): return "hello " + name interface = gr.Interface(hello, "text", "text") interface.launch() """, interactive=True, lines=6) demo.launch()

描述

创建一个代码编辑器,用于查看代码(作为输出组件),或输入和编辑代码(作为输入组件)。

行为

作为输入组件: 将输入的代码作为 str 传递。

您的函数应接受以下类型之一
def predict(
	value: str | None
)
	...

作为输出组件: 期望一个代码 str

您的函数应返回以下类型之一
def predict(···) -> tuple[str] | str | None
	...	
	return value

初始化

参数
🔗
value: str | Callable | None
默认值 = None

代码编辑器中显示的默认值。如果提供了函数,每次应用程序加载时都会调用该函数,以设置此组件的初始值。

🔗
language: Literal['python', 'c', 'cpp', 'markdown', 'latex', 'json', 'html', 'css', 'javascript', 'jinja2', 'typescript', 'yaml', 'dockerfile', 'shell', 'r', 'sql', 'sql-msSQL', 'sql-mySQL', 'sql-mariaDB', 'sql-sqlite', 'sql-cassandra', 'sql-plSQL', 'sql-hive', 'sql-pgSQL', 'sql-gql', 'sql-gpSQL', 'sql-sparkSQL', 'sql-esper'] | None
默认值 = None

显示代码的语言。支持的语言列在 `gr.Code.languages` 中。

🔗
every: Timer | float | None
默认值 = None

如果 `value` 是一个函数,则持续调用 `value` 以重新计算它(否则无效)。可以提供一个 Timer,其滴答声会重置 `value`,或者一个浮点数,提供重置 Timer 的常规间隔。

🔗
inputs: Component | list[Component] | set[Component] | None
默认值 = None

如果 `value` 是一个函数,则用于计算 `value` 的输入组件(否则无效)。每当输入更改时,都会重新计算 `value`。

🔗
lines: int
默认值 = 5

代码编辑器中显示的最小可见行数。

🔗
max_lines: int | None
默认值 = None

代码编辑器中显示的最大可见行数。默认为 None,将填充容器的高度。

🔗
label: str | I18nData | None
默认值 = None

此组件的标签。显示在组件上方,如果此组件有示例表格,则也用作标题。如果为 None 且在 `gr.Interface` 中使用,则标签将是此组件所分配参数的名称。

🔗
interactive: bool | None
默认值 = None

用户是否可以输入代码或仅查看代码。

🔗
show_label: bool | None
默认值 = None

如果为 True,将显示标签。

🔗
container: bool
默认值 = True

如果为 True,将把组件放置在一个容器中,在边框周围提供一些额外的填充。

🔗
scale: int | None
默认值 = None

相对于相邻组件的相对大小。例如,如果组件 A 和 B 位于一行中,并且 A 的 scale=2,B 的 scale=1,则 A 的宽度将是 B 的两倍。应为整数。scale 适用于行,以及在 Blocks 中 `fill_height=True` 的顶级组件。

🔗
min_width: int
默认值 = 160

最小像素宽度,如果屏幕空间不足以满足此值,将换行。如果某个 scale 值导致此组件的宽度小于 min_width,则将首先遵循 min_width 参数。

🔗
visible: bool
默认值 = True

如果为 False,组件将被隐藏。

🔗
elem_id: str | None
默认值 = None

一个可选字符串,在 HTML DOM 中分配为此组件的 id。可用于定位 CSS 样式。

🔗
elem_classes: list[str] | str | None
默认值 = None

一个可选的字符串列表,在 HTML DOM 中分配为此组件的类。可用于定位 CSS 样式。

🔗
render: bool
默认值 = True

如果为 False,组件将不会在 Blocks 上下文中渲染。如果目的是现在分配事件监听器但稍后渲染组件,则应使用此参数。

🔗
key: int | str | tuple[int | str, ...] | None
默认值 = None

在 gr.render 中,跨重新渲染具有相同 key 的组件被视为同一组件,而不是新组件。在 'preserved_by_key' 中设置的属性在重新渲染时不会重置。

🔗
preserved_by_key: list[str] | str | None
默认值 = "value"

此组件构造函数中的参数列表。在 `gr.render()` 函数内部,如果组件以相同的 key 重新渲染,则这些(且仅这些)参数将在 UI 中保留(如果它们已被用户或事件监听器更改),而不是根据构造函数期间提供的值重新渲染。

🔗
wrap_lines: bool
默认值 = False

如果为 True,当发生溢出时,将把行换行到容器的宽度。默认为 False。

🔗
show_line_numbers: bool
默认值 = True

如果为 True,显示行号;如果为 False,隐藏行号。

🔗
autocomplete: bool
默认值 = False

如果为 True,将显示对支持语言的自动完成建议。默认为 False。

快捷方式

接口字符串快捷方式 初始化

gradio.Code

"code"

使用默认值

事件监听器

描述

事件监听器允许您响应用户与您在 Gradio Blocks 应用程序中定义的 UI 组件的交互。当用户与某个元素交互时,例如更改滑块值或上传图像,将调用一个函数。

支持的事件监听器

Code 组件支持以下事件监听器。每个事件监听器都接受相同的参数,这些参数列在下面的事件参数表中。

监听器 描述

Code.languages(fn, ···)

['python', 'c', 'cpp', 'markdown', 'latex', 'json', 'html', 'css', 'javascript', 'jinja2', 'typescript', 'yaml', 'dockerfile', 'shell', 'r', 'sql', 'sql-msSQL', 'sql-mySQL', 'sql-mariaDB', 'sql-sqlite', 'sql-cassandra', 'sql-plSQL', 'sql-hive', 'sql-pgSQL', 'sql-gql', 'sql-gpSQL', 'sql-sparkSQL', 'sql-esper', None]

Code.change(fn, ···)

当 Code 的值发生变化时触发,无论是由于用户输入(例如用户在文本框中输入)还是由于函数更新(例如图像从事件触发器的输出接收值)。有关仅由用户输入触发的监听器,请参阅 .input()

Code.input(fn, ···)

当用户更改 Code 的值时触发此监听器。

Code.focus(fn, ···)

当 Code 获得焦点时触发此监听器。

Code.blur(fn, ···)

当 Code 失去焦点/模糊时触发此监听器。

事件参数

参数