iatoolkit 0.7.10__py3-none-any.whl → 0.7.12__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.

Files changed (192) hide show
  1. iatoolkit/__init__.py +18 -14
  2. iatoolkit/base_company.py +5 -5
  3. iatoolkit/cli_commands.py +5 -3
  4. {common → iatoolkit/common}/auth.py +3 -3
  5. {common → iatoolkit/common}/routes.py +19 -19
  6. {common → iatoolkit/common}/util.py +2 -2
  7. iatoolkit/iatoolkit.py +37 -38
  8. {infra → iatoolkit/infra}/call_service.py +1 -1
  9. {infra → iatoolkit/infra}/connectors/file_connector_factory.py +5 -5
  10. {infra → iatoolkit/infra}/connectors/google_cloud_storage_connector.py +1 -1
  11. {infra → iatoolkit/infra}/connectors/google_drive_connector.py +1 -1
  12. {infra → iatoolkit/infra}/connectors/local_file_connector.py +2 -2
  13. {infra → iatoolkit/infra}/connectors/s3_connector.py +1 -1
  14. {infra → iatoolkit/infra}/gemini_adapter.py +2 -2
  15. {infra → iatoolkit/infra}/google_chat_app.py +1 -1
  16. {infra → iatoolkit/infra}/llm_client.py +7 -7
  17. {infra → iatoolkit/infra}/llm_proxy.py +6 -6
  18. {infra → iatoolkit/infra}/mail_app.py +1 -1
  19. {infra → iatoolkit/infra}/openai_adapter.py +2 -2
  20. {repositories → iatoolkit/repositories}/database_manager.py +1 -1
  21. {repositories → iatoolkit/repositories}/document_repo.py +3 -3
  22. {repositories → iatoolkit/repositories}/llm_query_repo.py +2 -2
  23. {repositories → iatoolkit/repositories}/profile_repo.py +2 -2
  24. {repositories → iatoolkit/repositories}/tasks_repo.py +2 -2
  25. {repositories → iatoolkit/repositories}/vs_repo.py +3 -3
  26. {services → iatoolkit/services}/benchmark_service.py +3 -3
  27. {services → iatoolkit/services}/dispatcher_service.py +9 -8
  28. {services → iatoolkit/services}/document_service.py +1 -1
  29. {services → iatoolkit/services}/excel_service.py +2 -2
  30. {services → iatoolkit/services}/file_processor_service.py +2 -2
  31. {services → iatoolkit/services}/history_service.py +4 -3
  32. {services → iatoolkit/services}/load_documents_service.py +11 -10
  33. {services → iatoolkit/services}/mail_service.py +2 -2
  34. {services → iatoolkit/services}/profile_service.py +6 -6
  35. {services → iatoolkit/services}/prompt_manager_service.py +5 -4
  36. {services → iatoolkit/services}/query_service.py +12 -11
  37. {services → iatoolkit/services}/search_service.py +2 -2
  38. {services → iatoolkit/services}/sql_service.py +4 -3
  39. {services → iatoolkit/services}/tasks_service.py +6 -6
  40. {services → iatoolkit/services}/user_feedback_service.py +3 -3
  41. {services → iatoolkit/services}/user_session_context_service.py +1 -1
  42. iatoolkit/static/images/arrow_up.png +0 -0
  43. iatoolkit/static/images/diagrama_iatoolkit.jpg +0 -0
  44. iatoolkit/static/images/logo_clinica.png +0 -0
  45. iatoolkit/static/images/logo_iatoolkit.png +0 -0
  46. iatoolkit/static/images/logo_maxxa.png +0 -0
  47. iatoolkit/static/images/logo_notaria.png +0 -0
  48. iatoolkit/static/images/logo_tarjeta.png +0 -0
  49. iatoolkit/static/images/logo_umayor.png +0 -0
  50. iatoolkit/static/images/upload.png +0 -0
  51. iatoolkit/static/js/chat_feedback.js +115 -0
  52. iatoolkit/static/js/chat_filepond.js +85 -0
  53. iatoolkit/static/js/chat_history.js +117 -0
  54. iatoolkit/static/js/chat_main.js +436 -0
  55. iatoolkit/static/styles/chat_iatoolkit.css +701 -0
  56. iatoolkit/static/styles/chat_info.css +53 -0
  57. iatoolkit/static/styles/chat_modal.css +136 -0
  58. iatoolkit/static/styles/llm_output.css +115 -0
  59. iatoolkit/static/temp/024f44a9-cc7e-4bde-9a3c-11903a8f5d3d.xlsx +0 -0
  60. iatoolkit/static/temp/0b97768e-79e8-43ec-b17e-ba3137f94e93.xlsx +0 -0
  61. iatoolkit/static/temp/202883ee-763e-4b40-9bb6-bfacfc5e65fe.xlsx +0 -0
  62. iatoolkit/static/temp/28287491-08b7-4863-a2a3-49fcb64a0906.xlsx +0 -0
  63. iatoolkit/static/temp/36780cac-7a46-4db4-ac98-7338a51aaf52.xlsx +0 -0
  64. iatoolkit/static/temp/5c1b66f6-d58f-4684-8a7a-df3bb1a35eaa.xlsx +0 -0
  65. iatoolkit/static/temp/5d5a3500-ec57-4e07-a554-8799a906d1ab.xlsx +0 -0
  66. iatoolkit/static/temp/65887e40-cf64-49aa-8d1f-651cb0f8cdf0.xlsx +0 -0
  67. iatoolkit/static/temp/6fa64b13-e8e5-40ad-8257-00fd1682dad8.xlsx +0 -0
  68. iatoolkit/static/temp/7ab7071f-ad9b-49e6-8e63-f08410625ce7.xlsx +0 -0
  69. iatoolkit/static/temp/824346d9-d54d-40c6-b5c2-9e1d84d0ae90.xlsx +0 -0
  70. iatoolkit/static/temp/9ca80c3d-d196-4dfc-8179-582584fae04c.xlsx +0 -0
  71. iatoolkit/static/temp/a34cb8a6-85fb-4ea8-aabe-889967cd83b5.xlsx +0 -0
  72. iatoolkit/static/temp/a7fc9c13-c509-4499-b4be-23bfa57cac31.xlsx +0 -0
  73. iatoolkit/static/temp/b83084f5-fe54-4580-885e-412b4388cbda.xlsx +0 -0
  74. iatoolkit/static/temp/c17c6864-34e1-448f-b0e9-380354256ea9.xlsx +0 -0
  75. iatoolkit/static/temp/customer_clusters.parquet +0 -0
  76. iatoolkit/static/temp/customer_clusters.xlsx +0 -0
  77. iatoolkit/static/temp/d1af98b8-18a9-4b94-b9bc-607d19a87d0d.xlsx +0 -0
  78. iatoolkit/templates/about.html +13 -0
  79. iatoolkit/templates/base.html +45 -0
  80. iatoolkit/templates/change_password.html +45 -0
  81. iatoolkit/templates/chat.html +180 -0
  82. iatoolkit/templates/chat_modals.html +115 -0
  83. iatoolkit/templates/error.html +15 -0
  84. iatoolkit/templates/forgot_password.html +33 -0
  85. iatoolkit/templates/header.html +31 -0
  86. iatoolkit/templates/home.html +201 -0
  87. iatoolkit/templates/login.html +43 -0
  88. iatoolkit/templates/signup.html +78 -0
  89. iatoolkit/templates/test.html +9 -0
  90. {views → iatoolkit/views}/change_password_view.py +1 -1
  91. {views → iatoolkit/views}/chat_token_request_view.py +2 -2
  92. {views → iatoolkit/views}/chat_view.py +3 -3
  93. {views → iatoolkit/views}/download_file_view.py +3 -3
  94. {views → iatoolkit/views}/external_chat_login_view.py +5 -5
  95. {views → iatoolkit/views}/external_login_view.py +2 -2
  96. {views → iatoolkit/views}/file_store_view.py +2 -2
  97. {views → iatoolkit/views}/forgot_password_view.py +1 -1
  98. {views → iatoolkit/views}/history_view.py +2 -2
  99. {views → iatoolkit/views}/home_view.py +1 -1
  100. {views → iatoolkit/views}/llmquery_view.py +2 -2
  101. {views → iatoolkit/views}/login_view.py +1 -1
  102. {views → iatoolkit/views}/prompt_view.py +2 -2
  103. {views → iatoolkit/views}/signup_view.py +1 -1
  104. {views → iatoolkit/views}/tasks_review_view.py +2 -2
  105. {views → iatoolkit/views}/tasks_view.py +2 -2
  106. {views → iatoolkit/views}/user_feedback_view.py +2 -2
  107. {views → iatoolkit/views}/verify_user_view.py +1 -1
  108. {iatoolkit-0.7.10.dist-info → iatoolkit-0.7.12.dist-info}/METADATA +1 -1
  109. iatoolkit-0.7.12.dist-info/RECORD +194 -0
  110. iatoolkit-0.7.12.dist-info/top_level.txt +2 -0
  111. tests/__init__.py +5 -0
  112. tests/common/__init__.py +0 -0
  113. tests/common/test_auth.py +279 -0
  114. tests/common/test_routes.py +42 -0
  115. tests/common/test_session_manager.py +59 -0
  116. tests/common/test_util.py +444 -0
  117. tests/companies/__init__.py +5 -0
  118. tests/conftest.py +36 -0
  119. tests/infra/__init__.py +5 -0
  120. tests/infra/connectors/__init__.py +5 -0
  121. tests/infra/connectors/test_google_drive_connector.py +107 -0
  122. tests/infra/connectors/test_local_file_connector.py +85 -0
  123. tests/infra/connectors/test_s3_connector.py +95 -0
  124. tests/infra/test_call_service.py +92 -0
  125. tests/infra/test_database_manager.py +59 -0
  126. tests/infra/test_gemini_adapter.py +137 -0
  127. tests/infra/test_google_chat_app.py +68 -0
  128. tests/infra/test_llm_client.py +165 -0
  129. tests/infra/test_llm_proxy.py +122 -0
  130. tests/infra/test_mail_app.py +94 -0
  131. tests/infra/test_openai_adapter.py +105 -0
  132. tests/infra/test_redis_session_manager_service.py +117 -0
  133. tests/repositories/__init__.py +5 -0
  134. tests/repositories/test_database_manager.py +87 -0
  135. tests/repositories/test_document_repo.py +76 -0
  136. tests/repositories/test_llm_query_repo.py +340 -0
  137. tests/repositories/test_models.py +38 -0
  138. tests/repositories/test_profile_repo.py +142 -0
  139. tests/repositories/test_tasks_repo.py +76 -0
  140. tests/repositories/test_vs_repo.py +107 -0
  141. tests/services/__init__.py +5 -0
  142. tests/services/test_dispatcher_service.py +274 -0
  143. tests/services/test_document_service.py +181 -0
  144. tests/services/test_excel_service.py +208 -0
  145. tests/services/test_file_processor_service.py +121 -0
  146. tests/services/test_history_service.py +164 -0
  147. tests/services/test_jwt_service.py +255 -0
  148. tests/services/test_load_documents_service.py +112 -0
  149. tests/services/test_mail_service.py +70 -0
  150. tests/services/test_profile_service.py +379 -0
  151. tests/services/test_prompt_manager_service.py +190 -0
  152. tests/services/test_query_service.py +243 -0
  153. tests/services/test_search_service.py +39 -0
  154. tests/services/test_sql_service.py +160 -0
  155. tests/services/test_tasks_service.py +252 -0
  156. tests/services/test_user_feedback_service.py +389 -0
  157. tests/services/test_user_session_context_service.py +132 -0
  158. tests/views/__init__.py +5 -0
  159. tests/views/test_change_password_view.py +191 -0
  160. tests/views/test_chat_token_request_view.py +188 -0
  161. tests/views/test_chat_view.py +98 -0
  162. tests/views/test_download_file_view.py +149 -0
  163. tests/views/test_external_chat_login_view.py +120 -0
  164. tests/views/test_external_login_view.py +102 -0
  165. tests/views/test_file_store_view.py +128 -0
  166. tests/views/test_forgot_password_view.py +142 -0
  167. tests/views/test_history_view.py +336 -0
  168. tests/views/test_home_view.py +61 -0
  169. tests/views/test_llm_query_view.py +154 -0
  170. tests/views/test_login_view.py +114 -0
  171. tests/views/test_prompt_view.py +111 -0
  172. tests/views/test_signup_view.py +140 -0
  173. tests/views/test_tasks_review_view.py +104 -0
  174. tests/views/test_tasks_view.py +130 -0
  175. tests/views/test_user_feedback_view.py +214 -0
  176. tests/views/test_verify_user_view.py +110 -0
  177. iatoolkit-0.7.10.dist-info/RECORD +0 -80
  178. iatoolkit-0.7.10.dist-info/top_level.txt +0 -6
  179. {common → iatoolkit/common}/__init__.py +0 -0
  180. {common → iatoolkit/common}/exceptions.py +0 -0
  181. {common → iatoolkit/common}/session_manager.py +0 -0
  182. {infra → iatoolkit/infra}/__init__.py +0 -0
  183. {infra → iatoolkit/infra}/connectors/__init__.py +0 -0
  184. {infra → iatoolkit/infra}/connectors/file_connector.py +0 -0
  185. {infra → iatoolkit/infra}/llm_response.py +0 -0
  186. {infra → iatoolkit/infra}/redis_session_manager.py +0 -0
  187. {repositories → iatoolkit/repositories}/__init__.py +0 -0
  188. {repositories → iatoolkit/repositories}/models.py +0 -0
  189. {services → iatoolkit/services}/__init__.py +0 -0
  190. {services → iatoolkit/services}/jwt_service.py +0 -0
  191. {views → iatoolkit/views}/__init__.py +0 -0
  192. {iatoolkit-0.7.10.dist-info → iatoolkit-0.7.12.dist-info}/WHEEL +0 -0
