kalibr 1.2.9__py3-none-any.whl → 1.2.11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kalibr/router.py +20 -1
- {kalibr-1.2.9.dist-info → kalibr-1.2.11.dist-info}/METADATA +11 -2
- {kalibr-1.2.9.dist-info → kalibr-1.2.11.dist-info}/RECORD +7 -7
- {kalibr-1.2.9.dist-info → kalibr-1.2.11.dist-info}/LICENSE +0 -0
- {kalibr-1.2.9.dist-info → kalibr-1.2.11.dist-info}/WHEEL +0 -0
- {kalibr-1.2.9.dist-info → kalibr-1.2.11.dist-info}/entry_points.txt +0 -0
- {kalibr-1.2.9.dist-info → kalibr-1.2.11.dist-info}/top_level.txt +0 -0
kalibr/router.py
CHANGED
|
@@ -112,6 +112,25 @@ class Router:
|
|
|
112
112
|
auto_register: If True, register paths on init
|
|
113
113
|
"""
|
|
114
114
|
self.goal = goal
|
|
115
|
+
|
|
116
|
+
# Validate required environment variables
|
|
117
|
+
api_key = os.environ.get('KALIBR_API_KEY')
|
|
118
|
+
tenant_id = os.environ.get('KALIBR_TENANT_ID')
|
|
119
|
+
|
|
120
|
+
if not api_key:
|
|
121
|
+
raise ValueError(
|
|
122
|
+
"KALIBR_API_KEY environment variable not set.\n"
|
|
123
|
+
"Get your API key from: https://dashboard.kalibr.systems/settings\n"
|
|
124
|
+
"Then run: export KALIBR_API_KEY=your-key-here"
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
if not tenant_id:
|
|
128
|
+
raise ValueError(
|
|
129
|
+
"KALIBR_TENANT_ID environment variable not set.\n"
|
|
130
|
+
"Find your Tenant ID at: https://dashboard.kalibr.systems/settings\n"
|
|
131
|
+
"Then run: export KALIBR_TENANT_ID=your-tenant-id"
|
|
132
|
+
)
|
|
133
|
+
|
|
115
134
|
self.success_when = success_when
|
|
116
135
|
self.exploration_rate = exploration_rate
|
|
117
136
|
self._last_trace_id: Optional[str] = None
|
|
@@ -216,7 +235,7 @@ class Router:
|
|
|
216
235
|
self._last_model_id = model_id
|
|
217
236
|
|
|
218
237
|
# Step 3: Create OTel context with intelligence trace_id
|
|
219
|
-
otel_context = _create_context_with_trace_id(trace_id) if
|
|
238
|
+
otel_context = _create_context_with_trace_id(trace_id) if trace_id else None
|
|
220
239
|
|
|
221
240
|
# Step 4: Create span with custom context (child spans inherit trace_id)
|
|
222
241
|
tracer = otel_trace.get_tracer("kalibr.router")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: kalibr
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.11
|
|
4
4
|
Summary: Adaptive routing for AI agents. Learns which models work best and routes automatically.
|
|
5
5
|
Author-email: Kalibr Team <support@kalibr.systems>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -78,6 +78,15 @@ Adaptive routing for AI agents. Kalibr learns which models work best for your ta
|
|
|
78
78
|
pip install kalibr
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
+
## Setup
|
|
82
|
+
|
|
83
|
+
Get your credentials from [dashboard.kalibr.systems/settings](https://dashboard.kalibr.systems/settings), then:
|
|
84
|
+
```bash
|
|
85
|
+
export KALIBR_API_KEY=your-api-key
|
|
86
|
+
export KALIBR_TENANT_ID=your-tenant-id
|
|
87
|
+
export OPENAI_API_KEY=sk-... # or ANTHROPIC_API_KEY for Claude models
|
|
88
|
+
```
|
|
89
|
+
|
|
81
90
|
## Quick Start
|
|
82
91
|
```python
|
|
83
92
|
from kalibr import Router
|
|
@@ -282,6 +291,6 @@ Apache-2.0
|
|
|
282
291
|
|
|
283
292
|
## Links
|
|
284
293
|
|
|
285
|
-
- [Docs](https://kalibr.
|
|
294
|
+
- [Docs](https://kalibr.systems/docs)
|
|
286
295
|
- [Dashboard](https://dashboard.kalibr.systems)
|
|
287
296
|
- [GitHub](https://github.com/kalibr-ai/kalibr-sdk-python)
|
|
@@ -12,7 +12,7 @@ kalibr/kalibr_app.py,sha256=ItZwEh0FZPx9_BE-zPQajC2yxI2y9IHYwJD0k9tbHvY,2773
|
|
|
12
12
|
kalibr/models.py,sha256=HwD_-iysZMSnCzMQYO1Qcf0aeXySupY7yJeBwl_dLS0,1024
|
|
13
13
|
kalibr/pricing.py,sha256=wY0GzcrZdXuHlZoq2e74RkX0scd6somk_KYbr-RSHdE,8844
|
|
14
14
|
kalibr/redaction.py,sha256=XibxX4Lv1Ci0opE6Tb5ZI2GLbO0a8E9U66MAg60llnc,1139
|
|
15
|
-
kalibr/router.py,sha256=
|
|
15
|
+
kalibr/router.py,sha256=PS43LAkMnhQLrADX8bPACPP0PygEc9Sv-BWhX6TLQuc,18905
|
|
16
16
|
kalibr/schemas.py,sha256=XLZNLkXca6jbj9AF6gDIyGVnIcr1SVOsNYaKvW-wbgE,3669
|
|
17
17
|
kalibr/simple_tracer.py,sha256=oiwXtiYaIqZxqCNV-b79_dsiJT0D3XvKhNT_LF6bRD4,9736
|
|
18
18
|
kalibr/tokens.py,sha256=istjgaxi9S4dMddjuGtoQaTnZYcWLCqdnxRjV86yNXA,1297
|
|
@@ -44,9 +44,9 @@ kalibr_langchain/callback.py,sha256=SNM1aHOXdG55grHmGyTwbXOeM6hjZTub2REiZD2H-d8,
|
|
|
44
44
|
kalibr_langchain/chat_model.py,sha256=Y4xsZGx9gZpDUF8NP-edJuYam4k0NBySdA6B5484MKk,3190
|
|
45
45
|
kalibr_openai_agents/__init__.py,sha256=wL59LzGstptKigfQDrKKt_7hcMO1JGVQtVAsE0lz-Zw,1367
|
|
46
46
|
kalibr_openai_agents/processor.py,sha256=F550sdRf3rpguP1yOlgAUQWDLPBy4hSACV3-zOyCpOU,18257
|
|
47
|
-
kalibr-1.2.
|
|
48
|
-
kalibr-1.2.
|
|
49
|
-
kalibr-1.2.
|
|
50
|
-
kalibr-1.2.
|
|
51
|
-
kalibr-1.2.
|
|
52
|
-
kalibr-1.2.
|
|
47
|
+
kalibr-1.2.11.dist-info/LICENSE,sha256=5mwAnB38l3_PjmOQn6_L6cZnJvus143DUjMBPIH1yso,10768
|
|
48
|
+
kalibr-1.2.11.dist-info/METADATA,sha256=zTjMZq_l9ul9P_QcPihtPvU6n-CY_auKQX8jM-khlDE,9299
|
|
49
|
+
kalibr-1.2.11.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
|
|
50
|
+
kalibr-1.2.11.dist-info/entry_points.txt,sha256=Kojlc6WRX8V1qS9lOMdDPZpTUVHCtzGtHqXusErgmLY,47
|
|
51
|
+
kalibr-1.2.11.dist-info/top_level.txt,sha256=dIfBOWUnnHGFDwgz5zfIx5_0bU3wOUgAbYr4JcFHZmo,59
|
|
52
|
+
kalibr-1.2.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|