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:
157
apps/opik/README.md
Normal file
157
apps/opik/README.md
Normal file
@@ -0,0 +1,157 @@
|
||||
# Opik
|
||||
|
||||
[English](./README.md) | [中文](./README.zh.md)
|
||||
|
||||
This service deploys [Opik](https://github.com/comet-ml/opik), an open-source platform for LLM observability, evaluation, and optimization. Opik helps you debug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.
|
||||
|
||||
## Services
|
||||
|
||||
- **frontend**: Opik web UI (Nginx)
|
||||
- **backend**: Main Opik backend API service (Java/Dropwizard)
|
||||
- **python-backend**: Python backend for code execution and AI features
|
||||
- **mysql**: MySQL database for state persistence
|
||||
- **clickhouse**: ClickHouse analytics database for trace storage
|
||||
- **redis**: Redis for caching and job queues
|
||||
- **zookeeper**: ZooKeeper for ClickHouse coordination
|
||||
- **minio**: S3-compatible object storage for attachments
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Copy `.env.example` to `.env`:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
2. Update critical secrets in `.env` (optional for local development):
|
||||
|
||||
```bash
|
||||
# Generate secure passwords if needed
|
||||
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. Start the services:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
4. Access Opik at `http://localhost:5173`
|
||||
|
||||
## Core Environment Variables
|
||||
|
||||
| Variable | Description | Default |
|
||||
| ------------------------------- | -------------------------------- | --------- |
|
||||
| `OPIK_VERSION` | Opik container image version | `1.10.23` |
|
||||
| `OPIK_PORT_OVERRIDE` | Web UI port | `5173` |
|
||||
| `OPIK_BACKEND_PORT_OVERRIDE` | Backend API port | `3003` |
|
||||
| `OPIK_USAGE_REPORT_ENABLED` | Enable anonymous usage reporting | `true` |
|
||||
| `TOGGLE_WELCOME_WIZARD_ENABLED` | Show welcome wizard on first run | `true` |
|
||||
|
||||
## Database Configuration
|
||||
|
||||
| Variable | Description | Default |
|
||||
| --------------------- | ------------------------ | ------------------ |
|
||||
| `MYSQL_VERSION` | MySQL version | `8.4.2` |
|
||||
| `MYSQL_ROOT_PASSWORD` | MySQL root password | `opik` |
|
||||
| `MYSQL_DATABASE` | MySQL database name | `opik` |
|
||||
| `MYSQL_USER` | MySQL username | `opik` |
|
||||
| `MYSQL_PASSWORD` | MySQL password | `opik` |
|
||||
| `CLICKHOUSE_VERSION` | ClickHouse version | `25.3.6.56-alpine` |
|
||||
| `CLICKHOUSE_DB` | ClickHouse database name | `opik` |
|
||||
| `CLICKHOUSE_USER` | ClickHouse username | `opik` |
|
||||
| `CLICKHOUSE_PASSWORD` | ClickHouse password | `opik` |
|
||||
|
||||
## Storage & Cache Configuration
|
||||
|
||||
| Variable | Description | Default |
|
||||
| ----------------------------- | -------------------- | ------------------ |
|
||||
| `REDIS_VERSION` | Redis version | `7.2.4-alpine3.19` |
|
||||
| `REDIS_PASSWORD` | Redis password | `opik` |
|
||||
| `MINIO_ROOT_USER` | MinIO admin username | `opikminio` |
|
||||
| `MINIO_ROOT_PASSWORD` | MinIO admin password | `opikminio123` |
|
||||
| `MINIO_PORT_OVERRIDE` | MinIO API port | `9000` |
|
||||
| `MINIO_CONSOLE_PORT_OVERRIDE` | MinIO console port | `9090` |
|
||||
|
||||
## AI Features Configuration (Optional)
|
||||
|
||||
| Variable | Description | Default |
|
||||
| --------------------------- | ---------------------------------- | ------- |
|
||||
| `TOGGLE_OPIK_AI_ENABLED` | Enable Opik AI features | `false` |
|
||||
| `TOGGLE_GUARDRAILS_ENABLED` | Enable guardrails | `false` |
|
||||
| `OPENAI_API_KEY` | OpenAI API key for AI features | `` |
|
||||
| `ANTHROPIC_API_KEY` | Anthropic API key for AI features | `` |
|
||||
| `OPENROUTER_API_KEY` | OpenRouter API key for AI features | `` |
|
||||
|
||||
## Python Backend Configuration
|
||||
|
||||
| Variable | Description | Default |
|
||||
| ------------------------------------------- | ------------------------------------------- | --------- |
|
||||
| `PYTHON_CODE_EXECUTOR_STRATEGY` | Code execution strategy (process/container) | `process` |
|
||||
| `PYTHON_CODE_EXECUTOR_CONTAINERS_NUM` | Number of executor containers | `5` |
|
||||
| `PYTHON_CODE_EXECUTOR_EXEC_TIMEOUT_IN_SECS` | Code execution timeout | `3` |
|
||||
| `PYTHON_CODE_EXECUTOR_ALLOW_NETWORK` | Allow network access in code execution | `false` |
|
||||
| `OPTSTUDIO_MAX_CONCURRENT_JOBS` | Max concurrent optimization jobs | `5` |
|
||||
| `OPTSTUDIO_LOG_LEVEL` | Optimization studio log level | `INFO` |
|
||||
| `OPTSTUDIO_LLM_MAX_TOKENS` | Max tokens for LLM calls | `8192` |
|
||||
|
||||
## Volumes
|
||||
|
||||
- `mysql_data`: MySQL database files
|
||||
- `redis_data`: Redis persistence data
|
||||
- `zookeeper_data`: ZooKeeper data
|
||||
- `clickhouse_data`: ClickHouse data files
|
||||
- `clickhouse_logs`: ClickHouse logs
|
||||
- `clickhouse_config`: ClickHouse configuration
|
||||
- `minio_data`: MinIO object storage data
|
||||
|
||||
## Resource Limits
|
||||
|
||||
All services have configurable CPU and memory limits:
|
||||
|
||||
| Service | CPU Limit | Memory Limit |
|
||||
| -------------- | --------- | ------------ |
|
||||
| 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 Configuration
|
||||
|
||||
To use the Opik Python SDK with this local deployment:
|
||||
|
||||
```python
|
||||
import opik
|
||||
|
||||
# Configure for local deployment
|
||||
opik.configure(use_local=True)
|
||||
|
||||
# Or set environment variables
|
||||
import os
|
||||
os.environ["OPIK_URL_OVERRIDE"] = "http://localhost:5173/api"
|
||||
os.environ["OPIK_API_KEY"] = "" # Leave empty for local deployment
|
||||
|
||||
# Start tracing
|
||||
@opik.track
|
||||
def my_llm_function(user_question: str) -> str:
|
||||
# Your LLM code here
|
||||
return "Hello"
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Opik Documentation](https://www.comet.com/docs/opik/)
|
||||
- [Python SDK Reference](https://www.comet.com/docs/opik/python-sdk-reference/)
|
||||
- [GitHub Repository](https://github.com/comet-ml/opik)
|
||||
|
||||
## License
|
||||
|
||||
Opik is licensed under the Apache 2.0 License.
|
||||
Reference in New Issue
Block a user