iatoolkit/__init__.py CHANGED
@@ -16,20 +16,24 @@ from .base_company import BaseCompany
16
16
 
17
17
  # --- Services ---
18
18
  # Assuming they are in a 'services' sub-package
19
- from services.sql_service import SqlService
20
- from services.excel_service import ExcelService
21
- from services.dispatcher_service import Dispatcher
22
- from services.document_service import DocumentService
23
- from services.search_service import SearchService
24
- from services.load_documents_service import LoadDocumentsService
25
- from repositories.profile_repo import ProfileRepo
26
- from repositories.llm_query_repo import LLMQueryRepo
27
- from services.query_service import QueryService
28
- from services.prompt_manager_service import PromptService
29
- from repositories.database_manager import DatabaseManager
30
- from infra.call_service import CallServiceClient
31
- from common.util import Utility
32
- from repositories.models import Base, Company, Function, TaskType, Prompt, PromptCategory
19
+ from iatoolkit.services.sql_service import SqlService
20
+ from iatoolkit.services.excel_service import ExcelService
21
+ from iatoolkit.services.dispatcher_service import Dispatcher
22
+ from iatoolkit.services.document_service import DocumentService
23
+ from iatoolkit.services.search_service import SearchService
24
+ from iatoolkit.services.load_documents_service import LoadDocumentsService
25
+ from iatoolkit.repositories.profile_repo import ProfileRepo
26
+ from iatoolkit.repositories.llm_query_repo import LLMQueryRepo
27
+
28
+ from iatoolkit.services.query_service import QueryService
29
+ from iatoolkit.services.prompt_manager_service import PromptService
30
+ from iatoolkit.repositories.database_manager import DatabaseManager
31
+
32
+ from iatoolkit.infra.call_service import CallServiceClient
33
+ from iatoolkit.common.util import Utility
34
+
35
+
36
+ from iatoolkit.repositories.models import Base, Company, Function, TaskType, Prompt, PromptCategory
33
37
 
