这个项目能做什么

Recotem 是一个配方驱动的推荐系统框架,简化了推荐模型的训练和服务。它基于 irspack 构建,使用单个 YAML 配方文件定义整个流程:数据源、训练算法、超参数搜索和输出位置。`recotem train` 命令生成签名的二进制产物,而 `recotem serve` 运行一个 FastAPI 服务器,暴露如 `/v1/recipes/{name}:recommend` 和 `:recommend-related` 的端点,并在新产物出现时自动热切换。它不需要数据库或消息代理,使其轻量且易于部署。 主要功能包括: - **配方驱动配置**:一个 YAML 文件定义完整模型,从数据摄入到服务。 - **超参数优化**:使用 Optuna 在 irspack 算法中搜索。 - **特征感知 iALS**:支持物品/用户侧特征(分类、数值、多标签)以改进推荐。 - **冷启动支持**:可使用属性特征为未知用户或物品推荐。 - **可插拔数据源**:内置支持 CSV、Parquet、BigQuery 和 SQL(PostgreSQL、MySQL、SQLite),并通过 Python 入口点可扩展。 - **安全产物**:使用 HMAC 签名,支持多密钥轮换和确定性类允许列表,确保安全反序列化。 - **API 密钥认证**:可选 `X-API-Key` 头,密钥静态哈希存储。 - **灵活存储**:使用 fsspec 支持本地、S3、GCS、Azure 和 HTTPS 路径。 - **可观测性**:可选 Prometheus 指标和结构化 JSON 日志,带秘密脱敏。 该工具设计用于可复现性和操作简单性。训练作为批处理作业运行(例如 cron、Airflow、Kubernetes CronJob),服务是长期运行的进程,监视新产物并原子切换。这种分离允许训练和服务在不同机器上运行,仅通过产物文件通信。 通过 pip 安装,带有特定数据源的额外选项(例如 `recotem[bigquery]`、`recotem[s3]`)。ghcr.io 上提供多架构 Docker 镜像。项目要求 Python 3.12+,支持 glibc Linux(x86-64/arm64)、macOS(Apple Silicon)和 Windows(x86-64)。某些额外选项如 `bprfm` 平台支持较窄,可能需要从源码构建。 快速入门示例演示了从小型 CSV 训练 TopPop 推荐器,并通过 HTTP 提供推荐服务。文档站点(recotem.org)提供全面指南、API 参考和操作细节。