pygeai 0.6.0b12__py3-none-any.whl → 0.6.0b14__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.
- pygeai/_docs/source/content/migration.rst +391 -7
- pygeai/analytics/managers.py +1 -1
- pygeai/assistant/managers.py +1 -1
- pygeai/chat/managers.py +1 -1
- pygeai/cli/commands/analytics.py +24 -16
- pygeai/cli/geai.py +7 -2
- pygeai/core/base/session.py +14 -0
- pygeai/core/embeddings/managers.py +1 -1
- pygeai/core/files/managers.py +1 -1
- pygeai/core/rerank/managers.py +1 -1
- pygeai/evaluation/clients.py +1 -1
- pygeai/lab/managers.py +1 -1
- pygeai/organization/limits/managers.py +1 -1
- pygeai/organization/managers.py +1 -1
- {pygeai-0.6.0b12.dist-info → pygeai-0.6.0b14.dist-info}/METADATA +1 -1
- {pygeai-0.6.0b12.dist-info → pygeai-0.6.0b14.dist-info}/RECORD +20 -20
- {pygeai-0.6.0b12.dist-info → pygeai-0.6.0b14.dist-info}/WHEEL +0 -0
- {pygeai-0.6.0b12.dist-info → pygeai-0.6.0b14.dist-info}/entry_points.txt +0 -0
- {pygeai-0.6.0b12.dist-info → pygeai-0.6.0b14.dist-info}/licenses/LICENSE +0 -0
- {pygeai-0.6.0b12.dist-info → pygeai-0.6.0b14.dist-info}/top_level.txt +0 -0
|
@@ -109,6 +109,383 @@ The required API keys depend on whether you're creating a new project or migrati
|
|
|
109
109
|
.. warning::
|
|
110
110
|
When migrating to an existing project (using ``--to-project-id``), you MUST provide ``--to-api-key``. This is a project scope token that has write access to the destination project.
|
|
111
111
|
|
|
112
|
+
Interactive Mode
|
|
113
|
+
----------------
|
|
114
|
+
|
|
115
|
+
The migration tool provides an **interactive mode** that guides you through the migration process with step-by-step prompts. This mode is ideal when:
|
|
116
|
+
|
|
117
|
+
- You're new to the migration tool and want guidance
|
|
118
|
+
- You don't know the exact IDs of resources to migrate
|
|
119
|
+
- You want to browse and select resources interactively
|
|
120
|
+
- You prefer a wizard-style interface over command-line arguments
|
|
121
|
+
|
|
122
|
+
Invoking Interactive Mode
|
|
123
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
124
|
+
|
|
125
|
+
To start the interactive migration wizard, use the ``--interactive`` or ``-i`` flag:
|
|
126
|
+
|
|
127
|
+
.. code-block:: shell
|
|
128
|
+
|
|
129
|
+
geai migrate clone-project --interactive
|
|
130
|
+
|
|
131
|
+
or shorter:
|
|
132
|
+
|
|
133
|
+
.. code-block:: shell
|
|
134
|
+
|
|
135
|
+
geai migrate clone-project -i
|
|
136
|
+
|
|
137
|
+
Interactive Mode Walkthrough
|
|
138
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
139
|
+
|
|
140
|
+
When you launch interactive mode, the wizard will guide you through the following steps:
|
|
141
|
+
|
|
142
|
+
**Step 1: Migration Type Selection**
|
|
143
|
+
|
|
144
|
+
Choose whether you're migrating within the same instance or to a different instance:
|
|
145
|
+
|
|
146
|
+
.. code-block:: text
|
|
147
|
+
|
|
148
|
+
================================================================================
|
|
149
|
+
PROJECT MIGRATION ASSISTANT
|
|
150
|
+
================================================================================
|
|
151
|
+
|
|
152
|
+
Migration type (1=same instance, 2=cross instance):
|
|
153
|
+
|
|
154
|
+
- Option ``1``: Migrate within the same GEAI instance (destination instance will be same as source)
|
|
155
|
+
- Option ``2``: Migrate to a different GEAI instance (you'll provide separate destination credentials)
|
|
156
|
+
|
|
157
|
+
**Step 2: Source Configuration**
|
|
158
|
+
|
|
159
|
+
Provide your source project credentials:
|
|
160
|
+
|
|
161
|
+
.. code-block:: text
|
|
162
|
+
|
|
163
|
+
--- Source Configuration ---
|
|
164
|
+
Source API key: [enter your source API key]
|
|
165
|
+
Source instance URL: [enter source instance URL, e.g., https://api.dev.example.ai]
|
|
166
|
+
Source project ID: [enter source project ID]
|
|
167
|
+
|
|
168
|
+
The wizard will automatically retrieve your source organization ID from the API token.
|
|
169
|
+
|
|
170
|
+
**Step 3: Project Creation or Selection**
|
|
171
|
+
|
|
172
|
+
Decide whether to create a new destination project or use an existing one:
|
|
173
|
+
|
|
174
|
+
.. code-block:: text
|
|
175
|
+
|
|
176
|
+
Create new destination project? (y/n):
|
|
177
|
+
|
|
178
|
+
- If you choose ``y`` (yes): You'll provide organization API keys, project name, and admin email to create a new project
|
|
179
|
+
- If you choose ``n`` (no): You'll provide an existing destination project ID
|
|
180
|
+
|
|
181
|
+
**For new project creation:**
|
|
182
|
+
|
|
183
|
+
.. code-block:: text
|
|
184
|
+
|
|
185
|
+
Source organization API key: [enter organization scope API key]
|
|
186
|
+
Destination organization API key: [same as source for same instance, or enter different key]
|
|
187
|
+
New project name: [enter name for new project]
|
|
188
|
+
Admin email: [enter admin email for project]
|
|
189
|
+
|
|
190
|
+
**For existing project:**
|
|
191
|
+
|
|
192
|
+
.. code-block:: text
|
|
193
|
+
|
|
194
|
+
Destination project ID: [enter existing project ID]
|
|
195
|
+
|
|
196
|
+
**Step 4: Destination Configuration**
|
|
197
|
+
|
|
198
|
+
If you selected cross-instance migration (option 2) or using an existing project, provide destination details:
|
|
199
|
+
|
|
200
|
+
.. code-block:: text
|
|
201
|
+
|
|
202
|
+
--- Destination Configuration ---
|
|
203
|
+
Destination instance URL: [enter destination URL if cross-instance]
|
|
204
|
+
Destination API key: [enter project API key for destination]
|
|
205
|
+
|
|
206
|
+
**Step 5: Resource Type Selection**
|
|
207
|
+
|
|
208
|
+
Select which types of resources you want to migrate:
|
|
209
|
+
|
|
210
|
+
.. code-block:: text
|
|
211
|
+
|
|
212
|
+
--- Resource Type Selection ---
|
|
213
|
+
Which resource types do you want to migrate?
|
|
214
|
+
1. Agents
|
|
215
|
+
2. Tools
|
|
216
|
+
3. Agentic Processes
|
|
217
|
+
4. Tasks
|
|
218
|
+
5. RAG Assistants
|
|
219
|
+
6. Files
|
|
220
|
+
7. Usage Limits
|
|
221
|
+
8. Secrets
|
|
222
|
+
|
|
223
|
+
Select resource types (comma-separated numbers, or empty for all):
|
|
224
|
+
|
|
225
|
+
- Enter specific numbers (e.g., ``1,2,5`` for Agents, Tools, and RAG Assistants)
|
|
226
|
+
- Press Enter without typing anything to migrate **all** resource types
|
|
227
|
+
|
|
228
|
+
**Step 6: Resource Selection**
|
|
229
|
+
|
|
230
|
+
For each selected resource type, the wizard fetches available resources and displays an interactive menu:
|
|
231
|
+
|
|
232
|
+
.. code-block:: text
|
|
233
|
+
|
|
234
|
+
--- Retrieving Available Resources ---
|
|
235
|
+
|
|
236
|
+
Available agents:
|
|
237
|
+
0. Cancel (don't migrate this resource type)
|
|
238
|
+
1. Customer Support Agent (ID: agent-abc-123)
|
|
239
|
+
2. Data Analysis Agent (ID: agent-def-456)
|
|
240
|
+
3. Code Review Agent (ID: agent-ghi-789)
|
|
241
|
+
|
|
242
|
+
Select agents (comma-separated numbers, or empty for all):
|
|
243
|
+
|
|
244
|
+
Selection options:
|
|
245
|
+
|
|
246
|
+
- Press **Enter** without typing: Migrate **all** resources of this type
|
|
247
|
+
- Enter **0**: Skip this resource type entirely
|
|
248
|
+
- Enter **specific numbers**: Migrate only selected resources (e.g., ``1,3`` to migrate items 1 and 3)
|
|
249
|
+
|
|
250
|
+
This process repeats for each resource type you selected in Step 5.
|
|
251
|
+
|
|
252
|
+
**Step 7: Migration Summary and Confirmation**
|
|
253
|
+
|
|
254
|
+
Review your migration configuration before execution:
|
|
255
|
+
|
|
256
|
+
.. code-block:: text
|
|
257
|
+
|
|
258
|
+
--- Migration Summary ---
|
|
259
|
+
Source: https://api.dev.example.ai / Project: source-project-123
|
|
260
|
+
Destination: https://api.prod.example.ai / Project: Production Release
|
|
261
|
+
Resources: agents, tools, rag_assistants
|
|
262
|
+
|
|
263
|
+
Stop migration on first error? (Y/n):
|
|
264
|
+
|
|
265
|
+
- Enter ``Y`` or press Enter to stop migration if any resource fails
|
|
266
|
+
- Enter ``n`` to continue migrating remaining resources even if some fail
|
|
267
|
+
|
|
268
|
+
.. code-block:: text
|
|
269
|
+
|
|
270
|
+
Proceed with migration? (y/n):
|
|
271
|
+
|
|
272
|
+
- Enter ``y`` to start the migration
|
|
273
|
+
- Enter ``n`` to cancel and exit without making changes
|
|
274
|
+
|
|
275
|
+
**Step 8: Migration Execution**
|
|
276
|
+
|
|
277
|
+
The migration proceeds with real-time progress updates:
|
|
278
|
+
|
|
279
|
+
.. code-block:: text
|
|
280
|
+
|
|
281
|
+
============================================================
|
|
282
|
+
Migration Progress: 0/15 completed
|
|
283
|
+
============================================================
|
|
284
|
+
|
|
285
|
+
[1/15] Migrating agent 'Customer Support Agent'...
|
|
286
|
+
✓ Successfully migrated agent 'Customer Support Agent'
|
|
287
|
+
|
|
288
|
+
[2/15] Migrating agent 'Data Analysis Agent'...
|
|
289
|
+
✓ Successfully migrated agent 'Data Analysis Agent'
|
|
290
|
+
|
|
291
|
+
[3/15] Migrating tool 'Database Query Tool'...
|
|
292
|
+
✓ Successfully migrated tool 'Database Query Tool'
|
|
293
|
+
|
|
294
|
+
...
|
|
295
|
+
|
|
296
|
+
============================================================
|
|
297
|
+
Migration Complete: 15/15 successful
|
|
298
|
+
============================================================
|
|
299
|
+
|
|
300
|
+
Interactive Mode Benefits
|
|
301
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
302
|
+
|
|
303
|
+
**1. No Need to Remember IDs**
|
|
304
|
+
|
|
305
|
+
You don't need to know resource IDs beforehand. The wizard fetches and displays all available resources with their names and IDs.
|
|
306
|
+
|
|
307
|
+
**2. Visual Resource Selection**
|
|
308
|
+
|
|
309
|
+
Browse resources in numbered menus and select exactly what you want to migrate.
|
|
310
|
+
|
|
311
|
+
**3. Guided Configuration**
|
|
312
|
+
|
|
313
|
+
Step-by-step prompts ensure you provide all required information in the correct order.
|
|
314
|
+
|
|
315
|
+
**4. Input Validation**
|
|
316
|
+
|
|
317
|
+
The wizard validates your input at each step and prompts you to retry if something is invalid.
|
|
318
|
+
|
|
319
|
+
**5. Pre-Migration Summary**
|
|
320
|
+
|
|
321
|
+
Review all settings before execution with a clear summary of what will be migrated.
|
|
322
|
+
|
|
323
|
+
**6. Flexible Selection**
|
|
324
|
+
|
|
325
|
+
Easily mix migration strategies: migrate all agents, specific tools, all RAG assistants, etc.
|
|
326
|
+
|
|
327
|
+
**7. Error Recovery**
|
|
328
|
+
|
|
329
|
+
If you make a mistake during prompts, the wizard will ask again instead of failing the entire operation.
|
|
330
|
+
|
|
331
|
+
Interactive vs. CLI Mode Comparison
|
|
332
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
333
|
+
|
|
334
|
+
+----------------------------+---------------------------+---------------------------+
|
|
335
|
+
| Feature | Interactive Mode | CLI Mode |
|
|
336
|
+
+============================+===========================+===========================+
|
|
337
|
+
| **Ease of Use** | Beginner-friendly wizard | Requires knowledge of |
|
|
338
|
+
| | | all CLI arguments |
|
|
339
|
+
+----------------------------+---------------------------+---------------------------+
|
|
340
|
+
| **Resource Discovery** | Automatic with menus | Manual (use API or docs) |
|
|
341
|
+
+----------------------------+---------------------------+---------------------------+
|
|
342
|
+
| **Input Validation** | Real-time with retry | Fails if invalid args |
|
|
343
|
+
+----------------------------+---------------------------+---------------------------+
|
|
344
|
+
| **Automation** | Not scriptable | Fully scriptable |
|
|
345
|
+
+----------------------------+---------------------------+---------------------------+
|
|
346
|
+
| **Best For** | One-time migrations, | CI/CD pipelines, |
|
|
347
|
+
| | exploration, learning | automation, scripting |
|
|
348
|
+
+----------------------------+---------------------------+---------------------------+
|
|
349
|
+
|
|
350
|
+
When to Use Interactive Mode
|
|
351
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
352
|
+
|
|
353
|
+
✅ **Use Interactive Mode when:**
|
|
354
|
+
|
|
355
|
+
- You're performing a one-time migration
|
|
356
|
+
- You're unsure of exact resource IDs or names
|
|
357
|
+
- You want to browse available resources before selecting
|
|
358
|
+
- You're learning how migration works
|
|
359
|
+
- You prefer guided prompts over memorizing command syntax
|
|
360
|
+
|
|
361
|
+
❌ **Use CLI Mode instead when:**
|
|
362
|
+
|
|
363
|
+
- You're automating migrations in scripts or CI/CD pipelines
|
|
364
|
+
- You already know exact resource IDs to migrate
|
|
365
|
+
- You need to run the same migration multiple times
|
|
366
|
+
- You want to version control migration commands
|
|
367
|
+
|
|
368
|
+
Example Interactive Session
|
|
369
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
370
|
+
|
|
371
|
+
Here's a complete example of an interactive migration session:
|
|
372
|
+
|
|
373
|
+
.. code-block:: text
|
|
374
|
+
|
|
375
|
+
$ geai migrate clone-project -i
|
|
376
|
+
|
|
377
|
+
================================================================================
|
|
378
|
+
PROJECT MIGRATION ASSISTANT
|
|
379
|
+
================================================================================
|
|
380
|
+
|
|
381
|
+
Migration type (1=same instance, 2=cross instance): 2
|
|
382
|
+
|
|
383
|
+
--- Source Configuration ---
|
|
384
|
+
Source API key: sk_dev_abc123...
|
|
385
|
+
Source instance URL: https://api.dev.example.ai
|
|
386
|
+
Source project ID: proj-dev-001
|
|
387
|
+
|
|
388
|
+
Create new destination project? (y/n): y
|
|
389
|
+
Source organization API key: sk_org_dev_xyz789...
|
|
390
|
+
Destination organization API key: sk_org_prod_def456...
|
|
391
|
+
New project name: Production Release v2.0
|
|
392
|
+
Admin email: admin@example.com
|
|
393
|
+
|
|
394
|
+
--- Destination Configuration ---
|
|
395
|
+
Destination instance URL: https://api.prod.example.ai
|
|
396
|
+
Destination API key: (will be created after project creation)
|
|
397
|
+
|
|
398
|
+
--- Resource Type Selection ---
|
|
399
|
+
Which resource types do you want to migrate?
|
|
400
|
+
1. Agents
|
|
401
|
+
2. Tools
|
|
402
|
+
3. Agentic Processes
|
|
403
|
+
4. Tasks
|
|
404
|
+
5. RAG Assistants
|
|
405
|
+
6. Files
|
|
406
|
+
7. Usage Limits
|
|
407
|
+
8. Secrets
|
|
408
|
+
|
|
409
|
+
Select resource types (comma-separated numbers, or empty for all): 1,2,5
|
|
410
|
+
|
|
411
|
+
--- Retrieving Available Resources ---
|
|
412
|
+
|
|
413
|
+
Available agents:
|
|
414
|
+
0. Cancel (don't migrate this resource type)
|
|
415
|
+
1. Customer Support Agent (ID: agent-001)
|
|
416
|
+
2. Sales Assistant (ID: agent-002)
|
|
417
|
+
3. HR Onboarding Agent (ID: agent-003)
|
|
418
|
+
|
|
419
|
+
Select agents (comma-separated numbers, or empty for all):
|
|
420
|
+
|
|
421
|
+
Available tools:
|
|
422
|
+
0. Cancel (don't migrate this resource type)
|
|
423
|
+
1. Database Query Tool (ID: tool-001)
|
|
424
|
+
2. Email Sender (ID: tool-002)
|
|
425
|
+
3. Calendar Integration (ID: tool-003)
|
|
426
|
+
|
|
427
|
+
Select tools (comma-separated numbers, or empty for all): 1,3
|
|
428
|
+
|
|
429
|
+
Available RAG assistants:
|
|
430
|
+
0. Cancel (don't migrate this resource type)
|
|
431
|
+
1. Documentation Assistant (ID: doc-assistant-001)
|
|
432
|
+
2. Code Helper (ID: code-assistant-002)
|
|
433
|
+
|
|
434
|
+
Select RAG assistants (comma-separated numbers, or empty for all):
|
|
435
|
+
|
|
436
|
+
--- Migration Summary ---
|
|
437
|
+
Source: https://api.dev.example.ai / Project: proj-dev-001
|
|
438
|
+
Destination: https://api.prod.example.ai / Project: Production Release v2.0
|
|
439
|
+
Resources: agents, tools, rag_assistants
|
|
440
|
+
|
|
441
|
+
Stop migration on first error? (Y/n): Y
|
|
442
|
+
|
|
443
|
+
Proceed with migration? (y/n): y
|
|
444
|
+
|
|
445
|
+
Creating new project 'Production Release v2.0'...
|
|
446
|
+
Project 'Production Release v2.0' created successfully with ID: proj-prod-002
|
|
447
|
+
Creating project API key for new project...
|
|
448
|
+
Project API key created successfully
|
|
449
|
+
|
|
450
|
+
============================================================
|
|
451
|
+
Migration Progress: 0/7 completed
|
|
452
|
+
============================================================
|
|
453
|
+
|
|
454
|
+
[1/7] Migrating agent 'Customer Support Agent'...
|
|
455
|
+
✓ Successfully migrated agent 'Customer Support Agent'
|
|
456
|
+
|
|
457
|
+
[2/7] Migrating agent 'Sales Assistant'...
|
|
458
|
+
✓ Successfully migrated agent 'Sales Assistant'
|
|
459
|
+
|
|
460
|
+
[3/7] Migrating agent 'HR Onboarding Agent'...
|
|
461
|
+
✓ Successfully migrated agent 'HR Onboarding Agent'
|
|
462
|
+
|
|
463
|
+
[4/7] Migrating tool 'Database Query Tool'...
|
|
464
|
+
✓ Successfully migrated tool 'Database Query Tool'
|
|
465
|
+
|
|
466
|
+
[5/7] Migrating tool 'Calendar Integration'...
|
|
467
|
+
✓ Successfully migrated tool 'Calendar Integration'
|
|
468
|
+
|
|
469
|
+
[6/7] Migrating RAG assistant 'Documentation Assistant'...
|
|
470
|
+
✓ Successfully migrated RAG assistant 'Documentation Assistant'
|
|
471
|
+
|
|
472
|
+
[7/7] Migrating RAG assistant 'Code Helper'...
|
|
473
|
+
✓ Successfully migrated RAG assistant 'Code Helper'
|
|
474
|
+
|
|
475
|
+
============================================================
|
|
476
|
+
Migration Complete: 7/7 successful
|
|
477
|
+
============================================================
|
|
478
|
+
|
|
479
|
+
Migration completed: 7/7 successful
|
|
480
|
+
|
|
481
|
+
This example demonstrates:
|
|
482
|
+
|
|
483
|
+
- Cross-instance migration (dev to prod)
|
|
484
|
+
- New project creation
|
|
485
|
+
- Selective resource type migration (agents, tools, RAG assistants only)
|
|
486
|
+
- Mixed selection strategies (all agents, specific tools, all RAG assistants)
|
|
487
|
+
- Successful completion with progress tracking
|
|
488
|
+
|
|
112
489
|
Basic Usage
|
|
113
490
|
-----------
|
|
114
491
|
|
|
@@ -310,7 +687,12 @@ Command: ``geai migrate clone-project``
|
|
|
310
687
|
|
|
311
688
|
**Description:** Clone a project with selective or complete resource migration.
|
|
312
689
|
|
|
313
|
-
**
|
|
690
|
+
**Interactive Mode Flag:**
|
|
691
|
+
|
|
692
|
+
``--interactive`` or ``-i``
|
|
693
|
+
Launch the interactive migration wizard with step-by-step prompts. When this flag is used, all other arguments are ignored and the wizard will prompt for all required information. See the :ref:`Interactive Mode` section for details.
|
|
694
|
+
|
|
695
|
+
**Required Arguments (CLI Mode):**
|
|
314
696
|
|
|
315
697
|
``--from-api-key <key>``
|
|
316
698
|
Project scope API key for the source GEAI instance (for migrating resources)
|
|
@@ -425,12 +807,14 @@ Best Practices
|
|
|
425
807
|
--------------
|
|
426
808
|
|
|
427
809
|
1. **Test First**: Always test migrations in a development environment before production
|
|
428
|
-
2. **
|
|
429
|
-
3. **
|
|
430
|
-
4. **
|
|
431
|
-
5. **
|
|
432
|
-
6. **
|
|
433
|
-
7. **
|
|
810
|
+
2. **Start with Interactive Mode**: If you're new to migrations or unsure about resource IDs, use ``--interactive`` mode for guided assistance
|
|
811
|
+
3. **Use --all for Complete Clones**: When creating backups or full clones, use ``--all``
|
|
812
|
+
4. **Verify Credentials**: Double-check API keys and instance URLs before running migrations
|
|
813
|
+
5. **Monitor Progress**: Watch the console output for discovery counts and migration status
|
|
814
|
+
6. **Check Results**: Review the migration result summary after completion
|
|
815
|
+
7. **Incremental Migration**: For large projects, consider migrating resource types incrementally
|
|
816
|
+
8. **Document Migrations**: Keep track of what was migrated and when
|
|
817
|
+
9. **Automate Repeated Migrations**: Once you know the exact resources and IDs, convert interactive sessions to CLI commands for repeatability
|
|
434
818
|
|
|
435
819
|
Common Use Cases
|
|
436
820
|
----------------
|
pygeai/analytics/managers.py
CHANGED
|
@@ -22,7 +22,7 @@ from pygeai.analytics.responses import (
|
|
|
22
22
|
|
|
23
23
|
class AnalyticsManager:
|
|
24
24
|
|
|
25
|
-
def __init__(self, api_key: str = None, base_url: str = None, alias: str =
|
|
25
|
+
def __init__(self, api_key: str = None, base_url: str = None, alias: str = None):
|
|
26
26
|
self.__analytics_client = AnalyticsClient(api_key=api_key, base_url=base_url, alias=alias)
|
|
27
27
|
|
|
28
28
|
def get_agents_created_and_modified(
|
pygeai/assistant/managers.py
CHANGED
|
@@ -20,7 +20,7 @@ from pygeai.core.common.exceptions import MissingRequirementException, APIError
|
|
|
20
20
|
|
|
21
21
|
class AssistantManager:
|
|
22
22
|
|
|
23
|
-
def __init__(self, api_key: str = None, base_url: str = None, alias: str =
|
|
23
|
+
def __init__(self, api_key: str = None, base_url: str = None, alias: str = None):
|
|
24
24
|
self.__assistant_client = AssistantClient(api_key, base_url, alias)
|
|
25
25
|
self.__chat_client = ChatClient(api_key, base_url, alias)
|
|
26
26
|
self.__rag_client = RAGAssistantClient(api_key, base_url, alias)
|
pygeai/chat/managers.py
CHANGED
|
@@ -10,7 +10,7 @@ from pygeai.core.responses import ChatResponse, ProviderResponse
|
|
|
10
10
|
|
|
11
11
|
class ChatManager:
|
|
12
12
|
|
|
13
|
-
def __init__(self, api_key: str = None, base_url: str = None, alias: str =
|
|
13
|
+
def __init__(self, api_key: str = None, base_url: str = None, alias: str = None):
|
|
14
14
|
self.__chat_client = ChatClient(api_key, base_url, alias)
|
|
15
15
|
|
|
16
16
|
def chat_completion(
|
pygeai/cli/commands/analytics.py
CHANGED
|
@@ -63,8 +63,9 @@ def get_agents_created_and_modified(option_list: list):
|
|
|
63
63
|
if option_flag.name == "end_date":
|
|
64
64
|
end_date = option_arg
|
|
65
65
|
|
|
66
|
-
if not
|
|
67
|
-
|
|
66
|
+
if not start_date or not end_date:
|
|
67
|
+
start_date, end_date = get_default_date_range()
|
|
68
|
+
Console.write_stdout(f"Using default date range: {start_date} to {end_date}")
|
|
68
69
|
|
|
69
70
|
manager = AnalyticsManager()
|
|
70
71
|
result = manager.get_agents_created_and_modified(start_date, end_date)
|
|
@@ -86,8 +87,9 @@ def get_total_requests_per_day(option_list: list):
|
|
|
86
87
|
if option_flag.name == "agent_name":
|
|
87
88
|
agent_name = option_arg
|
|
88
89
|
|
|
89
|
-
if not
|
|
90
|
-
|
|
90
|
+
if not start_date or not end_date:
|
|
91
|
+
start_date, end_date = get_default_date_range()
|
|
92
|
+
Console.write_stdout(f"Using default date range: {start_date} to {end_date}")
|
|
91
93
|
|
|
92
94
|
manager = AnalyticsManager()
|
|
93
95
|
result = manager.get_total_requests_per_day(start_date, end_date, agent_name)
|
|
@@ -108,8 +110,9 @@ def get_total_cost(option_list: list):
|
|
|
108
110
|
if option_flag.name == "end_date":
|
|
109
111
|
end_date = option_arg
|
|
110
112
|
|
|
111
|
-
if not
|
|
112
|
-
|
|
113
|
+
if not start_date or not end_date:
|
|
114
|
+
start_date, end_date = get_default_date_range()
|
|
115
|
+
Console.write_stdout(f"Using default date range: {start_date} to {end_date}")
|
|
113
116
|
|
|
114
117
|
manager = AnalyticsManager()
|
|
115
118
|
result = manager.get_total_cost(start_date, end_date)
|
|
@@ -128,8 +131,9 @@ def get_average_cost_per_request(option_list: list):
|
|
|
128
131
|
if option_flag.name == "end_date":
|
|
129
132
|
end_date = option_arg
|
|
130
133
|
|
|
131
|
-
if not
|
|
132
|
-
|
|
134
|
+
if not start_date or not end_date:
|
|
135
|
+
start_date, end_date = get_default_date_range()
|
|
136
|
+
Console.write_stdout(f"Using default date range: {start_date} to {end_date}")
|
|
133
137
|
|
|
134
138
|
manager = AnalyticsManager()
|
|
135
139
|
result = manager.get_average_cost_per_request(start_date, end_date)
|
|
@@ -148,8 +152,9 @@ def get_total_tokens(option_list: list):
|
|
|
148
152
|
if option_flag.name == "end_date":
|
|
149
153
|
end_date = option_arg
|
|
150
154
|
|
|
151
|
-
if not
|
|
152
|
-
|
|
155
|
+
if not start_date or not end_date:
|
|
156
|
+
start_date, end_date = get_default_date_range()
|
|
157
|
+
Console.write_stdout(f"Using default date range: {start_date} to {end_date}")
|
|
153
158
|
|
|
154
159
|
manager = AnalyticsManager()
|
|
155
160
|
result = manager.get_total_tokens(start_date, end_date)
|
|
@@ -168,8 +173,9 @@ def get_overall_error_rate(option_list: list):
|
|
|
168
173
|
if option_flag.name == "end_date":
|
|
169
174
|
end_date = option_arg
|
|
170
175
|
|
|
171
|
-
if not
|
|
172
|
-
|
|
176
|
+
if not start_date or not end_date:
|
|
177
|
+
start_date, end_date = get_default_date_range()
|
|
178
|
+
Console.write_stdout(f"Using default date range: {start_date} to {end_date}")
|
|
173
179
|
|
|
174
180
|
manager = AnalyticsManager()
|
|
175
181
|
result = manager.get_overall_error_rate(start_date, end_date)
|
|
@@ -188,8 +194,9 @@ def get_top_agents_by_requests(option_list: list):
|
|
|
188
194
|
if option_flag.name == "end_date":
|
|
189
195
|
end_date = option_arg
|
|
190
196
|
|
|
191
|
-
if not
|
|
192
|
-
|
|
197
|
+
if not start_date or not end_date:
|
|
198
|
+
start_date, end_date = get_default_date_range()
|
|
199
|
+
Console.write_stdout(f"Using default date range: {start_date} to {end_date}")
|
|
193
200
|
|
|
194
201
|
manager = AnalyticsManager()
|
|
195
202
|
result = manager.get_top_10_agents_by_requests(start_date, end_date)
|
|
@@ -210,8 +217,9 @@ def get_total_active_users(option_list: list):
|
|
|
210
217
|
if option_flag.name == "end_date":
|
|
211
218
|
end_date = option_arg
|
|
212
219
|
|
|
213
|
-
if not
|
|
214
|
-
|
|
220
|
+
if not start_date or not end_date:
|
|
221
|
+
start_date, end_date = get_default_date_range()
|
|
222
|
+
Console.write_stdout(f"Using default date range: {start_date} to {end_date}")
|
|
215
223
|
|
|
216
224
|
manager = AnalyticsManager()
|
|
217
225
|
result = manager.get_total_active_users(start_date, end_date)
|
pygeai/cli/geai.py
CHANGED
|
@@ -45,8 +45,13 @@ def main() -> int:
|
|
|
45
45
|
|
|
46
46
|
:return: int - Exit code indicating success or error.
|
|
47
47
|
"""
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
try:
|
|
49
|
+
driver = CLIDriver()
|
|
50
|
+
return driver.main()
|
|
51
|
+
except MissingRequirementException as e:
|
|
52
|
+
error_msg = ErrorHandler.handle_missing_requirement(str(e))
|
|
53
|
+
Console.write_stderr(error_msg)
|
|
54
|
+
return ExitCode.MISSING_REQUIREMENT
|
|
50
55
|
|
|
51
56
|
|
|
52
57
|
class CLIDriver:
|
pygeai/core/base/session.py
CHANGED
|
@@ -110,6 +110,8 @@ def get_session(alias: str = None) -> Session:
|
|
|
110
110
|
if _session is None:
|
|
111
111
|
if not alias:
|
|
112
112
|
alias = "default"
|
|
113
|
+
|
|
114
|
+
_validate_alias(alias, allow_missing_default=True)
|
|
113
115
|
|
|
114
116
|
_session = Session(
|
|
115
117
|
api_key=settings.get_api_key(alias),
|
|
@@ -120,6 +122,8 @@ def get_session(alias: str = None) -> Session:
|
|
|
120
122
|
alias=alias,
|
|
121
123
|
)
|
|
122
124
|
elif _session is not None and alias:
|
|
125
|
+
_validate_alias(alias, allow_missing_default=False)
|
|
126
|
+
|
|
123
127
|
_session.alias = alias
|
|
124
128
|
_session.api_key = settings.get_api_key(alias)
|
|
125
129
|
_session.base_url = settings.get_base_url(alias)
|
|
@@ -135,3 +139,13 @@ def get_session(alias: str = None) -> Session:
|
|
|
135
139
|
except ValueError as e:
|
|
136
140
|
logger.warning(f"Warning: API_KEY and/or BASE_URL not set. {e}")
|
|
137
141
|
sys.stdout.write("Warning: API_KEY and/or BASE_URL not set. Please run geai configure to set them up.\n")
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def _validate_alias(alias: str, allow_missing_default: bool = False):
|
|
145
|
+
available_aliases = settings.list_aliases()
|
|
146
|
+
if alias not in available_aliases:
|
|
147
|
+
if allow_missing_default and alias == "default":
|
|
148
|
+
return
|
|
149
|
+
raise MissingRequirementException(
|
|
150
|
+
f"The profile '{alias}' doesn't exist. Use 'geai configure --list' to see available profiles."
|
|
151
|
+
)
|
|
@@ -10,7 +10,7 @@ from pygeai.core.handlers import ErrorHandler
|
|
|
10
10
|
|
|
11
11
|
class EmbeddingsManager:
|
|
12
12
|
|
|
13
|
-
def __init__(self, api_key: str = None, base_url: str = None, alias: str =
|
|
13
|
+
def __init__(self, api_key: str = None, base_url: str = None, alias: str = None):
|
|
14
14
|
self.__client = EmbeddingsClient(api_key, base_url, alias)
|
|
15
15
|
|
|
16
16
|
def generate_embeddings(
|
pygeai/core/files/managers.py
CHANGED
pygeai/core/rerank/managers.py
CHANGED
|
@@ -8,7 +8,7 @@ from pygeai.core.rerank.models import RerankResponse
|
|
|
8
8
|
|
|
9
9
|
class RerankManager:
|
|
10
10
|
|
|
11
|
-
def __init__(self, api_key: str = None, base_url: str = None, alias: str =
|
|
11
|
+
def __init__(self, api_key: str = None, base_url: str = None, alias: str = None):
|
|
12
12
|
self.__client = RerankClient(api_key, base_url, alias)
|
|
13
13
|
|
|
14
14
|
def rerank_chunks(
|
pygeai/evaluation/clients.py
CHANGED
|
@@ -7,7 +7,7 @@ from pygeai.core.utils.validators import validate_status_code
|
|
|
7
7
|
|
|
8
8
|
class EvaluationClient(BaseClient):
|
|
9
9
|
|
|
10
|
-
def __init__(self, api_key: str = None, base_url: str = None, alias: str =
|
|
10
|
+
def __init__(self, api_key: str = None, base_url: str = None, alias: str = None, eval_url: str = None, *,
|
|
11
11
|
access_token: str = None, project_id: str = None):
|
|
12
12
|
super().__init__(api_key, base_url, alias, access_token=access_token, project_id=project_id)
|
|
13
13
|
eval_url = self.session.eval_url if not eval_url else eval_url
|
pygeai/lab/managers.py
CHANGED
|
@@ -22,7 +22,7 @@ from pygeai.lab.tools.mappers import ToolMapper
|
|
|
22
22
|
|
|
23
23
|
class AILabManager:
|
|
24
24
|
|
|
25
|
-
def __init__(self, api_key: str = None, base_url: str = None, alias: str =
|
|
25
|
+
def __init__(self, api_key: str = None, base_url: str = None, alias: str = None, project_id: str = None):
|
|
26
26
|
self.__agent_client = AgentClient(api_key=api_key, base_url=base_url, alias=alias, project_id=project_id)
|
|
27
27
|
self.__tool_client = ToolClient(api_key=api_key, base_url=base_url, alias=alias, project_id=project_id)
|
|
28
28
|
self.__reasoning_strategy_client = ReasoningStrategyClient(api_key=api_key, base_url=base_url, alias=alias, project_id=project_id)
|
pygeai/organization/managers.py
CHANGED
|
@@ -19,7 +19,7 @@ class OrganizationManager:
|
|
|
19
19
|
If errors are found in the response, they are processed to raise an APIError.
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
-
def __init__(self, api_key: str = None, base_url: str = None, alias: str =
|
|
22
|
+
def __init__(self, api_key: str = None, base_url: str = None, alias: str = None):
|
|
23
23
|
self.__organization_client = OrganizationClient(api_key=api_key, base_url=base_url, alias=alias)
|
|
24
24
|
|
|
25
25
|
def get_assistant_list(
|
|
@@ -110,7 +110,7 @@ pygeai/_docs/source/content/chat_gui.rst,sha256=0nnQFh_m4V-TqbeZXTKYMzU6gmPTOwRH
|
|
|
110
110
|
pygeai/_docs/source/content/cli.rst,sha256=WZFfxzmvFTmoi88uZO6VA96b5bUVApJ8QkXmCBPRrnI,5501
|
|
111
111
|
pygeai/_docs/source/content/debugger.rst,sha256=dc3mj6YxmBlyiOKk67AmFzfLkj7P4VWzU_j2R83zTCw,15112
|
|
112
112
|
pygeai/_docs/source/content/intro.rst,sha256=nRoIXypN6xGN9kaqTJM5HrhE0LPn7bnk0CDFeRixito,4532
|
|
113
|
-
pygeai/_docs/source/content/migration.rst,sha256=
|
|
113
|
+
pygeai/_docs/source/content/migration.rst,sha256=4778of_8oDGx_LEzuPuGfLncj6M_ANkeh7qpq__rW0o,33448
|
|
114
114
|
pygeai/_docs/source/content/modules.rst,sha256=MufbaO6dfESPq2yqhk9xpCsfSMdhNRcTuODE6LW1HxE,78
|
|
115
115
|
pygeai/_docs/source/content/quickstart.rst,sha256=bsz8ZwTJTWlznnPNq3XJJuOXuV63-7UKqur2YHGD8No,4159
|
|
116
116
|
pygeai/_docs/source/content/samples.rst,sha256=BfRzjBDVgiegbW1OPczZvq1LvS-aHGCH-zDmbX6mNPI,12488
|
|
@@ -141,13 +141,13 @@ pygeai/admin/endpoints.py,sha256=Osi8UIBhrEzKlTLF2a-q2boDUl0XMR3lQ8sDrz72TL0,747
|
|
|
141
141
|
pygeai/analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
142
|
pygeai/analytics/clients.py,sha256=MbLRZUR-ONP6RJ2lgitLhh6iRA9yvI8M1GgJR8Q7V7c,18874
|
|
143
143
|
pygeai/analytics/endpoints.py,sha256=qlVYc-D12Cpv6cn8x5cZTACRC1_qkgAss85ACVdxSLw,5626
|
|
144
|
-
pygeai/analytics/managers.py,sha256=
|
|
144
|
+
pygeai/analytics/managers.py,sha256=PhwcOBnWtJtPF1Jh8V9ITcsC5jlt6YNEI890Zejmmxk,26213
|
|
145
145
|
pygeai/analytics/mappers.py,sha256=enenIBwJHHqPAyAvo2juro4TjXAtSAA885EnbzWDlIE,10893
|
|
146
146
|
pygeai/analytics/responses.py,sha256=OWb_kkwxwa--dJQo8W3_2PtZhdFJAPpwrbvb2qdEajU,4813
|
|
147
147
|
pygeai/assistant/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
148
148
|
pygeai/assistant/clients.py,sha256=gGhALWddo30SM7mvoDe2TM9cVQrJ8RzoI4LVQ8ov9VQ,9856
|
|
149
149
|
pygeai/assistant/endpoints.py,sha256=7LuXWm0-sbrmHsngqW63wuk37K24wcMLinmJ6HdSimg,1026
|
|
150
|
-
pygeai/assistant/managers.py,sha256=
|
|
150
|
+
pygeai/assistant/managers.py,sha256=pc_1HVUhReavbKFD2W445abGyakWzeyOn9nz3sx1M94,34627
|
|
151
151
|
pygeai/assistant/mappers.py,sha256=oSx_k1edknbKGlASke5ASzKEekG613TepVQRm1ecPOc,5915
|
|
152
152
|
pygeai/assistant/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
153
|
pygeai/assistant/data/clients.py,sha256=PeSYxbHti8PIdImV4-rhcTWlOvj2nedGX21ulXZi3wQ,660
|
|
@@ -167,20 +167,20 @@ pygeai/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
167
167
|
pygeai/chat/clients.py,sha256=-PovdRQnwpsHtqoH0UNyAvx8XhDm8xLcZyvTBmsqhNc,19829
|
|
168
168
|
pygeai/chat/endpoints.py,sha256=r_zvsL5UIqnqhz9I0CG0eQSKV-egwx6EKdaZXj-HndA,343
|
|
169
169
|
pygeai/chat/iris.py,sha256=-9pDHQpWhR_PvbZ6rD8eMPFk46PI9sCdPQ9aAyvSexs,413
|
|
170
|
-
pygeai/chat/managers.py,sha256=
|
|
170
|
+
pygeai/chat/managers.py,sha256=XVnO9yGlS1SpnHXsmzwO2hizt4pKXrDM29cE-3pfIk8,3109
|
|
171
171
|
pygeai/chat/session.py,sha256=k7Y6rr9x7CfAGDI-Vt3c6eGLQX57YZ74lEVJGzwwdzw,1193
|
|
172
172
|
pygeai/chat/settings.py,sha256=-B2fEemZLifdsf7_7xNmWuFZYzL-yRqefivBmv3w8j8,124
|
|
173
173
|
pygeai/chat/ui.py,sha256=-xvjCzBwWlvyq-C0kN2YPczl4Q0alyJamXULOlGjKRA,34595
|
|
174
174
|
pygeai/cli/__init__.py,sha256=P7_xZm3j6DdYnVTanQClJjfyW5co5ovNoiizgd0NMLo,95
|
|
175
175
|
pygeai/cli/__main__.py,sha256=2RkQaX48mS2keTpv3-9rxk5dw35PL_deqxcKUUNhp6E,154
|
|
176
176
|
pygeai/cli/error_handler.py,sha256=Lw28yRk0mBvwMpuYrfbYV87g_AHoiidZo9SakoOZva4,5745
|
|
177
|
-
pygeai/cli/geai.py,sha256=
|
|
177
|
+
pygeai/cli/geai.py,sha256=cAoJLcjFkfCVmzQhXiO5TpUhs8OtBJ3JZ6mswZN0vRY,9304
|
|
178
178
|
pygeai/cli/geai_proxy.py,sha256=BSoeh32fhATxbsAA_B92HKDBiLgfejEQ0XwXfeOk49g,13356
|
|
179
179
|
pygeai/cli/install_man.py,sha256=DjZ3k05sKSzpLFqsU4LHz1b37NHLVdOvS6oZihdBSis,3794
|
|
180
180
|
pygeai/cli/parsers.py,sha256=0Y38zQ9tG9rqVspr-ksV6LrC0Ynt8uBWbvae89HAWe8,4716
|
|
181
181
|
pygeai/cli/commands/__init__.py,sha256=rWx5Qmo-CqTS41m6ROHX0j1NnWFVpj_DF_ORQS0AaZw,1808
|
|
182
182
|
pygeai/cli/commands/admin.py,sha256=LDxUrq9qGAswT4HbaN_c_ovVKbgGct7ffjXA8zVYjWY,5833
|
|
183
|
-
pygeai/cli/commands/analytics.py,sha256=
|
|
183
|
+
pygeai/cli/commands/analytics.py,sha256=_EJ1Opg4yvYrl-N11zpa-sdOtEEwQwQKZP1eOvPBeOQ,19949
|
|
184
184
|
pygeai/cli/commands/assistant.py,sha256=fQ_El6_BmFDpFjm_gPxzWk7bOzhimhiTwG8K0UpcxDo,18711
|
|
185
185
|
pygeai/cli/commands/auth.py,sha256=w1XIcTYh7SQ4keOhQiJiUJ2NFMY349K53P2BoGe2Rgc,8318
|
|
186
186
|
pygeai/cli/commands/base.py,sha256=J48IjpFr5oiRpxndiSI3vtNG1pfHBlDeRDOm7QQxk_U,7836
|
|
@@ -223,7 +223,7 @@ pygeai/core/base/clients.py,sha256=sIO5TExfeSMmRp06q1cF9iuP3YywGgzZczu7xSgyFFY,2
|
|
|
223
223
|
pygeai/core/base/mappers.py,sha256=u5_UkRPPQ9vUQQANgmOHBbaaxtK77RNTTI2KoQafEDw,17793
|
|
224
224
|
pygeai/core/base/models.py,sha256=_h62nnMhJXr1BLNoaldT4d9oqCTSistfF3D2LQ3bvlg,380
|
|
225
225
|
pygeai/core/base/responses.py,sha256=k-mrzNO_AtEsGTUJnyRT76FJ7gfYxQ_SAhB8MBNqPZI,763
|
|
226
|
-
pygeai/core/base/session.py,sha256=
|
|
226
|
+
pygeai/core/base/session.py,sha256=pBHzRG6qDI6Ep60npM-aEB7_f1fqAsZi7Z7s1IwOpA0,4816
|
|
227
227
|
pygeai/core/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
228
228
|
pygeai/core/common/config.py,sha256=_MFT5xxQ1ae8d6l-ksC8ziQOu7WvW3fWPv6uFxrMmhU,5506
|
|
229
229
|
pygeai/core/common/decorators.py,sha256=X7Tv5XBmsuS7oZHSmI95eX8UkuukKoiOiNRl5w9lgR4,1227
|
|
@@ -231,7 +231,7 @@ pygeai/core/common/exceptions.py,sha256=J_5g1jumvkSlg64peMFXfivbQv4vymUBRldxwYo7
|
|
|
231
231
|
pygeai/core/embeddings/__init__.py,sha256=sn0wz0qNJeJy-1AQW4on62LX7bqhlVs7xcS0MaPQcW4,486
|
|
232
232
|
pygeai/core/embeddings/clients.py,sha256=s-yHs99puVw4H1ShQ_jU-7c8S9BUs7WqwUavTKVpcMc,4146
|
|
233
233
|
pygeai/core/embeddings/endpoints.py,sha256=b__cuKQjribog9PSUeDzwrQ0vBO4WyYahLhLjDiUpL0,98
|
|
234
|
-
pygeai/core/embeddings/managers.py,sha256=
|
|
234
|
+
pygeai/core/embeddings/managers.py,sha256=F6MZtWVVe9Z55WyNGkck6Myk_rjVNMP8E4QwsZ7tWyY,3515
|
|
235
235
|
pygeai/core/embeddings/mappers.py,sha256=9K5AB5FA9KWYd-MOHpZu6MkqfZxVq9ESQLf76MQdDj0,2019
|
|
236
236
|
pygeai/core/embeddings/models.py,sha256=T9FehWk_0doiiZG7yMzSCK9_TBHibaocA4b8sJP7T4M,366
|
|
237
237
|
pygeai/core/embeddings/responses.py,sha256=ny7iE4p-1yADcRC7U2TdhxtXI3wZ87QXrDfGGbiEvpE,674
|
|
@@ -242,7 +242,7 @@ pygeai/core/feedback/models.py,sha256=VdeVVWTQ8qc4TEPbL2XbYI4-UP2m2eh1pkBptw_do1
|
|
|
242
242
|
pygeai/core/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
243
243
|
pygeai/core/files/clients.py,sha256=1wxpKaq2nDjEDm7wWXAK9xFV2vXZGKlJropMEjLV1Ng,5663
|
|
244
244
|
pygeai/core/files/endpoints.py,sha256=hAUC28hYVcHyEyEfoLaLae76TpuVSLexPVjLJYjSWYQ,337
|
|
245
|
-
pygeai/core/files/managers.py,sha256=
|
|
245
|
+
pygeai/core/files/managers.py,sha256=jxmnzgke4fDqUniGG4BlRBA2iagKvzzdCkuNi_7_Eio,8768
|
|
246
246
|
pygeai/core/files/mappers.py,sha256=8PXXsQJZEH45yLISn_xsOZmcRUEe_F6ELkUeR1lzc-M,1462
|
|
247
247
|
pygeai/core/files/models.py,sha256=QOLV5kUrHOvhJXzkoFqNQX4qmVPLy6KKBk6u7oE5ttU,438
|
|
248
248
|
pygeai/core/files/responses.py,sha256=O5DYgqXOtIFL0memOcWJTz258KoEjLq5e1Yw9pgRJ7g,435
|
|
@@ -256,7 +256,7 @@ pygeai/core/plugins/models.py,sha256=SzqE-NToxbqTTMerUk_ELkI6-P6KNIDJY_AOZx0-PTU
|
|
|
256
256
|
pygeai/core/rerank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
257
257
|
pygeai/core/rerank/clients.py,sha256=gmUxcQFplByLadLafrq31dEBp8lqzXTktW3niHBN134,1010
|
|
258
258
|
pygeai/core/rerank/endpoints.py,sha256=PZcA1i73fyGbpnbpWYr1-gHc6zy7L60b_E8sMLwsXw8,85
|
|
259
|
-
pygeai/core/rerank/managers.py,sha256=
|
|
259
|
+
pygeai/core/rerank/managers.py,sha256=FHGxD0h1fct1RgJlysVG5kbNEUuLKeKGdJA73zbG8fk,2038
|
|
260
260
|
pygeai/core/rerank/mappers.py,sha256=Jx8PAymebA2TPxGssaKAj4eS0OVsKJqecntAugRO9ww,957
|
|
261
261
|
pygeai/core/rerank/models.py,sha256=WLE-waHk2glKSl1xx9EpmE1k4bva7c14jjraaWuQ5Uk,430
|
|
262
262
|
pygeai/core/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -275,7 +275,7 @@ pygeai/core/utils/validators.py,sha256=LoDrO5z0K8_axMdoMHGZZHlxdIFQWnzC9L7RbEQFI
|
|
|
275
275
|
pygeai/dbg/__init__.py,sha256=97HEKO5JdnaZi2qcJEXT1C-MUk0plqpSF_yQ0tUAPrw,91
|
|
276
276
|
pygeai/dbg/debugger.py,sha256=juoNZplNYGdcLeYjU6Mbe5N6kj7OeZJtvHF-0byJdXg,26471
|
|
277
277
|
pygeai/evaluation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
278
|
-
pygeai/evaluation/clients.py,sha256=
|
|
278
|
+
pygeai/evaluation/clients.py,sha256=5go1j-YgfgD8b4wXJ8Vwzit1eccJ5zqsymbov8RPE-c,1059
|
|
279
279
|
pygeai/evaluation/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
280
280
|
pygeai/evaluation/dataset/clients.py,sha256=mzinQp-bZ2h6GdNJ6N2TQ9ceCkCzZINwBMyAPp6hbss,20033
|
|
281
281
|
pygeai/evaluation/dataset/endpoints.py,sha256=d_llUcXNDncNrIyYgjJ_lMBnX2YPVxmeu8op3N30mLs,2922
|
|
@@ -297,7 +297,7 @@ pygeai/health/endpoints.py,sha256=UAzMcqSXZtMj4r8M8B7a_a5LT6X_jMFNsCTvcsjNTYA,71
|
|
|
297
297
|
pygeai/lab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
298
298
|
pygeai/lab/clients.py,sha256=9-eHdXtjDJ9OoNAR07aGQ9yaL2MXmg3J6T8aODWkJQ0,1229
|
|
299
299
|
pygeai/lab/constants.py,sha256=ddgDnXP4GD0woi-FUJaJXzaWS3H6zmDN0B-v8utM95Q,170
|
|
300
|
-
pygeai/lab/managers.py,sha256=
|
|
300
|
+
pygeai/lab/managers.py,sha256=GLs2I28jB3mZVkpYBQhHZoojcnGTgOq7N7IVfQHorpA,70751
|
|
301
301
|
pygeai/lab/models.py,sha256=sHMFXWmr_y7qrdA1MWr3zNH5V72tectz-RDxVeiaTwE,74913
|
|
302
302
|
pygeai/lab/runners.py,sha256=-uaCPHpFyiKtVOxlEjPjAc9h-onSdGAcYJ5IAZPqlb0,4147
|
|
303
303
|
pygeai/lab/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -329,13 +329,13 @@ pygeai/migration/tools.py,sha256=d6YtJ2xPdEAxMBiDgOXaMiXSgbUcErzN0wj0kmA9skU,620
|
|
|
329
329
|
pygeai/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
330
330
|
pygeai/organization/clients.py,sha256=fCOHkklrdkdjUdV6dPq0RZ9D-EpC_pXzmhsMo4R4ruE,17964
|
|
331
331
|
pygeai/organization/endpoints.py,sha256=BWdpYPMJCoROoSZnXfX9ROcQRgbcDiuhopxLSZVERQg,1993
|
|
332
|
-
pygeai/organization/managers.py,sha256=
|
|
332
|
+
pygeai/organization/managers.py,sha256=Qkh1g8MR4DzGjNp8VOFDsSUPG6KQdPWOpUqKigj5tMk,25459
|
|
333
333
|
pygeai/organization/mappers.py,sha256=10JxUTdt9jBgcHfW7ViY2HdtY-UfI9t_qhX8KvuMPn0,5897
|
|
334
334
|
pygeai/organization/responses.py,sha256=rVQo5N3aUE2tpJiflkFO1eG36imqJqVF3m4rRjKv7-s,1919
|
|
335
335
|
pygeai/organization/limits/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
336
336
|
pygeai/organization/limits/clients.py,sha256=hoj31n_Lxt40sCV9umxXt3Q3BzFaKSTTtdhMc-4dAZ4,15600
|
|
337
337
|
pygeai/organization/limits/endpoints.py,sha256=mtca6U6l47jbbbmGc8KoXCDMnyNHtaPo8dxWVuHuUE0,2578
|
|
338
|
-
pygeai/organization/limits/managers.py,sha256=
|
|
338
|
+
pygeai/organization/limits/managers.py,sha256=S7LHCQJTzTr-_-UH7abipRIv9Qnt8e-ek0U1sIGBYMU,14502
|
|
339
339
|
pygeai/organization/limits/mappers.py,sha256=nINHaXOnZLnpc39PG3xf_7HX6tS9_-cT-H50ARwCGvw,777
|
|
340
340
|
pygeai/proxy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
341
341
|
pygeai/proxy/clients.py,sha256=7g0SJbYjBp02rX6WH-HdGOevclGNJLsELIgf68fR14w,8059
|
|
@@ -787,9 +787,9 @@ pygeai/vendor/a2a/utils/helpers.py,sha256=6Tbd8SVfXvdNEk6WYmLOjrAxkzFf1aIg8dkFfB
|
|
|
787
787
|
pygeai/vendor/a2a/utils/message.py,sha256=gc_EKO69CJ4HkR76IFgsy-kENJz1dn7CfSgWJWvt-gs,2197
|
|
788
788
|
pygeai/vendor/a2a/utils/task.py,sha256=BYRA_L1HpoUGJAVlyHML0lCM9Awhf2Ovjj7oPFXKbh0,1647
|
|
789
789
|
pygeai/vendor/a2a/utils/telemetry.py,sha256=VvSp1Ztqaobkmq9-3sNhhPEilJS32-JTSfKzegkj6FU,10861
|
|
790
|
-
pygeai-0.6.
|
|
791
|
-
pygeai-0.6.
|
|
792
|
-
pygeai-0.6.
|
|
793
|
-
pygeai-0.6.
|
|
794
|
-
pygeai-0.6.
|
|
795
|
-
pygeai-0.6.
|
|
790
|
+
pygeai-0.6.0b14.dist-info/licenses/LICENSE,sha256=eHfqo7-AWS8cMq0cg03lq7owsLeCmZA-xS5L0kuHnl8,1474
|
|
791
|
+
pygeai-0.6.0b14.dist-info/METADATA,sha256=O12R94x2uAZn6Uy2WIGPaEPwHFWBEHo-DlOOz7nv9js,7978
|
|
792
|
+
pygeai-0.6.0b14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
793
|
+
pygeai-0.6.0b14.dist-info/entry_points.txt,sha256=OAmwuXVCQBTCE3HeVegVd37hbhCcp9TPahvdrCuMYWw,178
|
|
794
|
+
pygeai-0.6.0b14.dist-info/top_level.txt,sha256=bJFwp2tURmCfB94yXDF7ylvdSJXFDDJsyUOb-7PJgwc,7
|
|
795
|
+
pygeai-0.6.0b14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|