feat(opik): update Opik version to 1.10.23 and add configuration files; update Phoenix version to 13.3.0

This commit is contained in:
Sun-ZhenXing
2026-02-27 11:30:29 +08:00
parent e8d50357ea
commit 7946434b0c
10 changed files with 805 additions and 9 deletions

157
apps/opik/README.zh.md Normal file
View File

@@ -0,0 +1,157 @@
# Opik
[English](./README.md) | [中文](./README.zh.md)
本服务部署 [Opik](https://github.com/comet-ml/opik),一个开源的 LLM 可观测性、评估和优化平台。Opik 帮助你调试、评估和监控 LLM 应用程序、RAG 系统和智能体工作流,提供全面的追踪、自动化评估和生产级仪表板。
## 服务组件
- **frontend**Opik Web 界面Nginx
- **backend**Opik 主后端 API 服务Java/Dropwizard
- **python-backend**Python 后端,用于代码执行和 AI 功能
- **mysql**MySQL 数据库,用于状态持久化
- **clickhouse**ClickHouse 分析数据库,用于追踪数据存储
- **redis**Redis用于缓存和任务队列
- **zookeeper**ZooKeeper用于 ClickHouse 协调
- **minio**:兼容 S3 的对象存储,用于附件
## 快速开始
1. 复制 `.env.example``.env`
```bash
cp .env.example .env
```
2. 更新 `.env` 中的关键密钥(本地开发可选):
```bash
# 如需生成安全密码
MYSQL_ROOT_PASSWORD=your-secure-password
MYSQL_PASSWORD=your-secure-password
REDIS_PASSWORD=your-secure-password
CLICKHOUSE_PASSWORD=your-secure-password
MINIO_ROOT_PASSWORD=your-secure-password
```
3. 启动服务:
```bash
docker compose up -d
```
4. 访问 Opik`http://localhost:5173`
## 核心环境变量
| 变量名 | 描述 | 默认值 |
| ------------------------------- | ---------------------- | --------- |
| `OPIK_VERSION` | Opik 容器镜像版本 | `1.10.23` |
| `OPIK_PORT_OVERRIDE` | Web UI 端口 | `5173` |
| `OPIK_BACKEND_PORT_OVERRIDE` | 后端 API 端口 | `3003` |
| `OPIK_USAGE_REPORT_ENABLED` | 启用匿名使用报告 | `true` |
| `TOGGLE_WELCOME_WIZARD_ENABLED` | 首次运行时显示欢迎向导 | `true` |
## 数据库配置
| 变量名 | 描述 | 默认值 |
| --------------------- | ------------------- | ------------------ |
| `MYSQL_VERSION` | MySQL 版本 | `8.4.2` |
| `MYSQL_ROOT_PASSWORD` | MySQL root 密码 | `opik` |
| `MYSQL_DATABASE` | MySQL 数据库名 | `opik` |
| `MYSQL_USER` | MySQL 用户名 | `opik` |
| `MYSQL_PASSWORD` | MySQL 密码 | `opik` |
| `CLICKHOUSE_VERSION` | ClickHouse 版本 | `25.3.6.56-alpine` |
| `CLICKHOUSE_DB` | ClickHouse 数据库名 | `opik` |
| `CLICKHOUSE_USER` | ClickHouse 用户名 | `opik` |
| `CLICKHOUSE_PASSWORD` | ClickHouse 密码 | `opik` |
## 存储与缓存配置
| 变量名 | 描述 | 默认值 |
| ----------------------------- | ------------------ | ------------------ |
| `REDIS_VERSION` | Redis 版本 | `7.2.4-alpine3.19` |
| `REDIS_PASSWORD` | Redis 密码 | `opik` |
| `MINIO_ROOT_USER` | MinIO 管理员用户名 | `opikminio` |
| `MINIO_ROOT_PASSWORD` | MinIO 管理员密码 | `opikminio123` |
| `MINIO_PORT_OVERRIDE` | MinIO API 端口 | `9000` |
| `MINIO_CONSOLE_PORT_OVERRIDE` | MinIO 控制台端口 | `9090` |
## AI 功能配置(可选)
| 变量名 | 描述 | 默认值 |
| --------------------------- | ------------------- | ------- |
| `TOGGLE_OPIK_AI_ENABLED` | 启用 Opik AI 功能 | `false` |
| `TOGGLE_GUARDRAILS_ENABLED` | 启用护栏功能 | `false` |
| `OPENAI_API_KEY` | OpenAI API 密钥 | `` |
| `ANTHROPIC_API_KEY` | Anthropic API 密钥 | `` |
| `OPENROUTER_API_KEY` | OpenRouter API 密钥 | `` |
## Python 后端配置
| 变量名 | 描述 | 默认值 |
| ------------------------------------------- | --------------------------------- | --------- |
| `PYTHON_CODE_EXECUTOR_STRATEGY` | 代码执行策略process/container | `process` |
| `PYTHON_CODE_EXECUTOR_CONTAINERS_NUM` | 执行器容器数量 | `5` |
| `PYTHON_CODE_EXECUTOR_EXEC_TIMEOUT_IN_SECS` | 代码执行超时时间 | `3` |
| `PYTHON_CODE_EXECUTOR_ALLOW_NETWORK` | 允许代码执行访问网络 | `false` |
| `OPTSTUDIO_MAX_CONCURRENT_JOBS` | 最大并发优化任务数 | `5` |
| `OPTSTUDIO_LOG_LEVEL` | 优化工作室日志级别 | `INFO` |
| `OPTSTUDIO_LLM_MAX_TOKENS` | LLM 调用最大令牌数 | `8192` |
## 数据卷
- `mysql_data`MySQL 数据库文件
- `redis_data`Redis 持久化数据
- `zookeeper_data`ZooKeeper 数据
- `clickhouse_data`ClickHouse 数据文件
- `clickhouse_logs`ClickHouse 日志
- `clickhouse_config`ClickHouse 配置
- `minio_data`MinIO 对象存储数据
## 资源限制
所有服务都有可配置的 CPU 和内存限制:
| 服务 | CPU 限制 | 内存限制 |
| -------------- | -------- | -------- |
| frontend | 0.5 | 512M |
| backend | 2.0 | 2G |
| python-backend | 1.0 | 1G |
| mysql | 1.0 | 1G |
| clickhouse | 2.0 | 4G |
| redis | 0.5 | 512M |
| zookeeper | 0.5 | 1G |
| minio | 1.0 | 1G |
## SDK 配置
要将 Opik Python SDK 与此本地部署一起使用:
```python
import opik
# 配置为本地部署
opik.configure(use_local=True)
# 或设置环境变量
import os
os.environ["OPIK_URL_OVERRIDE"] = "http://localhost:5173/api"
os.environ["OPIK_API_KEY"] = "" # 本地部署留空
# 开始追踪
@opik.track
def my_llm_function(user_question: str) -> str:
# 你的 LLM 代码
return "Hello"
```
## 文档
- [Opik 文档](https://www.comet.com/docs/opik/)
- [Python SDK 参考](https://www.comet.com/docs/opik/python-sdk-reference/)
- [GitHub 仓库](https://github.com/comet-ml/opik)
## 许可证
Opik 采用 Apache 2.0 许可证。