- Introduced Convex, an open-source reactive database, with README and environment variable configurations. - Added Chinese translation for Convex documentation. - Created docker-compose configuration for Convex services. - Introduced llama-swap, a model swapping proxy for OpenAI/Anthropic compatible servers, with comprehensive README and example configuration. - Added Chinese translation for llama-swap documentation. - Included example environment file and docker-compose setup for llama-swap. - Configured health checks and resource limits for both Convex and llama-swap services.
Opik
This service deploys 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
-
Copy
.env.exampleto.env:cp .env.example .env -
Update critical secrets in
.env(optional for local development):# 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 -
Start the services:
docker compose up -d -
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 filesredis_data: Redis persistence datazookeeper_data: ZooKeeper dataclickhouse_data: ClickHouse data filesclickhouse_logs: ClickHouse logsclickhouse_config: ClickHouse configurationminio_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:
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
License
Opik is licensed under the Apache 2.0 License.