Gradio Agents & MCP 黑客马拉松

获奖者
Gradio logo
  1. 附加功能
  2. 环境变量

环境变量

Gradio 中的环境变量提供了一种在不更改代码库的情况下自定义应用程序和启动设置的方法。本指南将介绍 Gradio 中支持的关键环境变量以及如何设置它们。

关键环境变量

1. GRADIO_SERVER_PORT

  • 描述:指定 Gradio 应用程序将运行的端口。
  • 默认值7860
  • 示例:
    export GRADIO_SERVER_PORT=8000

2. GRADIO_SERVER_NAME

  • 描述:定义 Gradio 服务器的主机名。要使 Gradio 可从任何 IP 地址访问,请将其设置为 "0.0.0.0"
  • 默认值"127.0.0.1"
  • 示例:
    export GRADIO_SERVER_NAME="0.0.0.0"

3. GRADIO_NUM_PORTS

  • 描述:定义 Gradio 服务器启动时尝试的端口数量。
  • 默认值100
  • 示例:
    export GRADIO_NUM_PORTS=200

4. GRADIO_ANALYTICS_ENABLED

  • 描述:Gradio 是否应该提供
  • 默认值"True"
  • 选项"True", "False"
  • 示例:
    export GRADIO_ANALYTICS_ENABLED="True"

5. GRADIO_DEBUG

  • 描述:启用或禁用 Gradio 中的调试模式。如果启用调试模式,主线程将不会终止,从而允许在 Google Colab 等环境中打印错误消息。
  • 默认值0
  • 示例:
    export GRADIO_DEBUG=1

6. GRADIO_FLAGGING_MODE

  • 描述:控制用户是否可以在 Gradio 界面中标记输入/输出。更多详情请参阅标记指南
  • 默认值"manual"
  • 选项"never", "manual", "auto"
  • 示例:
    export GRADIO_FLAGGING_MODE="never"

7. GRADIO_TEMP_DIR

  • 描述:指定 Gradio 创建的临时文件存储目录。
  • 默认值:系统默认临时目录
  • 示例:
    export GRADIO_TEMP_DIR="/path/to/temp"

8. GRADIO_ROOT_PATH

  • 描述:设置 Gradio 应用程序的根路径。在反向代理后运行 Gradio 时非常有用。
  • 默认值""
  • 示例:
    export GRADIO_ROOT_PATH="/myapp"

9. GRADIO_SHARE

  • 描述:启用或禁用 Gradio 应用程序的共享功能。
  • 默认值"False"
  • 选项"True", "False"
  • 示例:
    export GRADIO_SHARE="True"

10. GRADIO_ALLOWED_PATHS

  • 描述:设置 Gradio 允许提供服务的完整文件路径或父目录列表。必须是绝对路径。警告:如果你提供目录,这些目录或其子目录中的任何文件都可供应用程序的所有用户访问。多个项目可以通过逗号分隔来指定。
  • 默认值""
  • 示例:
    export GRADIO_ALLOWED_PATHS="/mnt/sda1,/mnt/sda2"

11. GRADIO_BLOCKED_PATHS

  • 描述:设置 Gradio 不允许提供服务的完整文件路径或父目录列表(即应用程序用户不允许访问)。必须是绝对路径。警告:此设置优先于 allowed_paths 和 Gradio 默认公开的所有其他目录。多个项目可以通过逗号分隔来指定。
  • 默认值""
  • 示例:
    export GRADIO_BLOCKED_PATHS="/users/x/gradio_app/admin,/users/x/gradio_app/keys"

12. FORWARDED_ALLOW_IPS

  • 描述:这不是 Gradio 特定的环境变量,而是用于服务器配置(特别是 Gradio 内部使用的 uvicorn)中的变量。此环境变量在将应用程序部署到反向代理后面时非常有用。它定义了一个受信任的 IP 地址列表,这些 IP 地址可以转发流量到你的应用程序。设置后,应用程序将信任来自这些 IP 地址的 X-Forwarded-For 头,以确定发起请求的用户的原始 IP 地址。这意味着如果你使用 gr.Request 对象client.host 属性,它将正确获取用户的 IP 地址,而不是反向代理服务器的 IP 地址。请注意,只能添加受信任的 IP 地址(即你的反向代理服务器的 IP 地址),因为任何具有这些 IP 地址的服务器都可以修改 X-Forwarded-For 头并伪造客户端的 IP 地址。
  • 默认值"127.0.0.1"
  • 示例:
    export FORWARDED_ALLOW_IPS="127.0.0.1,192.168.1.100"