34
38
 
35
39
  __all__ = [
iatoolkit/base_company.py CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  # companies/base_company.py
7
7
  from abc import ABC, abstractmethod
8
- from typing import Any
9
- from repositories.profile_repo import ProfileRepo
10
- from repositories.llm_query_repo import LLMQueryRepo
11
- from services.prompt_manager_service import PromptService
12
- from repositories.models import Company, Function, PromptCategory
8
+ from iatoolkit.repositories.profile_repo import ProfileRepo
9
+ from iatoolkit.repositories.llm_query_repo import LLMQueryRepo
10
+
11
+ from iatoolkit.services.prompt_manager_service import PromptService
12
+ from iatoolkit.repositories.models import Company, Function, PromptCategory
13
13
  from iatoolkit import IAToolkit
14
14
 
15
15
 
iatoolkit/cli_commands.py CHANGED
@@ -6,7 +6,7 @@
6
6
  import click
7
7
  import logging
8
8
  from iatoolkit import IAToolkit
9
- from services.profile_service import ProfileService
9
+ from iatoolkit.services import ProfileService
10
10
 
11
11
  def register_core_commands(app):
12
12
  """Registra los comandos CLI del núcleo de IAToolkit."""
@@ -33,7 +33,9 @@ def register_core_commands(app):
33
33
  @app.cli.command("encrypt-key")
34
34
  @click.argument("key")
35
35
  def encrypt_llm_api_key(key: str):
36
- from common.util import Utility
36
+ from iatoolkit.common.util import Utility
37
+
38
+
37
39
 
38
40
  util = IAToolkit.get_instance().get_injector().get(Utility)
39
41
  try:
@@ -46,7 +48,7 @@ def register_core_commands(app):
46
48
  @app.cli.command("exec-tasks")
47
49
  @click.argument("company_short_name")
48
50
  def exec_pending_tasks(company_short_name: str):
49
- from services.tasks_service import TaskService
51
+ from iatoolkit.services.tasks_service import TaskService
50
52
  task_service = IAToolkit.get_instance().get_injector().get(TaskService)
51
53
 
52
54
  try:
@@ -4,11 +4,11 @@
4
4
  # IAToolkit is open source software.
5
5
 
6
6
  from flask import redirect, url_for
7
- from common.session_manager import SessionManager
7
+ from iatoolkit.common.session_manager import SessionManager
8
8
  from datetime import datetime, timezone
9
9
  from injector import inject
10
- from repositories.profile_repo import ProfileRepo
11
- from services.jwt_service import JWTService
10
+ from iatoolkit.repositories.profile_repo import ProfileRepo
11
+ from iatoolkit.services.jwt_service import JWTService
12
12
  import logging
13
13
  from flask import request
14
14
  from typing import Optional
@@ -4,9 +4,9 @@
4
4
  # IAToolkit is open source software.
5
5
 
6
6
  from flask import render_template, redirect, flash, url_for,send_from_directory, current_app
7
- from common.session_manager import SessionManager
7
+ from iatoolkit.common.session_manager import SessionManager
8
8
  from flask import jsonify
9
- from views.history_view import HistoryView
9
+ from iatoolkit.views.history_view import HistoryView
10
10
  import os
11
11
 
12
12
 
@@ -22,23 +22,23 @@ def logout(company_short_name: str):
22
22
  # this function register all the views
23
23
  def register_views(injector, app):
24
24
 
25
- from views.llmquery_view import LLMQueryView
26
- from views.tasks_view import TaskView
27
- from views.tasks_review_view import TaskReviewView
28
- from views.home_view import HomeView
29
- from views.chat_view import ChatView
30
- from views.login_view import LoginView
31
- from views.external_chat_login_view import ExternalChatLoginView
32
- from views.signup_view import SignupView
33
- from views.verify_user_view import VerifyAccountView
34
- from views.forgot_password_view import ForgotPasswordView
35
- from views.change_password_view import ChangePasswordView
36
- from views.file_store_view import FileStoreView
37
- from views.user_feedback_view import UserFeedbackView
38
- from views.prompt_view import PromptView
39
- from views.chat_token_request_view import ChatTokenRequestView
40
- from views.external_login_view import ExternalLoginView
41
- from views.download_file_view import DownloadFileView
25
+ from iatoolkit.views.llmquery_view import LLMQueryView
26
+ from iatoolkit.views.tasks_view import TaskView
27
+ from iatoolkit.views.tasks_review_view import TaskReviewView
28
+ from iatoolkit.views.home_view import HomeView
29
+ from iatoolkit.views.chat_view import ChatView
30
+ from iatoolkit.views.login_view import LoginView
31
+ from iatoolkit.views.external_chat_login_view import ExternalChatLoginView
32
+ from iatoolkit.views.signup_view import SignupView
33
+ from iatoolkit.views.verify_user_view import VerifyAccountView
34
+ from iatoolkit.views.forgot_password_view import ForgotPasswordView
35
+ from iatoolkit.views.change_password_view import ChangePasswordView
36
+ from iatoolkit.views.file_store_view import FileStoreView
37
+ from iatoolkit.views.user_feedback_view import UserFeedbackView
38
+ from iatoolkit.views.prompt_view import PromptView
39
+ from iatoolkit.views.chat_token_request_view import ChatTokenRequestView
40
+ from iatoolkit.views.external_login_view import ExternalLoginView
41
+ from iatoolkit.views.download_file_view import DownloadFileView
42
42
 
43
43
  app.add_url_rule('/', view_func=HomeView.as_view('home'))
44
44
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  import logging
7
7
  from typing import List
8
- from common.exceptions import IAToolkitException
8
+ from iatoolkit.common.exceptions import IAToolkitException
9
9
  from injector import inject
10
10
  import os
11
11
  from jinja2 import Environment, FileSystemLoader
12
- from common.session_manager import SessionManager
12
+ from iatoolkit.common.session_manager import SessionManager
13
13
  from datetime import datetime, date
14
14
  from decimal import Decimal
15
15
  import yaml
iatoolkit/iatoolkit.py CHANGED
@@ -8,13 +8,14 @@ from flask_session import Session
8
8
  from flask_injector import FlaskInjector
9
9
  from flask_bcrypt import Bcrypt
10
10
  from flask_cors import CORS
11
- from common.exceptions import IAToolkitException
11
+ from iatoolkit.common.exceptions import IAToolkitException
12
12
  from urllib.parse import urlparse
13
13
  import redis
14
14
  import logging
15
15
  import os
16
16
  from typing import Optional, Dict, Any
17
- from repositories.database_manager import DatabaseManager
17
+ from iatoolkit.repositories.database_manager import DatabaseManager
18
+
18
19
  from injector import Binder, singleton, Injector
19
20
  from importlib.metadata import version as _pkg_version, PackageNotFoundError
20
21
 
@@ -122,7 +123,7 @@ class IAToolkit:
122
123
 
123
124
  def _register_routes(self):
124
125
  """Registers routes by passing the configured injector."""
125
- from common.routes import register_views
126
+ from iatoolkit.common.routes import register_views
126
127
 
127
128
  # Pass the injector to the view registration function
128
129
  register_views(self._injector, self.app)
@@ -249,11 +250,12 @@ class IAToolkit:
249
250
  )
