mirror of
https://github.com/katanemo/plano.git
synced 2026-06-17 15:25:17 +02:00
Update documentation and test references for new demo paths
- Update README.md demo path references to agent_orchestration/ - Update docs/source paths for multi_turn_rag and travel_agents - Update e2e test scripts for weather_forecast and model_alias_routing - Update docker-compose.dev.yaml and e2e docker-compose.yaml paths - Update demo READMEs with correct cross-references and remove references to deleted observability stacks - Update test runner script for preference_based_routing path Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
5a4f8cb321
commit
056ed67a04
14 changed files with 25 additions and 64 deletions
|
|
@ -45,7 +45,7 @@ Plano pulls rote plumbing out of your framework so you can stay focused on what
|
|||
|
||||
Plano handles **orchestration, model management, and observability** as modular building blocks - letting you configure only what you need (edge proxying for agentic orchestration and guardrails, or LLM routing from your services, or both together) to fit cleanly into existing architectures. Below is a simple multi-agent travel agent built with Plano that showcases all three core capabilities
|
||||
|
||||
> 📁 **Full working code:** See [`demos/use_cases/travel_agents/`](demos/use_cases/travel_agents/) for complete weather and flight agents you can run locally.
|
||||
> 📁 **Full working code:** See [`demos/agent_orchestration/travel_agents/`](demos/agent_orchestration/travel_agents/) for complete weather and flight agents you can run locally.
|
||||
|
||||
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ async def chat(request: Request):
|
|||
days = 7
|
||||
|
||||
# Your agent logic: fetch data, call APIs, run tools
|
||||
# See demos/use_cases/travel_agents/ for the full implementation
|
||||
# See demos/agent_orchestration/travel_agents/ for the full implementation
|
||||
weather_data = await get_weather_data(request, messages, days)
|
||||
|
||||
# Stream the response back through Plano
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ services:
|
|||
- "12000:12000"
|
||||
- "19901:9901"
|
||||
volumes:
|
||||
- ${PLANO_CONFIG_FILE:-../demos/samples_python/weather_forecast/plano_config.yaml}:/app/plano_config.yaml
|
||||
- ${PLANO_CONFIG_FILE:-../demos/getting_started/weather_forecast/plano_config.yaml}:/app/plano_config.yaml
|
||||
- /etc/ssl/cert.pem:/etc/ssl/cert.pem
|
||||
- ./envoy.template.yaml:/app/envoy.template.yaml
|
||||
- ./plano_config_schema.yaml:/app/plano_config_schema.yaml
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ Plano acts as a **framework-agnostic proxy and data plane** that:
|
|||
|
||||
```bash
|
||||
# From the demo directory
|
||||
cd demos/use_cases/multi_agent_with_crewai_langchain
|
||||
cd demos/agent_orchestration/multi_agent_crewai_langchain
|
||||
|
||||
# Build and start all services
|
||||
docker-compose up -d
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ This demo shows how you can use Plano gateway to manage keys and route to upstre
|
|||
```sh
|
||||
sh run_demo.sh
|
||||
```
|
||||
1. Navigate to http://localhost:18080/
|
||||
1. Navigate to http://localhost:3001/
|
||||
|
||||
Following screen shows an example of interaction with Plano gateway showing dynamic routing. You can select between different LLMs using "override model" option in the chat UI.
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ $ curl --header 'Content-Type: application/json' \
|
|||
"messages": {
|
||||
"role": "assistant",
|
||||
"tool_calls": null,
|
||||
"content": "Hello! How can I assist you today? Let's chat about anything you'd like. 😊"
|
||||
"content": "Hello! How can I assist you today? Let's chat about anything you'd like."
|
||||
},
|
||||
"finish_reason": "stop"
|
||||
}
|
||||
|
|
@ -47,11 +47,7 @@ $ curl --header 'Content-Type: application/json' \
|
|||
```
|
||||
|
||||
# Observability
|
||||
Plano gateway publishes stats endpoint at http://localhost:19901/stats. In this demo we are using prometheus to pull stats from Plano and we are using grafana to visualize the stats in dashboard. To see grafana dashboard follow instructions below,
|
||||
|
||||
1. Navigate to http://localhost:3000/ to open grafana UI (use admin/grafana as credentials)
|
||||
1. From grafana left nav click on dashboards and select "Intelligent Gateway Overview" to view Plano gateway stats
|
||||
1. For tracing you can head over to http://localhost:16686/ to view recent traces.
|
||||
For tracing you can head over to http://localhost:16686/ to view recent traces.
|
||||
|
||||
Following is a screenshot of tracing UI showing call received by Plano gateway and making upstream call to LLM,
|
||||
|
||||
|
|
|
|||
|
|
@ -10,50 +10,15 @@ This demo shows how you can use Plano's core function calling capabilities.
|
|||
3. ```sh
|
||||
sh run_demo.sh
|
||||
```
|
||||
4. Navigate to http://localhost:18080/
|
||||
4. Navigate to http://localhost:3001/
|
||||
5. You can type in queries like "how is the weather?"
|
||||
|
||||
# Observability
|
||||
|
||||
Plano gateway publishes stats endpoint at http://localhost:19901/stats. In this demo we are using prometheus to pull stats from Plano and we are using grafana to visalize the stats in dashboard. To see grafana dashboard follow instructions below,
|
||||
|
||||
1. Start grafana and prometheus using following command
|
||||
```yaml
|
||||
docker compose --profile monitoring up
|
||||
```
|
||||
2. Navigate to http://localhost:3000/ to open grafana UI (use admin/grafana as credentials)
|
||||
3. From grafana left nav click on dashboards and select "Intelligent Gateway Overview" to view Plano gateway stats
|
||||
|
||||
Here is a sample interaction,
|
||||
<img width="575" alt="image" src="https://github.com/user-attachments/assets/e0929490-3eb2-4130-ae87-a732aea4d059">
|
||||
|
||||
## Tracing
|
||||
|
||||
To see a tracing dashboard follow instructions below,
|
||||
|
||||
1. For Jaeger, you can either use the default run_demo.sh script or run the following command:
|
||||
|
||||
```sh
|
||||
sh run_demo.sh jaeger
|
||||
```
|
||||
|
||||
2. For Logfire, first make sure to add a LOGFIRE_API_KEY to the .env file. You can either use the default run_demo.sh script or run the following command:
|
||||
|
||||
```sh
|
||||
sh run_demo.sh logfire
|
||||
```
|
||||
|
||||
3. For Signoz, you can either use the default run_demo.sh script or run the following command:
|
||||
|
||||
```sh
|
||||
sh run_demo.sh signoz
|
||||
```
|
||||
|
||||
If using Jaeger, navigate to http://localhost:16686/ to open Jaeger UI
|
||||
|
||||
If using Signoz, navigate to http://localhost:3301/ to open Signoz UI
|
||||
|
||||
If using Logfire, navigate to your logfire dashboard that you got the write key from to view the dashboard
|
||||
To see a tracing dashboard, navigate to http://localhost:16686/ to open Jaeger UI.
|
||||
|
||||
### Stopping Demo
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ docker --version
|
|||
```bash
|
||||
# Clone and navigate to demo
|
||||
git clone https://github.com/katanemo/arch.git
|
||||
cd arch/demos/use_cases/claude_code
|
||||
cd arch/demos/llm_routing/claude_code_router
|
||||
```
|
||||
|
||||
### Step 2: Set API Keys
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ Make sure your machine is up to date with [latest version of plano]([url](https:
|
|||
|
||||
1. start anythingllm
|
||||
```bash
|
||||
(venv) $ cd demos/use_cases/preference_based_routing
|
||||
(venv) $ cd demos/llm_routing/preference_based_routing
|
||||
(venv) $ docker compose up -d
|
||||
```
|
||||
2. start plano in the foreground
|
||||
|
|
@ -16,7 +16,7 @@ Make sure your machine is up to date with [latest version of plano]([url](https:
|
|||
(venv) $ planoai up --service plano --foreground
|
||||
# Or if installed with uv: uvx planoai up --service plano --foreground
|
||||
2025-05-30 18:00:09,953 - planoai.main - INFO - Starting plano cli version: 0.4.6
|
||||
2025-05-30 18:00:09,953 - planoai.main - INFO - Validating /Users/adilhafeez/src/intelligent-prompt-gateway/demos/use_cases/preference_based_routing/config.yaml
|
||||
2025-05-30 18:00:09,953 - planoai.main - INFO - Validating /Users/adilhafeez/src/intelligent-prompt-gateway/demos/llm_routing/preference_based_routing/config.yaml
|
||||
2025-05-30 18:00:10,422 - cli.core - INFO - Starting plano gateway, image name: plano, tag: katanemo/plano:0.4.6
|
||||
2025-05-30 18:00:10,662 - cli.core - INFO - plano status: running, health status: starting
|
||||
2025-05-30 18:00:11,712 - cli.core - INFO - plano status: running, health status: starting
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ do
|
|||
echo "starting plano"
|
||||
planoai up config.yaml
|
||||
echo "starting docker containers"
|
||||
# only execute docker compose if demo is use_cases/preference_based_routing
|
||||
if [ "$demo" == "use_cases/preference_based_routing" ]; then
|
||||
# only execute docker compose if demo is llm_routing/preference_based_routing
|
||||
if [ "$demo" == "llm_routing/preference_based_routing" ]; then
|
||||
echo "starting docker compose for $demo"
|
||||
docker compose -f docker-compose.yaml up -d 2>&1 > /dev/null
|
||||
else
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ Once the prompt targets are configured as above, handle parameters across multi-
|
|||
Demo App
|
||||
--------
|
||||
|
||||
For your convenience, we've built a `demo app <https://github.com/katanemo/plano/tree/main/demos/samples_python/multi_turn_rag_agent>`_
|
||||
For your convenience, we've built a `demo app <https://github.com/katanemo/plano/tree/main/demos/advanced/multi_turn_rag>`_
|
||||
that you can test and modify locally for multi-turn RAG scenarios.
|
||||
|
||||
.. figure:: ../build_with_plano/includes/multi_turn/mutli-turn-example.png
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ Next Steps
|
|||
* Explore :ref:`filter chains <filter_chain>` for adding guardrails and context enrichment
|
||||
* See :ref:`observability <observability>` for monitoring multi-agent workflows
|
||||
* Review the :ref:`LLM Providers <llm_providers>` guide for model routing within agents
|
||||
* Check out the complete `Travel Booking demo <https://github.com/katanemo/plano/tree/main/demos/use_cases/travel_booking>`_ on GitHub
|
||||
* Check out the complete `Travel Booking demo <https://github.com/katanemo/plano/tree/main/demos/agent_orchestration/travel_agents>`_ on GitHub
|
||||
|
||||
.. note::
|
||||
To observe traffic to and from agents, please read more about :ref:`observability <observability>` in Plano.
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ services:
|
|||
- "12000:12000"
|
||||
- "19901:9901"
|
||||
volumes:
|
||||
- ../../demos/samples_python/weather_forecast/plano_config.yaml:/app/plano_config.yaml
|
||||
- ../../demos/getting_started/weather_forecast/plano_config.yaml:/app/plano_config.yaml
|
||||
- /etc/ssl/cert.pem:/etc/ssl/cert.pem
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ log starting > ../build.log
|
|||
|
||||
log building and running function_calling demo
|
||||
log ===========================================
|
||||
cd ../../demos/samples_python/weather_forecast/
|
||||
cd ../../demos/getting_started/weather_forecast/
|
||||
docker compose up weather_forecast_service --build -d
|
||||
cd -
|
||||
|
||||
|
|
@ -46,7 +46,7 @@ uv sync
|
|||
log startup plano gateway with function calling demo
|
||||
cd ../../
|
||||
planoai down
|
||||
planoai up demos/samples_python/weather_forecast/config.yaml
|
||||
planoai up demos/getting_started/weather_forecast/config.yaml
|
||||
cd -
|
||||
|
||||
log running e2e tests for prompt gateway
|
||||
|
|
@ -59,7 +59,7 @@ planoai down
|
|||
|
||||
log startup plano gateway with model alias routing demo
|
||||
cd ../../
|
||||
planoai up demos/use_cases/model_alias_routing/config_with_aliases.yaml
|
||||
planoai up demos/llm_routing/model_alias_routing/config_with_aliases.yaml
|
||||
cd -
|
||||
|
||||
log running e2e tests for model alias routing
|
||||
|
|
@ -80,6 +80,6 @@ uv run pytest test_openai_responses_api_client_with_state.py
|
|||
|
||||
log shutting down the weather_forecast demo
|
||||
log =======================================
|
||||
cd ../../demos/samples_python/weather_forecast
|
||||
cd ../../demos/getting_started/weather_forecast
|
||||
docker compose down
|
||||
cd -
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ uv sync
|
|||
log "startup plano gateway with model alias routing demo"
|
||||
cd ../../
|
||||
planoai down || true
|
||||
planoai up demos/use_cases/model_alias_routing/config_with_aliases.yaml
|
||||
planoai up demos/llm_routing/model_alias_routing/config_with_aliases.yaml
|
||||
cd -
|
||||
|
||||
# Run both test suites that share this config in a single pytest invocation
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ uv sync
|
|||
|
||||
# Start weather_forecast service (needed for prompt_gateway tests)
|
||||
log "building and running weather_forecast service"
|
||||
cd ../../demos/samples_python/weather_forecast/
|
||||
cd ../../demos/getting_started/weather_forecast/
|
||||
docker compose up weather_forecast_service --build -d
|
||||
cd -
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ cd -
|
|||
log "startup plano gateway with function calling demo"
|
||||
cd ../../
|
||||
planoai down || true
|
||||
planoai up demos/samples_python/weather_forecast/config.yaml
|
||||
planoai up demos/getting_started/weather_forecast/config.yaml
|
||||
cd -
|
||||
|
||||
# Run tests
|
||||
|
|
@ -52,6 +52,6 @@ uv run pytest test_prompt_gateway.py
|
|||
# Cleanup
|
||||
log "shutting down"
|
||||
planoai down || true
|
||||
cd ../../demos/samples_python/weather_forecast
|
||||
cd ../../demos/getting_started/weather_forecast
|
||||
docker compose down
|
||||
cd -
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue