pygeai 0.6.0b11__py3-none-any.whl → 0.6.0b13__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.
Files changed (138) hide show
  1. pygeai/_docs/source/content/ai_lab/cli.rst +4 -4
  2. pygeai/_docs/source/content/ai_lab/models.rst +169 -35
  3. pygeai/_docs/source/content/ai_lab/runner.rst +2 -2
  4. pygeai/_docs/source/content/ai_lab/spec.rst +9 -9
  5. pygeai/_docs/source/content/ai_lab/usage.rst +34 -34
  6. pygeai/_docs/source/content/ai_lab.rst +1 -1
  7. pygeai/_docs/source/content/analytics.rst +598 -0
  8. pygeai/_docs/source/content/api_reference/chat.rst +428 -2
  9. pygeai/_docs/source/content/api_reference/embeddings.rst +1 -1
  10. pygeai/_docs/source/content/api_reference/project.rst +184 -0
  11. pygeai/_docs/source/content/api_reference/rag.rst +2 -2
  12. pygeai/_docs/source/content/authentication.rst +295 -0
  13. pygeai/_docs/source/content/cli.rst +79 -2
  14. pygeai/_docs/source/content/debugger.rst +1 -1
  15. pygeai/_docs/source/content/migration.rst +19 -2
  16. pygeai/_docs/source/index.rst +2 -0
  17. pygeai/_docs/source/pygeai.analytics.rst +53 -0
  18. pygeai/_docs/source/pygeai.cli.commands.rst +8 -0
  19. pygeai/_docs/source/pygeai.rst +1 -0
  20. pygeai/_docs/source/pygeai.tests.analytics.rst +45 -0
  21. pygeai/_docs/source/pygeai.tests.auth.rst +8 -0
  22. pygeai/_docs/source/pygeai.tests.rst +1 -1
  23. pygeai/analytics/__init__.py +0 -0
  24. pygeai/analytics/clients.py +505 -0
  25. pygeai/analytics/endpoints.py +35 -0
  26. pygeai/analytics/managers.py +606 -0
  27. pygeai/analytics/mappers.py +207 -0
  28. pygeai/analytics/responses.py +240 -0
  29. pygeai/assistant/managers.py +1 -1
  30. pygeai/chat/managers.py +1 -1
  31. pygeai/cli/commands/analytics.py +525 -0
  32. pygeai/cli/commands/base.py +16 -0
  33. pygeai/cli/commands/common.py +28 -24
  34. pygeai/cli/commands/migrate.py +75 -6
  35. pygeai/cli/commands/organization.py +265 -0
  36. pygeai/cli/commands/validators.py +144 -1
  37. pygeai/cli/error_handler.py +41 -6
  38. pygeai/cli/geai.py +106 -18
  39. pygeai/cli/parsers.py +75 -31
  40. pygeai/cli/texts/help.py +75 -6
  41. pygeai/core/base/clients.py +18 -4
  42. pygeai/core/base/session.py +59 -7
  43. pygeai/core/common/config.py +25 -2
  44. pygeai/core/common/exceptions.py +64 -1
  45. pygeai/core/embeddings/managers.py +1 -1
  46. pygeai/core/files/managers.py +1 -1
  47. pygeai/core/rerank/managers.py +1 -1
  48. pygeai/core/services/rest.py +20 -2
  49. pygeai/evaluation/clients.py +5 -3
  50. pygeai/lab/agents/clients.py +3 -3
  51. pygeai/lab/agents/endpoints.py +2 -2
  52. pygeai/lab/agents/mappers.py +50 -2
  53. pygeai/lab/clients.py +5 -2
  54. pygeai/lab/managers.py +8 -10
  55. pygeai/lab/models.py +70 -2
  56. pygeai/lab/tools/clients.py +1 -59
  57. pygeai/migration/__init__.py +3 -1
  58. pygeai/migration/strategies.py +72 -3
  59. pygeai/organization/clients.py +110 -1
  60. pygeai/organization/endpoints.py +11 -7
  61. pygeai/organization/limits/managers.py +1 -1
  62. pygeai/organization/managers.py +135 -3
  63. pygeai/organization/mappers.py +28 -2
  64. pygeai/organization/responses.py +11 -1
  65. pygeai/tests/analytics/__init__.py +0 -0
  66. pygeai/tests/analytics/test_clients.py +86 -0
  67. pygeai/tests/analytics/test_managers.py +94 -0
  68. pygeai/tests/analytics/test_mappers.py +84 -0
  69. pygeai/tests/analytics/test_responses.py +73 -0
  70. pygeai/tests/auth/test_oauth.py +172 -0
  71. pygeai/tests/cli/commands/test_migrate.py +14 -1
  72. pygeai/tests/cli/commands/test_organization.py +69 -1
  73. pygeai/tests/cli/test_error_handler.py +4 -4
  74. pygeai/tests/cli/test_geai_driver.py +1 -1
  75. pygeai/tests/lab/agents/test_mappers.py +128 -1
  76. pygeai/tests/lab/test_models.py +2 -0
  77. pygeai/tests/lab/tools/test_clients.py +2 -31
  78. pygeai/tests/organization/test_clients.py +180 -1
  79. pygeai/tests/organization/test_managers.py +40 -0
  80. pygeai/tests/snippets/analytics/__init__.py +0 -0
  81. pygeai/tests/snippets/analytics/get_agent_usage_per_user.py +16 -0
  82. pygeai/tests/snippets/analytics/get_agents_created_and_modified.py +11 -0
  83. pygeai/tests/snippets/analytics/get_average_cost_per_request.py +10 -0
  84. pygeai/tests/snippets/analytics/get_overall_error_rate.py +10 -0
  85. pygeai/tests/snippets/analytics/get_top_10_agents_by_requests.py +12 -0
  86. pygeai/tests/snippets/analytics/get_total_active_users.py +10 -0
  87. pygeai/tests/snippets/analytics/get_total_cost.py +10 -0
  88. pygeai/tests/snippets/analytics/get_total_requests_per_day.py +12 -0
  89. pygeai/tests/snippets/analytics/get_total_tokens.py +12 -0
  90. pygeai/tests/snippets/chat/get_response_complete_example.py +67 -0
  91. pygeai/tests/snippets/chat/get_response_with_instructions.py +19 -0
  92. pygeai/tests/snippets/chat/get_response_with_metadata.py +24 -0
  93. pygeai/tests/snippets/chat/get_response_with_parallel_tools.py +58 -0
  94. pygeai/tests/snippets/chat/get_response_with_reasoning.py +21 -0
  95. pygeai/tests/snippets/chat/get_response_with_store.py +38 -0
  96. pygeai/tests/snippets/chat/get_response_with_truncation.py +24 -0
  97. pygeai/tests/snippets/lab/agents/create_agent_with_permissions.py +39 -0
  98. pygeai/tests/snippets/lab/agents/create_agent_with_properties.py +46 -0
  99. pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
  100. pygeai/tests/snippets/lab/agents/update_agent_properties.py +50 -0
  101. pygeai/tests/snippets/organization/add_project_member.py +10 -0
  102. pygeai/tests/snippets/organization/add_project_member_batch.py +44 -0
  103. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/METADATA +1 -1
  104. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/RECORD +108 -98
  105. pygeai/_docs/source/pygeai.tests.snippets.assistants.data_analyst.rst +0 -37
  106. pygeai/_docs/source/pygeai.tests.snippets.assistants.rag.rst +0 -85
  107. pygeai/_docs/source/pygeai.tests.snippets.assistants.rst +0 -78
  108. pygeai/_docs/source/pygeai.tests.snippets.auth.rst +0 -10
  109. pygeai/_docs/source/pygeai.tests.snippets.chat.rst +0 -125
  110. pygeai/_docs/source/pygeai.tests.snippets.dbg.rst +0 -45
  111. pygeai/_docs/source/pygeai.tests.snippets.embeddings.rst +0 -61
  112. pygeai/_docs/source/pygeai.tests.snippets.evaluation.dataset.rst +0 -197
  113. pygeai/_docs/source/pygeai.tests.snippets.evaluation.plan.rst +0 -133
  114. pygeai/_docs/source/pygeai.tests.snippets.evaluation.result.rst +0 -37
  115. pygeai/_docs/source/pygeai.tests.snippets.evaluation.rst +0 -20
  116. pygeai/_docs/source/pygeai.tests.snippets.extras.rst +0 -37
  117. pygeai/_docs/source/pygeai.tests.snippets.files.rst +0 -53
  118. pygeai/_docs/source/pygeai.tests.snippets.gam.rst +0 -21
  119. pygeai/_docs/source/pygeai.tests.snippets.lab.agents.rst +0 -93
  120. pygeai/_docs/source/pygeai.tests.snippets.lab.processes.jobs.rst +0 -21
  121. pygeai/_docs/source/pygeai.tests.snippets.lab.processes.kbs.rst +0 -45
  122. pygeai/_docs/source/pygeai.tests.snippets.lab.processes.rst +0 -46
  123. pygeai/_docs/source/pygeai.tests.snippets.lab.rst +0 -82
  124. pygeai/_docs/source/pygeai.tests.snippets.lab.samples.rst +0 -21
  125. pygeai/_docs/source/pygeai.tests.snippets.lab.strategies.rst +0 -45
  126. pygeai/_docs/source/pygeai.tests.snippets.lab.tools.rst +0 -85
  127. pygeai/_docs/source/pygeai.tests.snippets.lab.use_cases.rst +0 -117
  128. pygeai/_docs/source/pygeai.tests.snippets.migrate.rst +0 -10
  129. pygeai/_docs/source/pygeai.tests.snippets.organization.rst +0 -109
  130. pygeai/_docs/source/pygeai.tests.snippets.rag.rst +0 -85
  131. pygeai/_docs/source/pygeai.tests.snippets.rerank.rst +0 -21
  132. pygeai/_docs/source/pygeai.tests.snippets.rst +0 -32
  133. pygeai/_docs/source/pygeai.tests.snippets.secrets.rst +0 -10
  134. pygeai/_docs/source/pygeai.tests.snippets.usage_limit.rst +0 -77
  135. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/WHEEL +0 -0
  136. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/entry_points.txt +0 -0
  137. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/licenses/LICENSE +0 -0
  138. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,207 @@
