iatoolkit 0.3.9__py3-none-any.whl → 0.107.4__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.
Potentially problematic release.
This version of iatoolkit might be problematic. Click here for more details.
- iatoolkit/__init__.py +27 -35
- iatoolkit/base_company.py +3 -35
- iatoolkit/cli_commands.py +18 -47
- iatoolkit/common/__init__.py +0 -0
- iatoolkit/common/exceptions.py +48 -0
- iatoolkit/common/interfaces/__init__.py +0 -0
- iatoolkit/common/interfaces/asset_storage.py +34 -0
- iatoolkit/common/interfaces/database_provider.py +39 -0
- iatoolkit/common/model_registry.py +159 -0
- iatoolkit/common/routes.py +138 -0
- iatoolkit/common/session_manager.py +26 -0
- iatoolkit/common/util.py +353 -0
- iatoolkit/company_registry.py +66 -29
- iatoolkit/core.py +514 -0
- iatoolkit/infra/__init__.py +5 -0
- iatoolkit/infra/brevo_mail_app.py +123 -0
- iatoolkit/infra/call_service.py +140 -0
- iatoolkit/infra/connectors/__init__.py +5 -0
- iatoolkit/infra/connectors/file_connector.py +17 -0
- iatoolkit/infra/connectors/file_connector_factory.py +57 -0
- iatoolkit/infra/connectors/google_cloud_storage_connector.py +53 -0
- iatoolkit/infra/connectors/google_drive_connector.py +68 -0
- iatoolkit/infra/connectors/local_file_connector.py +46 -0
- iatoolkit/infra/connectors/s3_connector.py +33 -0
- iatoolkit/infra/google_chat_app.py +57 -0
- iatoolkit/infra/llm_providers/__init__.py +0 -0
- iatoolkit/infra/llm_providers/deepseek_adapter.py +278 -0
- iatoolkit/infra/llm_providers/gemini_adapter.py +350 -0
- iatoolkit/infra/llm_providers/openai_adapter.py +124 -0
- iatoolkit/infra/llm_proxy.py +268 -0
- iatoolkit/infra/llm_response.py +45 -0
- iatoolkit/infra/redis_session_manager.py +122 -0
- iatoolkit/locales/en.yaml +222 -0
- iatoolkit/locales/es.yaml +225 -0
- iatoolkit/repositories/__init__.py +5 -0
- iatoolkit/repositories/database_manager.py +187 -0
- iatoolkit/repositories/document_repo.py +33 -0
- iatoolkit/repositories/filesystem_asset_repository.py +36 -0
- iatoolkit/repositories/llm_query_repo.py +105 -0
- iatoolkit/repositories/models.py +279 -0
- iatoolkit/repositories/profile_repo.py +171 -0
- iatoolkit/repositories/vs_repo.py +150 -0
- iatoolkit/services/__init__.py +5 -0
- iatoolkit/services/auth_service.py +193 -0
- {services → iatoolkit/services}/benchmark_service.py +7 -7
- iatoolkit/services/branding_service.py +153 -0
- iatoolkit/services/company_context_service.py +214 -0
- iatoolkit/services/configuration_service.py +375 -0
- iatoolkit/services/dispatcher_service.py +134 -0
- {services → iatoolkit/services}/document_service.py +20 -8
- iatoolkit/services/embedding_service.py +148 -0
- iatoolkit/services/excel_service.py +156 -0
- {services → iatoolkit/services}/file_processor_service.py +36 -21
- iatoolkit/services/history_manager_service.py +208 -0
- iatoolkit/services/i18n_service.py +104 -0
- iatoolkit/services/jwt_service.py +80 -0
- iatoolkit/services/language_service.py +89 -0
- iatoolkit/services/license_service.py +82 -0
- iatoolkit/services/llm_client_service.py +438 -0
- iatoolkit/services/load_documents_service.py +174 -0
- iatoolkit/services/mail_service.py +213 -0
- {services → iatoolkit/services}/profile_service.py +200 -101
- iatoolkit/services/prompt_service.py +303 -0
- iatoolkit/services/query_service.py +467 -0
- iatoolkit/services/search_service.py +55 -0
- iatoolkit/services/sql_service.py +169 -0
- iatoolkit/services/tool_service.py +246 -0
- iatoolkit/services/user_feedback_service.py +117 -0
- iatoolkit/services/user_session_context_service.py +213 -0
- iatoolkit/static/images/fernando.jpeg +0 -0
- iatoolkit/static/images/iatoolkit_core.png +0 -0
- iatoolkit/static/images/iatoolkit_logo.png +0 -0
- iatoolkit/static/js/chat_feedback_button.js +80 -0
- iatoolkit/static/js/chat_filepond.js +85 -0
- iatoolkit/static/js/chat_help_content.js +124 -0
- iatoolkit/static/js/chat_history_button.js +110 -0
- iatoolkit/static/js/chat_logout_button.js +36 -0
- iatoolkit/static/js/chat_main.js +401 -0
- iatoolkit/static/js/chat_model_selector.js +227 -0
- iatoolkit/static/js/chat_onboarding_button.js +103 -0
- iatoolkit/static/js/chat_prompt_manager.js +94 -0
- iatoolkit/static/js/chat_reload_button.js +38 -0
- iatoolkit/static/styles/chat_iatoolkit.css +559 -0
- iatoolkit/static/styles/chat_modal.css +133 -0
- iatoolkit/static/styles/chat_public.css +135 -0
- iatoolkit/static/styles/documents.css +598 -0
- iatoolkit/static/styles/landing_page.css +398 -0
- iatoolkit/static/styles/llm_output.css +148 -0
- iatoolkit/static/styles/onboarding.css +176 -0
- iatoolkit/system_prompts/__init__.py +0 -0
- iatoolkit/system_prompts/query_main.prompt +30 -23
- iatoolkit/system_prompts/sql_rules.prompt +47 -12
- iatoolkit/templates/_company_header.html +45 -0
- iatoolkit/templates/_login_widget.html +42 -0
- iatoolkit/templates/base.html +78 -0
- iatoolkit/templates/change_password.html +66 -0
- iatoolkit/templates/chat.html +337 -0
- iatoolkit/templates/chat_modals.html +185 -0
- iatoolkit/templates/error.html +51 -0
- iatoolkit/templates/forgot_password.html +51 -0
- iatoolkit/templates/onboarding_shell.html +106 -0
- iatoolkit/templates/signup.html +79 -0
- iatoolkit/views/__init__.py +5 -0
- iatoolkit/views/base_login_view.py +96 -0
- iatoolkit/views/change_password_view.py +116 -0
- iatoolkit/views/chat_view.py +76 -0
- iatoolkit/views/embedding_api_view.py +65 -0
- iatoolkit/views/forgot_password_view.py +75 -0
- iatoolkit/views/help_content_api_view.py +54 -0
- iatoolkit/views/history_api_view.py +56 -0
- iatoolkit/views/home_view.py +63 -0
- iatoolkit/views/init_context_api_view.py +74 -0
- iatoolkit/views/llmquery_api_view.py +59 -0
- iatoolkit/views/load_company_configuration_api_view.py +49 -0
- iatoolkit/views/load_document_api_view.py +65 -0
- iatoolkit/views/login_view.py +170 -0
- iatoolkit/views/logout_api_view.py +57 -0
- iatoolkit/views/profile_api_view.py +46 -0
- iatoolkit/views/prompt_api_view.py +37 -0
- iatoolkit/views/root_redirect_view.py +22 -0
- iatoolkit/views/signup_view.py +100 -0
- iatoolkit/views/static_page_view.py +27 -0
- iatoolkit/views/user_feedback_api_view.py +60 -0
- iatoolkit/views/users_api_view.py +33 -0
- iatoolkit/views/verify_user_view.py +60 -0
- iatoolkit-0.107.4.dist-info/METADATA +268 -0
- iatoolkit-0.107.4.dist-info/RECORD +132 -0
- iatoolkit-0.107.4.dist-info/licenses/LICENSE +21 -0
- iatoolkit-0.107.4.dist-info/licenses/LICENSE_COMMUNITY.md +15 -0
- {iatoolkit-0.3.9.dist-info → iatoolkit-0.107.4.dist-info}/top_level.txt +0 -1
- iatoolkit/iatoolkit.py +0 -413
- iatoolkit/system_prompts/arquitectura.prompt +0 -32
- iatoolkit-0.3.9.dist-info/METADATA +0 -252
- iatoolkit-0.3.9.dist-info/RECORD +0 -32
- services/__init__.py +0 -5
- services/api_service.py +0 -75
- services/dispatcher_service.py +0 -351
- services/excel_service.py +0 -98
- services/history_service.py +0 -45
- services/jwt_service.py +0 -91
- services/load_documents_service.py +0 -212
- services/mail_service.py +0 -62
- services/prompt_manager_service.py +0 -172
- services/query_service.py +0 -334
- services/search_service.py +0 -32
- services/sql_service.py +0 -42
- services/tasks_service.py +0 -188
- services/user_feedback_service.py +0 -67
- services/user_session_context_service.py +0 -85
- {iatoolkit-0.3.9.dist-info → iatoolkit-0.107.4.dist-info}/WHEEL +0 -0
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2024 Fernando Libedinsky
|
|
2
|
-
# Producto: IAToolkit
|
|
3
|
-
# Todos los derechos reservados.
|
|
4
|
-
# En trámite de registro en el Registro de Propiedad Intelectual de Chile.
|
|
5
|
-
|
|
6
|
-
from infra.redis_session_manager import RedisSessionManager
|
|
7
|
-
from typing import List, Dict, Optional
|
|
8
|
-
import json
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class UserSessionContextService:
|
|
12
|
-
"""
|
|
13
|
-
Gestiona el contexto de la sesión del usuario, incluyendo el historial
|
|
14
|
-
de conversación con el LLM y datos de la sesión del usuario.
|
|
15
|
-
|
|
16
|
-
Usa RedisSessionManager para persistencia directa en Redis.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
def _get_llm_history_key(self, company_short_name: str, user_identifier: str) -> str:
|
|
20
|
-
user_identifier = (user_identifier or "").strip()
|
|
21
|
-
if not user_identifier:
|
|
22
|
-
return None
|
|
23
|
-
return f"llm_history:{company_short_name}/{user_identifier}"
|
|
24
|
-
|
|
25
|
-
def _get_user_data_key(self, company_short_name: str, user_identifier: str) -> str:
|
|
26
|
-
user_identifier = (user_identifier or "").strip()
|
|
27
|
-
if not user_identifier:
|
|
28
|
-
return None
|
|
29
|
-
return f"user_data:{company_short_name}/{user_identifier}"
|
|
30
|
-
|
|
31
|
-
def clear_all_context(self, company_short_name: str, user_identifier: str):
|
|
32
|
-
"""Limpia todo el contexto de sesión para un usuario."""
|
|
33
|
-
self.clear_llm_history(company_short_name, user_identifier)
|
|
34
|
-
self.clear_user_session_data(company_short_name, user_identifier)
|
|
35
|
-
|
|
36
|
-
def clear_llm_history(self, company_short_name: str, user_identifier: str):
|
|
37
|
-
history_key = self._get_llm_history_key(company_short_name, user_identifier)
|
|
38
|
-
if history_key:
|
|
39
|
-
RedisSessionManager.remove(history_key)
|
|
40
|
-
|
|
41
|
-
def get_last_response_id(self, company_short_name: str, user_identifier: str) -> str:
|
|
42
|
-
history_key = self._get_llm_history_key(company_short_name, user_identifier)
|
|
43
|
-
if not history_key:
|
|
44
|
-
return None
|
|
45
|
-
|
|
46
|
-
return RedisSessionManager.get(history_key, '')
|
|
47
|
-
|
|
48
|
-
def save_last_response_id(self, company_short_name: str, user_identifier: str, response_id: str):
|
|
49
|
-
user_identifier = (user_identifier or "").strip()
|
|
50
|
-
history_key = self._get_llm_history_key(company_short_name, user_identifier)
|
|
51
|
-
if not history_key or not user_identifier:
|
|
52
|
-
return
|
|
53
|
-
|
|
54
|
-
RedisSessionManager.set(history_key, response_id)
|
|
55
|
-
|
|
56
|
-
def save_context_history(self, company_short_name: str, user_identifier: str, context_history: List[Dict]):
|
|
57
|
-
history_key = f"chat_history:{company_short_name}/{user_identifier}"
|
|
58
|
-
if not history_key:
|
|
59
|
-
return
|
|
60
|
-
RedisSessionManager.set(history_key, json.dumps(context_history))
|
|
61
|
-
|
|
62
|
-
def get_context_history(self, company_short_name: str, user_identifier: str) -> Optional[List[Dict]]:
|
|
63
|
-
history_key = f"chat_history:{company_short_name}/{user_identifier}"
|
|
64
|
-
return RedisSessionManager.get_json(history_key, {})
|
|
65
|
-
|
|
66
|
-
def save_user_session_data(self, company_short_name: str, user_identifier: str, data: dict):
|
|
67
|
-
"""Guarda un diccionario de datos en la sesión del usuario."""
|
|
68
|
-
user_identifier = (user_identifier or "").strip()
|
|
69
|
-
data_key = self._get_user_data_key(company_short_name, user_identifier)
|
|
70
|
-
if data_key:
|
|
71
|
-
RedisSessionManager.set_json(data_key, data)
|
|
72
|
-
|
|
73
|
-
def get_user_session_data(self, company_short_name: str, user_identifier: str) -> dict:
|
|
74
|
-
"""Recupera el diccionario de datos de la sesión del usuario."""
|
|
75
|
-
data_key = self._get_user_data_key(company_short_name, user_identifier)
|
|
76
|
-
if not data_key:
|
|
77
|
-
return {}
|
|
78
|
-
|
|
79
|
-
return RedisSessionManager.get_json(data_key, {})
|
|
80
|
-
|
|
81
|
-
def clear_user_session_data(self, company_short_name: str, user_identifier: str):
|
|
82
|
-
"""Limpia los datos de la sesión del usuario."""
|
|
83
|
-
data_key = self._get_user_data_key(company_short_name, user_identifier)
|
|
84
|
-
if data_key:
|
|
85
|
-
RedisSessionManager.remove(data_key)
|
|
File without changes
|