13. GRADIO_CACHE_EXAMPLES

  • 描述:在 gr.Interface(), gr.ChatInterface()gr.Examples() 中,当未为 cache_examples 参数传递显式参数时,是否默认缓存示例。你可以将此环境变量设置为字符串 "true" 或 "false"。
  • 默认值"false"
  • 示例:
    export GRADIO_CACHE_EXAMPLES="true"

14. GRADIO_CACHE_MODE

  • 描述:如何缓存示例。仅当通过环境变量或显式参数将 cache_examples 设置为 True,并且未在 gr.Interface()gr.ChatInterface()gr.Examples() 中为 cache_mode 参数传递显式参数时才适用。可以设置为字符串 "lazy" 或 "eager"。如果设置为 "lazy",则示例在首次使用后为应用程序的所有用户缓存。如果设置为 "eager",则所有示例在应用程序启动时缓存。

  • 默认值"eager"

  • 示例:

    export GRADIO_CACHE_MODE="lazy"

15. GRADIO_EXAMPLES_CACHE

  • 描述:如果你在 gr.Interface()gr.ChatInterface()gr.Examples() 中设置了 cache_examples=True,Gradio 将运行你的预测函数并将结果保存到磁盘。默认情况下,这位于应用程序工作目录中的 .gradio/cached_examples// 子目录中。你可以通过将环境变量 GRADIO_EXAMPLES_CACHE 设置为绝对路径或相对于你工作目录的路径来定制 Gradio 创建的缓存示例文件的位置。
  • 默认值".gradio/cached_examples/"
  • 示例:
    export GRADIO_EXAMPLES_CACHE="custom_cached_examples/"

16. GRADIO_SSR_MODE

  • 描述:控制是否启用服务器端渲染 (SSR)。启用后,初始 HTML 在服务器端渲染而不是客户端,这可以改善初始页面加载性能和 SEO。

  • 默认值"False" (但在 Hugging Face Spaces 上,此环境变量将其设置为 True)

  • 选项"True", "False"

  • 示例:

    export GRADIO_SSR_MODE="True"

17. GRADIO_NODE_SERVER_NAME

  • 描述:定义 Gradio 节点服务器的主机名。(仅当 ssr_mode 设置为 True 时适用。)
  • 默认值:如果设置了 GRADIO_SERVER_NAME,则使用其值,否则为 "127.0.0.1"
  • 示例:
    export GRADIO_NODE_SERVER_NAME="0.0.0.0"

18. GRADIO_NODE_NUM_PORTS

  • 描述:定义 Gradio 节点服务器启动时尝试的端口数量。(仅当 ssr_mode 设置为 True 时适用。)
  • 默认值100
  • 示例:
    export GRADIO_NODE_NUM_PORTS=200

19. GRADIO_RESET_EXAMPLES_CACHE

  • 描述:如果设置为 "True",Gradio 将在应用程序启动时删除并重新创建示例缓存目录,而不是重用已缓存的示例(如果它们已存在)。
  • 默认值"False"
  • 选项"True", "False"
  • 示例:
    export GRADIO_RESET_EXAMPLES_CACHE="True"

20. GRADIO_CHAT_FLAGGING_MODE

  • 描述:控制用户是否可以在 gr.ChatInterface 应用程序中标记消息。与 GRADIO_FLAGGING_MODE 类似,但专门用于聊天界面。
  • 默认值"never"
  • 选项"never", "manual"
  • 示例:
    export GRADIO_CHAT_FLAGGING_MODE="manual"

如何设置环境变量

要在终端中设置环境变量,请使用 export 命令,后跟变量名及其值。例如:

export GRADIO_SERVER_PORT=8000

如果你使用 .env 文件管理环境变量,可以像这样添加它们:

GRADIO_SERVER_PORT=8000
GRADIO_SERVER_NAME="localhost"

然后,使用 dotenv 等工具在运行应用程序时加载这些变量。