1
+ from pygeai.analytics.responses import (
2
+ AgentsCreatedAndModifiedResponse, AgentsCreatedAndModifiedPerDayResponse, AgentActivityPerDayItem,
3
+ FlowsCreatedAndModifiedResponse, FlowsCreatedAndModifiedPerDayResponse, FlowActivityPerDayItem,
4
+ ProcessesCreatedAndModifiedResponse, AgentUsagePerUserResponse, AgentUsagePerUserItem,
5
+ AverageCostPerRequestResponse, AverageCostPerUserResponse, AverageCostPerUserPerDateResponse,
6
+ CostPerUserPerDateItem, AverageRequestTimeResponse, AverageRequestsPerDayResponse,
7
+ AverageRequestsPerUserResponse, AverageRequestsPerUserPerDateResponse, RequestsPerUserPerDateItem,
8
+ AverageTokensPerRequestResponse, AverageUsersPerAgentResponse, UsersPerAgentItem,
9
+ AverageUsersPerProjectResponse, UsersPerProjectItem, NumberOfTokensResponse,
10
+ NumberOfTokensPerAgentResponse, TokensPerAgentItem, NumberOfTokensPerDayResponse, TokensPerDayItem,
11
+ OverallErrorRateResponse, Top10AgentsByRequestsResponse, AgentByRequestsItem,
12
+ Top10AgentsByTokensResponse, AgentByTokensItem, Top10UsersByCostResponse, UserByCostItem,
13
+ Top10UsersByRequestsResponse, UserByRequestsItem, TotalActiveAgentsResponse,
14
+ TotalActiveProjectsResponse, TotalActiveUsersResponse, TotalCostResponse,
15
+ TotalCostPerDayResponse, CostPerDayItem, TotalRequestTimeResponse, TotalRequestsResponse,
16
+ TotalRequestsPerDayResponse, RequestsPerDayItem, TotalRequestsWithErrorResponse, TotalTokensResponse
17
+ )
18
+
19
+
20
+ class AnalyticsResponseMapper:
21
+
22
+ @classmethod
23
+ def map_to_agents_created_and_modified_response(cls, data: dict) -> AgentsCreatedAndModifiedResponse:
24
+ return AgentsCreatedAndModifiedResponse(
25
+ createdAgents=data.get("createdAgents", 0),
26
+ modifiedAgents=data.get("modifiedAgents", 0)
27
+ )
28
+
29
+ @classmethod
30
+ def map_to_agents_created_and_modified_per_day_response(cls, data: dict) -> AgentsCreatedAndModifiedPerDayResponse:
31
+ items_data = data.get("agentsCreatedAndModifiedPerDay", [])
32
+ items = [AgentActivityPerDayItem.model_validate(item) for item in items_data]
33
+ return AgentsCreatedAndModifiedPerDayResponse(agentsCreatedAndModifiedPerDay=items)
34
+
35
+ @classmethod
36
+ def map_to_flows_created_and_modified_response(cls, data: dict) -> FlowsCreatedAndModifiedResponse:
37
+ return FlowsCreatedAndModifiedResponse(
38
+ createdFlows=data.get("createdFlows", 0),
39
+ modifiedFlows=data.get("modifiedFlows", 0)
40
+ )
41
+
42
+ @classmethod
43
+ def map_to_flows_created_and_modified_per_day_response(cls, data: dict) -> FlowsCreatedAndModifiedPerDayResponse:
44
+ items_data = data.get("flowsCreatedAndModifiedPerDay", [])
45
+ items = [FlowActivityPerDayItem.model_validate(item) for item in items_data]
46
+ return FlowsCreatedAndModifiedPerDayResponse(flowsCreatedAndModifiedPerDay=items)
47
+
48
+ @classmethod
49
+ def map_to_processes_created_and_modified_response(cls, data: dict) -> ProcessesCreatedAndModifiedResponse:
50
+ return ProcessesCreatedAndModifiedResponse(
51
+ createdProcesses=data.get("createdProcesses", 0),
52
+ modifiedProcesses=data.get("modifiedProcesses", 0)
53
+ )
54
+
55
+ @classmethod
56
+ def map_to_agent_usage_per_user_response(cls, data: dict) -> AgentUsagePerUserResponse:
57
+ items_data = data.get("agentUsagePerUser", [])
58
+ items = [AgentUsagePerUserItem.model_validate(item) for item in items_data]
59
+ return AgentUsagePerUserResponse(agentUsagePerUser=items)
60
+
61
+ @classmethod
62
+ def map_to_average_cost_per_request_response(cls, data: dict) -> AverageCostPerRequestResponse:
63
+ return AverageCostPerRequestResponse(averageCost=data.get("averageCost", 0.0))
64
+
65
+ @classmethod
66
+ def map_to_average_cost_per_user_response(cls, data: dict) -> AverageCostPerUserResponse:
67
+ return AverageCostPerUserResponse(averageCost=data.get("averageCost", 0.0))
68
+
69
+ @classmethod
70
+ def map_to_average_cost_per_user_per_date_response(cls, data: dict) -> AverageCostPerUserPerDateResponse:
71
+ items_data = data.get("averageCostPerUserPerDate", [])
72
+ items = [CostPerUserPerDateItem.model_validate(item) for item in items_data]
73
+ return AverageCostPerUserPerDateResponse(averageCostPerUserPerDate=items)
74
+
75
+ @classmethod
76
+ def map_to_average_request_time_response(cls, data: dict) -> AverageRequestTimeResponse:
77
+ return AverageRequestTimeResponse(averageTime=data.get("averageTime", 0.0))
78
+
79
+ @classmethod
80
+ def map_to_average_requests_per_day_response(cls, data: dict) -> AverageRequestsPerDayResponse:
81
+ return AverageRequestsPerDayResponse(averageRequests=data.get("averageRequests", 0.0))
82
+
83
+ @classmethod
84
+ def map_to_average_requests_per_user_response(cls, data: dict) -> AverageRequestsPerUserResponse:
85
+ return AverageRequestsPerUserResponse(averageRequests=data.get("averageRequests", 0.0))
86
+
87
+ @classmethod
88
+ def map_to_average_requests_per_user_per_date_response(cls, data: dict) -> AverageRequestsPerUserPerDateResponse:
89
+ items_data = data.get("averageRequestsPerUserPerDate", [])
90
+ items = [RequestsPerUserPerDateItem.model_validate(item) for item in items_data]
91
+ return AverageRequestsPerUserPerDateResponse(averageRequestsPerUserPerDate=items)
92
+
93
+ @classmethod
94
+ def map_to_average_tokens_per_request_response(cls, data: dict) -> AverageTokensPerRequestResponse:
95
+ return AverageTokensPerRequestResponse(
96
+ averageInputTokens=data.get("averageInputTokens", 0.0),
97
+ averageOutputTokens=data.get("averageOutputTokens", 0.0),
98
+ averageTotalTokens=data.get("averageTotalTokens", 0.0)
99
+ )
100
+
101
+ @classmethod
102
+ def map_to_average_users_per_agent_response(cls, data: dict) -> AverageUsersPerAgentResponse:
103
+ items_data = data.get("averageUsersPerAgent", [])
104
+ items = [UsersPerAgentItem.model_validate(item) for item in items_data]
105
+ return AverageUsersPerAgentResponse(averageUsersPerAgent=items)
106
+
107
+ @classmethod
108
+ def map_to_average_users_per_project_response(cls, data: dict) -> AverageUsersPerProjectResponse:
109
+ items_data = data.get("averageUsersPerProject", [])
110
+ items = [UsersPerProjectItem.model_validate(item) for item in items_data]
111
+ return AverageUsersPerProjectResponse(averageUsersPerProject=items)
112
+
113
+ @classmethod
114
+ def map_to_number_of_tokens_response(cls, data: dict) -> NumberOfTokensResponse:
115
+ return NumberOfTokensResponse(
116
+ totalInputTokens=data.get("totalInputTokens", 0),
117
+ totalOutputTokens=data.get("totalOutputTokens", 0),
118
+ totalTokens=data.get("totalTokens", 0)
119
+ )
120
+
121
+ @classmethod
122
+ def map_to_number_of_tokens_per_agent_response(cls, data: dict) -> NumberOfTokensPerAgentResponse:
123
+ items_data = data.get("tokensPerAgent", [])
124
+ items = [TokensPerAgentItem.model_validate(item) for item in items_data]
125
+ return NumberOfTokensPerAgentResponse(tokensPerAgent=items)
126
+
127
+ @classmethod
128
+ def map_to_number_of_tokens_per_day_response(cls, data: dict) -> NumberOfTokensPerDayResponse:
129
+ items_data = data.get("tokensPerDay", [])
130
+ items = [TokensPerDayItem.model_validate(item) for item in items_data]
131
+ return NumberOfTokensPerDayResponse(tokensPerDay=items)
132
+
133
+ @classmethod
134
+ def map_to_overall_error_rate_response(cls, data: dict) -> OverallErrorRateResponse:
135
+ return OverallErrorRateResponse(errorRate=data.get("errorRate", 0.0))
136
+
137
+ @classmethod
138
+ def map_to_top_10_agents_by_requests_response(cls, data: dict) -> Top10AgentsByRequestsResponse:
139
+ items_data = data.get("topAgents", [])
140
+ items = [AgentByRequestsItem.model_validate(item) for item in items_data]
141
+ return Top10AgentsByRequestsResponse(topAgents=items)
142
+
143
+ @classmethod
144
+ def map_to_top_10_agents_by_tokens_response(cls, data: dict) -> Top10AgentsByTokensResponse:
145
+ items_data = data.get("topAgents", [])
146
+ items = [AgentByTokensItem.model_validate(item) for item in items_data]
147
+ return Top10AgentsByTokensResponse(topAgents=items)
148
+
149
+ @classmethod
150
+ def map_to_top_10_users_by_cost_response(cls, data: dict) -> Top10UsersByCostResponse:
151
+ items_data = data.get("topUsers", [])
152
+ items = [UserByCostItem.model_validate(item) for item in items_data]
153
+ return Top10UsersByCostResponse(topUsers=items)
154
+
155
+ @classmethod
156
+ def map_to_top_10_users_by_requests_response(cls, data: dict) -> Top10UsersByRequestsResponse:
157
+ items_data = data.get("topUsers", [])
158
+ items = [UserByRequestsItem.model_validate(item) for item in items_data]
159
+ return Top10UsersByRequestsResponse(topUsers=items)
160
+
161
+ @classmethod
162
+ def map_to_total_active_agents_response(cls, data: dict) -> TotalActiveAgentsResponse:
163
+ return TotalActiveAgentsResponse(totalActiveAgents=data.get("totalActiveAgents", 0))
164
+
165
+ @classmethod
166
+ def map_to_total_active_projects_response(cls, data: dict) -> TotalActiveProjectsResponse:
167
+ return TotalActiveProjectsResponse(totalActiveProjects=data.get("totalActiveProjects", 0))
168
+
169
+ @classmethod
170
+ def map_to_total_active_users_response(cls, data: dict) -> TotalActiveUsersResponse:
171
+ return TotalActiveUsersResponse(totalActiveUsers=data.get("totalActiveUsers", 0))
172
+
173
+ @classmethod
174
+ def map_to_total_cost_response(cls, data: dict) -> TotalCostResponse:
175
+ return TotalCostResponse(totalCost=data.get("totalCost", 0.0))
176
+
177
+ @classmethod
178
+ def map_to_total_cost_per_day_response(cls, data: dict) -> TotalCostPerDayResponse:
179
+ items_data = data.get("costPerDay", [])
180
+ items = [CostPerDayItem.model_validate(item) for item in items_data]
181
+ return TotalCostPerDayResponse(costPerDay=items)
182
+
183
+ @classmethod
184
+ def map_to_total_request_time_response(cls, data: dict) -> TotalRequestTimeResponse:
185
+ return TotalRequestTimeResponse(totalTime=data.get("totalTime", 0.0))
186
+
187
+ @classmethod
188
+ def map_to_total_requests_response(cls, data: dict) -> TotalRequestsResponse:
189
+ return TotalRequestsResponse(totalRequests=data.get("totalRequests", 0))
190
+
191
+ @classmethod
192
+ def map_to_total_requests_per_day_response(cls, data: dict) -> TotalRequestsPerDayResponse:
193
+ items_data = data.get("requestsPerDay", [])
194
+ items = [RequestsPerDayItem.model_validate(item) for item in items_data]
195
+ return TotalRequestsPerDayResponse(requestsPerDay=items)
196
+
197
+ @classmethod
198
+ def map_to_total_requests_with_error_response(cls, data: dict) -> TotalRequestsWithErrorResponse:
199
+ return TotalRequestsWithErrorResponse(totalRequestsWithError=data.get("totalRequestsWithError", 0))
200
+
201
+ @classmethod
202
+ def map_to_total_tokens_response(cls, data: dict) -> TotalTokensResponse:
203
+ return TotalTokensResponse(
204
+ totalInputTokens=data.get("totalInputTokens", 0),
205
+ totalOutputTokens=data.get("totalOutputTokens", 0),
206
+ totalTokens=data.get("totalTokens", 0)
207
+ )
@@ -0,0 +1,240 @@
1
+ from pydantic.main import BaseModel
2
+ from typing import Optional
3
+
4
+
5
+ class AgentsCreatedAndModifiedResponse(BaseModel):
6
+ createdAgents: int
7
+ modifiedAgents: int
8
+
9
+
10
+ class AgentActivityPerDayItem(BaseModel):
11
+ date: str
12
+ createdAgents: int
13
+ modifiedAgents: int
14
+
15
+
16
+ class AgentsCreatedAndModifiedPerDayResponse(BaseModel):
17
+ agentsCreatedAndModifiedPerDay: list[AgentActivityPerDayItem]
18
+
19
+
20
+ class FlowsCreatedAndModifiedResponse(BaseModel):
21
+ createdFlows: int
22
+ modifiedFlows: int
23
+
24
+
25
+ class FlowActivityPerDayItem(BaseModel):
26
+ date: str
27
+ createdFlows: int
28
+ modifiedFlows: int
29
+
30
+
31
+ class FlowsCreatedAndModifiedPerDayResponse(BaseModel):
32
+ flowsCreatedAndModifiedPerDay: list[FlowActivityPerDayItem]
33
+
34
+
35
+ class ProcessesCreatedAndModifiedResponse(BaseModel):
36
+ createdProcesses: int
37
+ modifiedProcesses: int
38
+
39
+
40
+ class AgentUsagePerUserItem(BaseModel):
41
+ userId: str
42
+ userName: Optional[str] = None
43
+ totalCost: float
44
+ totalRequests: int
45
+ totalTokens: int
46
+
47
+
48
+ class AgentUsagePerUserResponse(BaseModel):
49
+ agentUsagePerUser: list[AgentUsagePerUserItem]
50
+
51
+
52
+ class AverageCostPerRequestResponse(BaseModel):
53
+ averageCost: float
54
+
55
+
56
+ class AverageCostPerUserResponse(BaseModel):
57
+ averageCost: float
58
+
59
+
60
+ class CostPerUserPerDateItem(BaseModel):
61
+ date: str
62
+ userId: str
63
+ userName: Optional[str] = None
64
+ averageCost: float
65
+
66
+
67
+ class AverageCostPerUserPerDateResponse(BaseModel):
68
+ averageCostPerUserPerDate: list[CostPerUserPerDateItem]
69
+
70
+
71
+ class AverageRequestTimeResponse(BaseModel):
72
+ averageTime: float
73
+
74
+
75
+ class AverageRequestsPerDayResponse(BaseModel):
76
+ averageRequests: float
77
+
78
+
79
+ class AverageRequestsPerUserResponse(BaseModel):
80
+ averageRequests: float
81
+
82
+
83
+ class RequestsPerUserPerDateItem(BaseModel):
84
+ date: str
85
+ userId: str
86
+ userName: Optional[str] = None
87
+ averageRequests: float
88
+
89
+
90
+ class AverageRequestsPerUserPerDateResponse(BaseModel):
91
+ averageRequestsPerUserPerDate: list[RequestsPerUserPerDateItem]
92
+
93
+
94
+ class AverageTokensPerRequestResponse(BaseModel):
95
+ averageInputTokens: float
96
+ averageOutputTokens: float
97
+ averageTotalTokens: float
98
+
99
+
100
+ class UsersPerAgentItem(BaseModel):
101
+ agentName: str
102
+ averageUsers: float
103
+
104
+
105
+ class AverageUsersPerAgentResponse(BaseModel):
106
+ averageUsersPerAgent: list[UsersPerAgentItem]
107
+
108
+
109
+ class UsersPerProjectItem(BaseModel):
110
+ projectId: str
111
+ projectName: Optional[str] = None
112
+ averageUsers: float
113
+
114
+
115
+ class AverageUsersPerProjectResponse(BaseModel):
116
+ averageUsersPerProject: list[UsersPerProjectItem]
117
+
118
+
119
+ class NumberOfTokensResponse(BaseModel):
120
+ totalInputTokens: int
121
+ totalOutputTokens: int
122
+ totalTokens: int
123
+
124
+
125
+ class TokensPerAgentItem(BaseModel):
126
+ agentName: str
127
+ model: str
128
+ inputTokens: int
129
+ outputTokens: int
130
+ totalTokens: int
131
+
132
+
133
+ class NumberOfTokensPerAgentResponse(BaseModel):
134
+ tokensPerAgent: list[TokensPerAgentItem]
135
+
136
+
137
+ class TokensPerDayItem(BaseModel):
138
+ date: str
139
+ inputTokens: int
140
+ outputTokens: int
141
+ totalTokens: int
142
+
143
+
144
+ class NumberOfTokensPerDayResponse(BaseModel):
145
+ tokensPerDay: list[TokensPerDayItem]
146
+
147
+
148
+ class OverallErrorRateResponse(BaseModel):
149
+ errorRate: float
150
+
151
+
152
+ class AgentByRequestsItem(BaseModel):
153
+ agentName: str
154
+ totalRequests: int
155
+
156
+
157
+ class Top10AgentsByRequestsResponse(BaseModel):
158
+ topAgents: list[AgentByRequestsItem]
159
+
160
+
161
+ class AgentByTokensItem(BaseModel):
162
+ agentName: str
163
+ totalTokens: int
164
+
165
+
166
+ class Top10AgentsByTokensResponse(BaseModel):
167
+ topAgents: list[AgentByTokensItem]
168
+
169
+
170
+ class UserByCostItem(BaseModel):
171
+ userId: str
172
+ userName: Optional[str] = None
173
+ totalCost: float
174
+
175
+
176
+ class Top10UsersByCostResponse(BaseModel):
177
+ topUsers: list[UserByCostItem]
178
+
179
+
180
+ class UserByRequestsItem(BaseModel):
181
+ userId: str
182
+ userName: Optional[str] = None
183
+ totalRequests: int
184
+
185
+
186
+ class Top10UsersByRequestsResponse(BaseModel):
187
+ topUsers: list[UserByRequestsItem]
188
+
189
+
190
+ class TotalActiveAgentsResponse(BaseModel):
191
+ totalActiveAgents: int
192
+
193
+
194
+ class TotalActiveProjectsResponse(BaseModel):
195
+ totalActiveProjects: int
196
+
197
+
198
+ class TotalActiveUsersResponse(BaseModel):
199
+ totalActiveUsers: int
200
+
201
+
202
+ class TotalCostResponse(BaseModel):
203
+ totalCost: float
204
+
205
+
206
+ class CostPerDayItem(BaseModel):
207
+ date: str
208
+ totalCost: float
209
+
210
+
211
+ class TotalCostPerDayResponse(BaseModel):
212
+ costPerDay: list[CostPerDayItem]
213
+
214
+
215
+ class TotalRequestTimeResponse(BaseModel):
216
+ totalTime: float
217
+
218
+
219
+ class TotalRequestsResponse(BaseModel):
220
+ totalRequests: int
221
+
222
+
223
+ class RequestsPerDayItem(BaseModel):
224
+ date: str
225
+ totalRequests: int
226
+ totalRequestsWithError: int
227
+
228
+
229
+ class TotalRequestsPerDayResponse(BaseModel):
230
+ requestsPerDay: list[RequestsPerDayItem]
231
+
232
+
233
+ class TotalRequestsWithErrorResponse(BaseModel):
234
+ totalRequestsWithError: int
235
+
236
+
237
+ class TotalTokensResponse(BaseModel):
238
+ totalInputTokens: int
239
+ totalOutputTokens: int
240
+ totalTokens: int
@@ -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 = "default"):
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 = "default"):
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(