250
251
 
251
252
  def _bind_repositories(self, binder: Binder):
252
- from repositories.document_repo import DocumentRepo
253
- from repositories.profile_repo import ProfileRepo
254
- from repositories.llm_query_repo import LLMQueryRepo
255
- from repositories.vs_repo import VSRepo
256
- from repositories.tasks_repo import TaskRepo
253
+ from iatoolkit.repositories.document_repo import DocumentRepo
254
+ from iatoolkit.repositories.profile_repo import ProfileRepo
255
+ from iatoolkit.repositories.llm_query_repo import LLMQueryRepo
256
+
257
+ from iatoolkit.repositories.vs_repo import VSRepo
258
+ from iatoolkit.repositories.tasks_repo import TaskRepo
257
259
 
258
260
  binder.bind(DocumentRepo, to=DocumentRepo)
259
261
  binder.bind(ProfileRepo, to=ProfileRepo)
@@ -262,17 +264,17 @@ class IAToolkit:
262
264
  binder.bind(TaskRepo, to=TaskRepo)
263
265
 
264
266
  def _bind_services(self, binder: Binder):
265
- from services.query_service import QueryService
266
- from services.tasks_service import TaskService
267
- from services.benchmark_service import BenchmarkService
268
- from services.document_service import DocumentService
269
- from services.prompt_manager_service import PromptService
270
- from services.excel_service import ExcelService
271
- from services.mail_service import MailService
272
- from services.load_documents_service import LoadDocumentsService
273
- from services.profile_service import ProfileService
274
- from services.jwt_service import JWTService
275
- from services.dispatcher_service import Dispatcher
267
+ from iatoolkit.services import QueryService
268
+ from iatoolkit.services.tasks_service import TaskService
269
+ from iatoolkit.services import BenchmarkService
270
+ from iatoolkit.services.document_service import DocumentService
271
+ from iatoolkit.services.prompt_manager_service import PromptService
272
+ from iatoolkit.services.excel_service import ExcelService
273
+ from iatoolkit.services import MailService
274
+ from iatoolkit.services.load_documents_service import LoadDocumentsService
275
+ from iatoolkit.services import ProfileService
276
+ from iatoolkit.services.jwt_service import JWTService
277
+ from iatoolkit.services.dispatcher_service import Dispatcher
276
278
 
