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和Gradle默认公开的所有其他目录。可以通过用逗号分隔项目来指定多个项目。
  • 默认: ""
  • 示例:
    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

  • 描述: 当没有为cache_examples参数传递显式参数时,是否默认在gr.Interface()gr.ChatInterface()gr.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 这样的工具在运行应用程序时加载这些变量。