plano/config
Adil Hafeez bd7afd911e add DigitalOcean pricing, startup validation, and demo update
- MetricsSource::DigitalOceanPricing variant: fetch public DO Gen-AI pricing, normalize as lowercase(creator)/model_id, cost = input + output per million
- cost_metrics endpoint format updated to { "model": { "input_per_million": X, "output_per_million": Y } }
- Startup errors: prefer:cheapest requires cost source, prefer:fastest requires prometheus
- Startup warning: models with no pricing/latency data ranked last
- One-per-type enforcement: digitalocean_pricing; error if cost_metrics + digitalocean_pricing both configured
- cost_snapshot() / latency_snapshot() on ModelMetricsService for startup checks
- Demo config updated to v0.4.0 top-level routing_preferences with cheapest + fastest policies
- docker-compose.yaml + prometheus.yaml + metrics_server.py for demo latency metrics
- Schema and docs updated
2026-03-27 16:54:37 -07:00
..
docker-compose.dev.yaml Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
env.list restructure cli (#656) 2025-12-25 14:55:29 -08:00
envoy.template.yaml Unified overrides for custom router and orchestrator models (#820) 2026-03-15 09:36:11 -07:00
plano_config_schema.yaml add DigitalOcean pricing, startup validation, and demo update 2026-03-27 16:54:37 -07:00
README.md Adding support for wildcard models in the model_providers config (#696) 2026-01-28 17:47:33 -08:00
requirements.txt restructure cli (#656) 2025-12-25 14:55:29 -08:00
supervisord.conf separate config generation from process startup in supervisord (#838) 2026-03-19 22:37:56 -07:00
test_passthrough.yaml Run plano natively by default (#744) 2026-03-05 07:35:25 -08:00
validate_plano_config.sh Run plano natively by default (#744) 2026-03-05 07:35:25 -08:00

Envoy filter code for gateway

Add toolchain

$ rustup target add wasm32-wasip1

Building

$ cargo build --target wasm32-wasip1 --release

Testing

$ cargo test

Local development

  • Build docker image for Plano. Note this needs to be built once.

    $ sh build_filter_image.sh
    
  • Build filter binary,

    $ cargo build --target wasm32-wasip1 --release
    
  • Start envoy with config.yaml and test,

    $ docker compose -f docker-compose.dev.yaml up plano
    
  • dev version of docker-compose file uses following files that are mounted inside the container. That means no docker rebuild is needed if any of these files change. Just restart the container and chagne will be picked up,

    • envoy.template.yaml
    • intelligent_prompt_gateway.wasm