277
279
  binder.bind(QueryService, to=QueryService)
278
280
  binder.bind(TaskService, to=TaskService)
@@ -287,12 +289,14 @@ class IAToolkit:
287
289
  binder.bind(Dispatcher, to=Dispatcher)
288
290
 
289
291
  def _bind_infrastructure(self, binder: Binder):
290
- from infra.llm_client import llmClient
291
- from infra.llm_proxy import LLMProxy
292
- from infra.google_chat_app import GoogleChatApp
293
- from infra.mail_app import MailApp
294
- from common.auth import IAuthentication
295
- from common.util import Utility
292
+ from iatoolkit.infra.llm_client import llmClient
293
+ from iatoolkit.infra import LLMProxy
294
+ from iatoolkit.infra import GoogleChatApp
295
+ from iatoolkit.infra.mail_app import MailApp
296
+ from iatoolkit.common import IAuthentication
297
+ from iatoolkit.common.util import Utility
298
+
299
+
296
300
 
297
301
  binder.bind(LLMProxy, to=LLMProxy, scope=singleton)
298
302
  binder.bind(llmClient, to=llmClient, scope=singleton)
@@ -303,10 +307,10 @@ class IAToolkit:
303
307
 
304
308
  def _bind_views(self, binder: Binder):
305
309
  """Vincula las vistas después de que el injector ha sido creado"""
