服务器配置#

本节介绍运行 Argilla 服务器和 Argilla Python 客户端的高级操作和设置。

默认情况下,Argilla 服务器将在 https://#:9200 查找您的 Elasticsearch (ES) 端点。您可以通过设置 ARGILLA_ELASTICSEARCH 环境变量来自定义此设置。请查看可用的 环境变量 列表,以进一步配置 Argilla 服务器。

从 Argilla 版本 1.19.0 开始,您必须手动设置搜索引擎才能使用反馈数据集。您应该根据您使用的后端设置环境变量 ARGILLA_SEARCH_ENGINE=opensearchARGILLA_SEARCH_ENGINE=elasticsearch。此变量的默认值设置为 elasticsearch。Elasticsearch 的最低版本为 8.5.0,Opensearch 的最低版本为 2.4.0。请检查您的后端并在必要时升级。

警告

对于 OpenSearch 中的向量搜索,应用的过滤器使用 post_filter 步骤,因为存在一个错误,该错误导致使用来自 Argilla 的过滤器 + knn 的查询失败。请参阅 https://github.com/opensearch-project/k-NN/issues/1286

当将过滤与此引擎的向量搜索结合使用时,这可能会导致意外的结果。

启动#

使用代理#

如果您通过添加一些额外的前缀来公开服务,从而在代理后面运行 Argilla,则应设置 ARGILLA_BASE_URL 环境变量,以将请求正确路由到服务器应用程序。

例如,如果您的代理在 URL https://my-proxy/custom-path-for-argilla 中公开 Argilla,则应使用 ARGILLA_BASE_URL=/custom-path-for-argilla 启动 Argilla 服务器。

NGINX 和 Traefik 已经过测试,已知可以与 Argilla 一起使用

使用 uvicorn#

由于 Argilla 服务器构建在 FastAPI 之上,因此您可以使用 uvicorn 启动它

uvicorn argilla_server:app --port 6900

注意

有关 FastAPI 和 uvicorn 的更多详细信息,请参阅 此处

您还可以访问 uvicorn 官方文档 此处

环境变量#

您可以设置以下环境变量来进一步配置您的服务器和客户端。

服务器#

FastAPI#

  • ARGILLA_HOME_PATH: Argilla 将在其中存储运行所需的所有文件的目录。如果该路径不存在,则将自动创建 (默认值: ~/.argilla)。

  • ARGILLA_BASE_URL: 如果您想在除 / 之外的特定基本路径中启动 Argilla 服务器,则应设置此环境变量。当在代理后面运行 Argilla 时,这可能很有用,该代理会添加前缀路径以路由服务 (默认值: “/”)。

  • ARGILLA_CORS_ORIGINS: CORS 来源访问的主机模式列表。

  • ARGILLA_DOCS_ENABLED: 如果为 False,则禁用 /api/docs 的 openapi 文档端点。

  • ARGILLA_ENABLE_TELEMETRY: 如果为 False,则禁用使用指标的遥测。

SQLite 和 PostgreSQL#

  • ARGILLA_DATABASE_URL: 包含连接到数据库的必要信息的 URL 字符串。Argilla 默认使用 SQLite,PostgreSQL 也被官方支持 (默认值: sqlite:///$ARGILLA_HOME_PATH/argilla.db?check_same_thread=False)。

SQLite#

以下环境变量仅在使用 SQLite 时有用

  • ARGILLA_DATABASE_SQLITE_TIMEOUT: 连接在引发 OperationalError(当表被锁定时)之前应等待多少秒。如果另一个连接打开事务以修改表,则该表将被锁定,直到事务被提交。(默认值: 15 秒)。

PostgreSQL#

以下环境变量仅在使用 PostgreSQL 时有用

  • ARGILLA_DATABASE_POSTGRESQL_POOL_SIZE: 在数据库连接池中保持打开的连接数 (默认值: 15)。

  • ARGILLA_DATABASE_POSTGRESQL_MAX_OVERFLOW: 可以打开的超出 ARGILLA_DATABASE_POSTGRESQL_POOL_SIZE 设置的连接数 (默认值: 10)。

Elasticsearch 和 Opensearch#

  • ARGILLA_ELASTICSEARCH: Elasticsearch 实例的连接端点的 URL (默认值: https://#:9200)。

  • ARGILLA_SEARCH_ENGINE: (仅适用于反馈数据集) 要使用的搜索引擎。有效值为 “elasticsearch” 和 “opensearch” (默认值: “elasticsearch”)。

  • ARGILLA_ELASTICSEARCH_SSL_VERIFY: 如果为 “False”,则禁用连接到 Elasticsearch 后端时的 SSL 证书验证。

  • ARGILLA_ELASTICSEARCH_CA_PATH: ES 主机的 CA 证书路径。例如:/full/path/to/root-ca.pem (可选)

  • ARGILLA_NAMESPACE: 用于管理 Elasticsearch 索引的前缀。您可以使用此命名空间为多个独立的 Argilla 实例使用相同的 Elasticsearch 实例。

  • ARGILLA_DEFAULT_ES_SEARCH_ANALYZER: 文本字段的默认分析器,元数据除外 (默认值: “standard”)。

  • ARGILLA_EXACT_ES_SEARCH_ANALYZER: 文本信息中 *.exact 字段的默认分析器 (默认值: “whitespace”)。

  • ARGILLA_METADATA_FIELDS_LIMIT: 元数据中字段的最大数量 (默认值: 50,最大值: 100)。

  • ARGILLA_METADATA_FIELD_LENGTH: 字符串元数据字段支持的最大长度。更高的值将被截断。滥用此功能可能会导致 Elastic 性能问题 (默认值: 128)。

反馈数据集#

  • ARGILLA_LABEL_SELECTION_OPTIONS_MAX_ITEMS: 设置标签和多标签问题允许的最大项目数 (默认值: 500)。

  • ARGILLA_SPAN_OPTIONS_MAX_ITEMS: 设置跨度问题允许的最大项目数 (默认值: 500)。

Hugging Face#

  • ARGILLA_SHOW_HUGGINGFACE_SPACE_PERSISTENT_STORAGE_WARNING: 当 Argilla 在 Hugging Face Spaces 上运行时,您可以使用此环境变量禁用在空间的持久存储被禁用时显示的警告消息 (默认值: true)。

客户端#

REST API 文档#

FastAPI 还提供了漂亮的 REST API 文档,您可以在 https://#:6900/api/docs 查看。