306
- from views.llmquery_view import LLMQueryView
307
- from views.home_view import HomeView
308
- from views.chat_view import ChatView
309
- from views.change_password_view import ChangePasswordView
310
+ from iatoolkit.views import LLMQueryView
311
+ from iatoolkit.views import HomeView
312
+ from iatoolkit.views import ChatView
313
+ from iatoolkit.views import ChangePasswordView
310
314
 
311
315
  binder.bind(HomeView, to=HomeView)
312
316
  binder.bind(ChatView, to=ChatView)
@@ -320,7 +324,7 @@ class IAToolkit:
320
324
 
321
325
  def _init_dispatcher_and_company_instances(self):
322
326
  from iatoolkit.company_registry import get_company_registry
323
- from services.dispatcher_service import Dispatcher
327
+ from iatoolkit.services.dispatcher_service import Dispatcher
324
328
 
325
329
  # instantiate all the registered companies
326
330
  get_company_registry().instantiate_companies(self._injector)
@@ -351,7 +355,7 @@ class IAToolkit:
351
355
  # Configura context processors para templates
352
356
  @self.app.context_processor
353
357
  def inject_globals():
354
- from common.session_manager import SessionManager
358
+ from iatoolkit.common import SessionManager
355
359
  return {
356
360
  'url_for': url_for,
357
361
  'iatoolkit_version': self.version,
@@ -386,7 +390,7 @@ class IAToolkit:
386
390
  return self._injector
387
391
 
388
392
  def get_dispatcher(self):
389
- from services.dispatcher_service import Dispatcher
393
+ from iatoolkit.services.dispatcher_service import Dispatcher
390
394
  if not self._injector:
391
395
  raise IAToolkitException(
392
396
  IAToolkitException.ErrorType.CONFIG_ERROR,
@@ -406,14 +410,9 @@ class IAToolkit:
406
410
  def current_iatoolkit() -> IAToolkit:
407
411
  return IAToolkit.get_instance()
408
412
 
409
- # 🚀 Función de conveniencia para inicialización rápida
413
+ # Función de conveniencia para inicialización rápida
410
414
  def create_app(config: Optional[Dict[str, Any]] = None) -> Flask:
411
415
  toolkit = IAToolkit(config)
412
416
  toolkit.create_iatoolkit()
413
417
 
414
418
  return toolkit.app
415
-
416
- if __name__ == "__main__":
417
- app = create_app()
418
- if app:
419
- app.run(debug=True)
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from common.exceptions import IAToolkitException
6
+ from iatoolkit.common.exceptions import IAToolkitException
7
7
  from injector import inject
8
8
  # call_service.py
9
9
  import requests
@@ -3,11 +3,11 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from infra.connectors.file_connector import FileConnector
7
- from infra.connectors.local_file_connector import LocalFileConnector
8
- from infra.connectors.s3_connector import S3Connector
9
- from infra.connectors.google_drive_connector import GoogleDriveConnector
10
- from infra.connectors.google_cloud_storage_connector import GoogleCloudStorageConnector
6
+ from iatoolkit.infra.connectors.file_connector import FileConnector
7
+ from iatoolkit.infra.connectors.local_file_connector import LocalFileConnector
8
+ from iatoolkit.infra.connectors.s3_connector import S3Connector
9
+ from iatoolkit.infra.connectors.google_drive_connector import GoogleDriveConnector
10
+ from iatoolkit.infra.connectors.google_cloud_storage_connector import GoogleCloudStorageConnector
11
11
  from typing import Dict
12
12
  import os
13
13
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from infra.connectors.file_connector import FileConnector
6
+ from iatoolkit.infra.connectors.file_connector import FileConnector
7
7
  from google.cloud import storage
8
8
  from typing import List
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from infra.connectors.file_connector import FileConnector
6
+ from iatoolkit.infra.connectors.file_connector import FileConnector
7
7
  from googleapiclient.discovery import build
8
8
  from googleapiclient.http import MediaIoBaseDownload
9
9
  from google.oauth2.service_account import Credentials
@@ -4,9 +4,9 @@
4
4
  # IAToolkit is open source software.
5
5
 
6
6
  import os
7
- from infra.connectors.file_connector import FileConnector
7
+ from iatoolkit.infra.connectors.file_connector import FileConnector
8
8
  from typing import List
9
- from common.exceptions import IAToolkitException
9
+ from iatoolkit.common.exceptions import IAToolkitException
10
10
 
11
11
 
12
12
  class LocalFileConnector(FileConnector):
@@ -4,7 +4,7 @@
4
4
  # IAToolkit is open source software.
5
5
 
6
6
  import boto3
7
- from infra.connectors.file_connector import FileConnector
7
+ from iatoolkit.infra.connectors.file_connector import FileConnector
8
8
  from typing import List
9
9
 
10
10
 
@@ -3,11 +3,11 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from infra.llm_response import LLMResponse, ToolCall, Usage
6
+ from iatoolkit.infra.llm_response import LLMResponse, ToolCall, Usage
7
7
  from typing import Dict, List, Optional
8
8
  from google.generativeai.types import HarmCategory, HarmBlockThreshold
9
9
  from google.protobuf.json_format import MessageToDict
10
- from common.exceptions import IAToolkitException
10
+ from iatoolkit.common.exceptions import IAToolkitException
11
11
  import logging
12
12
  import json
13
13
  import uuid
@@ -4,7 +4,7 @@
4
4
  # IAToolkit is open source software.
5
5
 
6
6
  from injector import inject
7
- from infra.call_service import CallServiceClient
7
+ from iatoolkit.infra.call_service import CallServiceClient
8
8
  import logging
9
9
  import os
10
10
  from typing import Dict, Any
@@ -3,23 +3,23 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from infra.llm_proxy import LLMProxy
7
- from repositories.models import Company, LLMQuery
8
- from repositories.llm_query_repo import LLMQueryRepo
6
+ from iatoolkit.infra.llm_proxy import LLMProxy
7
+ from iatoolkit.repositories.models import Company, LLMQuery
8
+ from iatoolkit.repositories.llm_query_repo import LLMQueryRepo
9
9
  from sqlalchemy.exc import SQLAlchemyError, OperationalError
10
- from common.util import Utility
10
+ from iatoolkit.common.util import Utility
11
11
  from injector import inject
12
12
  import time
13
13
  import markdown2
14
14
  import os
15
15
  import logging
16
16
  import json
17
- from common.exceptions import IAToolkitException
17
+ from iatoolkit.common.exceptions import IAToolkitException
18
18
  import threading
19
19
  import re
20
20
  import tiktoken
21
21
  from typing import Dict, Optional, List
22
- from services.dispatcher_service import Dispatcher
22
+ from iatoolkit.services.dispatcher_service import Dispatcher
23
23
 
24
24
 
25
25
  class llmClient:
@@ -55,7 +55,7 @@ class llmClient:
55
55
  if self._dispatcher is None:
56
56
  # Import what you need, right when you need it.
57
57
  from iatoolkit import current_iatoolkit
58
- from services.dispatcher_service import Dispatcher
58
+ from iatoolkit.services.dispatcher_service import Dispatcher
59
59
  # Use the global context proxy to get the injector, then get the service
60
60
  self._dispatcher = current_iatoolkit().get_injector().get(Dispatcher)
61
61
  return self._dispatcher
@@ -5,12 +5,12 @@
5
5
 
6
6
  from typing import Dict, List, Any
7
7
  from abc import ABC, abstractmethod
8
- from common.util import Utility
9
- from infra.llm_response import LLMResponse
10
- from infra.openai_adapter import OpenAIAdapter
11
- from infra.gemini_adapter import GeminiAdapter
12
- from common.exceptions import IAToolkitException
13
- from repositories.models import Company
8
+ from iatoolkit.common.util import Utility
9
+ from iatoolkit.infra.llm_response import LLMResponse
10
+ from iatoolkit.infra.openai_adapter import OpenAIAdapter
11
+ from iatoolkit.infra.gemini_adapter import GeminiAdapter
12
+ from iatoolkit.common.exceptions import IAToolkitException
13
+ from iatoolkit.repositories.models import Company
14
14
  from openai import OpenAI
15
15
  import google.generativeai as genai
16
16
  import os
@@ -5,7 +5,7 @@
5
5
 
6
6
  import sib_api_v3_sdk
7
7
  from sib_api_v3_sdk.rest import ApiException
8
- from common.exceptions import IAToolkitException
8
+ from iatoolkit.common.exceptions import IAToolkitException
9
9
  import os
10
10
  import base64
11
11
  import logging
@@ -5,8 +5,8 @@
5
5
 
6
6
  import logging
7
7
  from typing import Dict, List, Optional
8
- from infra.llm_response import LLMResponse, ToolCall, Usage
9
- from common.exceptions import IAToolkitException
8
+ from iatoolkit.infra.llm_response import LLMResponse, ToolCall, Usage
9
+ from iatoolkit.common.exceptions import IAToolkitException
10
10
 
11
11
 
12
12
  class OpenAIAdapter:
@@ -7,7 +7,7 @@
7
7
  from sqlalchemy import create_engine, event, inspect
8
8
  from sqlalchemy.orm import sessionmaker, scoped_session
9
9
  from sqlalchemy.engine.url import make_url
10
- from repositories.models import Base
10
+ from iatoolkit.repositories.models import Base
11
11
  from injector import inject
12
12
  from pgvector.psycopg2 import register_vector
13
13
 
@@ -3,10 +3,10 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from repositories.models import Document
6
+ from iatoolkit.repositories.models import Document
7
7
  from injector import inject
8
- from repositories.database_manager import DatabaseManager
9
- from common.exceptions import IAToolkitException
8
+ from iatoolkit.repositories.database_manager import DatabaseManager
9
+ from iatoolkit.common.exceptions import IAToolkitException
10
10
 
11
11
 
12
12
  class DocumentRepo:
@@ -3,9 +3,9 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from repositories.models import LLMQuery, Function, Company, Prompt, PromptCategory
6
+ from iatoolkit.repositories.models import LLMQuery, Function, Company, Prompt, PromptCategory
7
7
  from injector import inject
8
- from repositories.database_manager import DatabaseManager
8
+ from iatoolkit.repositories.database_manager import DatabaseManager
9
9
  from sqlalchemy import or_
10
10
 
11
11
  class LLMQueryRepo:
@@ -3,9 +3,9 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from repositories.models import User, Company, ApiKey, UserFeedback
6
+ from iatoolkit.repositories.models import User, Company, ApiKey, UserFeedback
7
7
  from injector import inject
8
- from repositories.database_manager import DatabaseManager
8
+ from iatoolkit.repositories.database_manager import DatabaseManager
9
9
  from sqlalchemy.orm import joinedload # Para cargar la relación eficientemente
10
10
 
11
11
 
@@ -5,8 +5,8 @@
5
5
 
6
6
  from injector import inject
7
7
  from datetime import datetime
8
- from repositories.models import Task, TaskStatus, TaskType
9
- from repositories.database_manager import DatabaseManager
8
+ from iatoolkit.repositories.models import Task, TaskStatus, TaskType
9
+ from iatoolkit.repositories.database_manager import DatabaseManager
10
10
  from sqlalchemy import or_
11
11
 
12
12
 
@@ -6,9 +6,9 @@
6
6
  from sqlalchemy import text
7
7
  from huggingface_hub import InferenceClient
8
8
  from injector import inject
9
- from common.exceptions import IAToolkitException
10
- from repositories.database_manager import DatabaseManager
11
- from repositories.models import Document, VSDoc
9
+ from iatoolkit.common.exceptions import IAToolkitException
10
+ from iatoolkit.repositories.database_manager import DatabaseManager
11
+ from iatoolkit.repositories.models import Document, VSDoc
12
12
  import os
13
13
  import logging
14
14
 
@@ -7,9 +7,9 @@ import pandas as pd
7
7
  import time
8
8
  import logging
9
9
  from injector import inject
10
- from services.query_service import QueryService
11
- from repositories.profile_repo import ProfileRepo
12
- from common.exceptions import IAToolkitException
10
+ from iatoolkit.services.query_service import QueryService
11
+ from iatoolkit.repositories.profile_repo import ProfileRepo
12
+ from iatoolkit.common.exceptions import IAToolkitException
13
13
 
14
14
 
15
15
  class BenchmarkService:
@@ -3,14 +3,15 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from common.exceptions import IAToolkitException
7
- from services.prompt_manager_service import PromptService
8
- from repositories.llm_query_repo import LLMQueryRepo
9
- from repositories.models import Company, Function
10
- from services.excel_service import ExcelService
11
- from services.mail_service import MailService
12
- from common.session_manager import SessionManager
13
- from common.util import Utility
6
+ from iatoolkit.common.exceptions import IAToolkitException
7
+ from iatoolkit.services.prompt_manager_service import PromptService
8
+ from iatoolkit.repositories.llm_query_repo import LLMQueryRepo
9
+
10
+ from iatoolkit.repositories.models import Company, Function
11
+ from iatoolkit.services.excel_service import ExcelService
12
+ from iatoolkit.services.mail_service import MailService
13
+ from iatoolkit.common.session_manager import SessionManager
14
+ from iatoolkit.common.util import Utility
14
15
  from injector import inject
15
16
  import logging
16
17
  import os
@@ -10,7 +10,7 @@ import io
10
10
  import os
11
11
  import pytesseract
12
12
  from injector import inject
13
- from common.exceptions import IAToolkitException
13
+ from iatoolkit.common.exceptions import IAToolkitException
14
14
 
15
15
  class DocumentService:
16
16
  @inject
@@ -3,11 +3,11 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- from common.util import Utility
6
+ from iatoolkit.common.util import Utility
7
7
  import pandas as pd
8
8
  from uuid import uuid4
9
9
  from pathlib import Path
10
- from common.exceptions import IAToolkitException
10
+ from iatoolkit.common.exceptions import IAToolkitException
11
11
  from injector import inject
12
12
  import os
13
13
  import logging