iatoolkit 0.76.0__tar.gz → 0.95.4__tar.gz

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 (152) hide show
  1. iatoolkit-0.95.4/LICENSE_COMMUNITY.md +15 -0
  2. iatoolkit-0.95.4/PKG-INFO +269 -0
  3. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/pyproject.toml +2 -4
  4. iatoolkit-0.95.4/readme.md +184 -0
  5. iatoolkit-0.76.0/src/iatoolkit.egg-info/requires.txt → iatoolkit-0.95.4/requirements.txt +3 -1
  6. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/__init__.py +15 -5
  7. iatoolkit-0.95.4/src/iatoolkit/base_company.py +37 -0
  8. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/cli_commands.py +2 -13
  9. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/common/exceptions.py +1 -0
  10. iatoolkit-0.95.4/src/iatoolkit/common/model_registry.py +108 -0
  11. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/common/routes.py +10 -32
  12. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/common/util.py +6 -12
  13. iatoolkit-0.95.4/src/iatoolkit/company_registry.py +111 -0
  14. iatoolkit-0.76.0/src/iatoolkit/iatoolkit.py → iatoolkit-0.95.4/src/iatoolkit/core.py +50 -49
  15. iatoolkit-0.95.4/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +279 -0
  16. {iatoolkit-0.76.0/src/iatoolkit/infra → iatoolkit-0.95.4/src/iatoolkit/infra/llm_providers}/gemini_adapter.py +11 -17
  17. {iatoolkit-0.76.0/src/iatoolkit/infra → iatoolkit-0.95.4/src/iatoolkit/infra/llm_providers}/openai_adapter.py +0 -4
  18. iatoolkit-0.95.4/src/iatoolkit/infra/llm_proxy.py +268 -0
  19. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/locales/en.yaml +10 -2
  20. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/locales/es.yaml +10 -2
  21. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/repositories/database_manager.py +63 -15
  22. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/repositories/llm_query_repo.py +34 -22
  23. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/repositories/models.py +27 -79
  24. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/company_context_service.py +53 -19
  25. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/configuration_service.py +113 -53
  26. iatoolkit-0.95.4/src/iatoolkit/services/dispatcher_service.py +122 -0
  27. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/document_service.py +10 -1
  28. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/embedding_service.py +8 -4
  29. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/excel_service.py +49 -1
  30. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/history_manager_service.py +41 -20
  31. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/language_service.py +7 -1
  32. iatoolkit-0.95.4/src/iatoolkit/services/license_service.py +82 -0
  33. iatoolkit-0.76.0/src/iatoolkit/infra/llm_client.py → iatoolkit-0.95.4/src/iatoolkit/services/llm_client_service.py +31 -22
  34. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/profile_service.py +7 -21
  35. iatoolkit-0.76.0/src/iatoolkit/services/prompt_manager_service.py → iatoolkit-0.95.4/src/iatoolkit/services/prompt_service.py +110 -1
  36. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/query_service.py +59 -40
  37. iatoolkit-0.95.4/src/iatoolkit/services/sql_service.py +159 -0
  38. iatoolkit-0.95.4/src/iatoolkit/services/tool_service.py +235 -0
  39. iatoolkit-0.95.4/src/iatoolkit/services/user_session_context_service.py +213 -0
  40. iatoolkit-0.95.4/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
  41. iatoolkit-0.95.4/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
  42. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_feedback_button.js +1 -1
  43. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_help_content.js +4 -4
  44. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_main.js +3 -2
  45. iatoolkit-0.95.4/src/iatoolkit/static/js/chat_model_selector.js +227 -0
  46. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_onboarding_button.js +1 -1
  47. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_reload_button.js +4 -1
  48. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/styles/chat_iatoolkit.css +52 -0
  49. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/styles/chat_public.css +28 -0
  50. iatoolkit-0.95.4/src/iatoolkit/static/styles/documents.css +598 -0
  51. iatoolkit-0.95.4/src/iatoolkit/static/styles/landing_page.css +398 -0
  52. iatoolkit-0.95.4/src/iatoolkit/system_prompts/__init__.py +0 -0
  53. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/system_prompts/query_main.prompt +27 -2
  54. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/system_prompts/sql_rules.prompt +47 -12
  55. iatoolkit-0.95.4/src/iatoolkit/templates/_company_header.html +45 -0
  56. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/_login_widget.html +3 -3
  57. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/chat.html +43 -4
  58. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/forgot_password.html +3 -2
  59. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/onboarding_shell.html +1 -2
  60. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/signup.html +3 -0
  61. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/base_login_view.py +8 -3
  62. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/forgot_password_view.py +5 -2
  63. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/home_view.py +4 -2
  64. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/init_context_api_view.py +1 -1
  65. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/login_view.py +25 -8
  66. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/logout_api_view.py +10 -2
  67. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/prompt_api_view.py +1 -1
  68. iatoolkit-0.95.4/src/iatoolkit/views/root_redirect_view.py +22 -0
  69. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/signup_view.py +11 -3
  70. iatoolkit-0.95.4/src/iatoolkit/views/static_page_view.py +27 -0
  71. iatoolkit-0.95.4/src/iatoolkit.egg-info/PKG-INFO +269 -0
  72. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit.egg-info/SOURCES.txt +17 -15
  73. iatoolkit-0.76.0/requirements.txt → iatoolkit-0.95.4/src/iatoolkit.egg-info/requires.txt +4 -2
  74. iatoolkit-0.76.0/PKG-INFO +0 -196
  75. iatoolkit-0.76.0/readme.md +0 -114
  76. iatoolkit-0.76.0/src/iatoolkit/base_company.py +0 -91
  77. iatoolkit-0.76.0/src/iatoolkit/company_registry.py +0 -75
  78. iatoolkit-0.76.0/src/iatoolkit/infra/llm_proxy.py +0 -167
  79. iatoolkit-0.76.0/src/iatoolkit/repositories/tasks_repo.py +0 -52
  80. iatoolkit-0.76.0/src/iatoolkit/services/dispatcher_service.py +0 -308
  81. iatoolkit-0.76.0/src/iatoolkit/services/sql_service.py +0 -92
  82. iatoolkit-0.76.0/src/iatoolkit/services/tasks_service.py +0 -188
  83. iatoolkit-0.76.0/src/iatoolkit/services/user_session_context_service.py +0 -161
  84. iatoolkit-0.76.0/src/iatoolkit/static/styles/landing_page.css +0 -182
  85. iatoolkit-0.76.0/src/iatoolkit/templates/_company_header.html +0 -20
  86. iatoolkit-0.76.0/src/iatoolkit/templates/about.html +0 -13
  87. iatoolkit-0.76.0/src/iatoolkit/templates/index.html +0 -145
  88. iatoolkit-0.76.0/src/iatoolkit/templates/login_simulation.html +0 -45
  89. iatoolkit-0.76.0/src/iatoolkit/views/external_login_view.py +0 -73
  90. iatoolkit-0.76.0/src/iatoolkit/views/index_view.py +0 -14
  91. iatoolkit-0.76.0/src/iatoolkit/views/login_simulation_view.py +0 -96
  92. iatoolkit-0.76.0/src/iatoolkit/views/tasks_api_view.py +0 -72
  93. iatoolkit-0.76.0/src/iatoolkit/views/tasks_review_api_view.py +0 -55
  94. iatoolkit-0.76.0/src/iatoolkit.egg-info/PKG-INFO +0 -196
  95. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/LICENSE +0 -0
  96. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/setup.cfg +0 -0
  97. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/common/__init__.py +0 -0
  98. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/common/session_manager.py +0 -0
  99. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/__init__.py +0 -0
  100. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
  101. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/call_service.py +0 -0
  102. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  103. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  104. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  105. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  106. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  107. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  108. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  109. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/google_chat_app.py +0 -0
  110. {iatoolkit-0.76.0/src/iatoolkit/system_prompts → iatoolkit-0.95.4/src/iatoolkit/infra/llm_providers}/__init__.py +0 -0
  111. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/llm_response.py +0 -0
  112. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  113. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/repositories/__init__.py +0 -0
  114. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/repositories/document_repo.py +0 -0
  115. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/repositories/profile_repo.py +0 -0
  116. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/repositories/vs_repo.py +0 -0
  117. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/__init__.py +0 -0
  118. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/auth_service.py +0 -0
  119. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/benchmark_service.py +0 -0
  120. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/branding_service.py +0 -0
  121. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/file_processor_service.py +0 -0
  122. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/i18n_service.py +0 -0
  123. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/jwt_service.py +0 -0
  124. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/load_documents_service.py +0 -0
  125. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/mail_service.py +0 -0
  126. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/search_service.py +0 -0
  127. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/services/user_feedback_service.py +0 -0
  128. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/images/fernando.jpeg +0 -0
  129. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  130. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_history_button.js +0 -0
  131. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
  132. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
  133. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  134. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/styles/llm_output.css +0 -0
  135. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/static/styles/onboarding.css +0 -0
  136. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/system_prompts/format_styles.prompt +0 -0
  137. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/base.html +0 -0
  138. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/change_password.html +0 -0
  139. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/chat_modals.html +0 -0
  140. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/templates/error.html +0 -0
  141. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/__init__.py +0 -0
  142. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/change_password_view.py +0 -0
  143. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/embedding_api_view.py +0 -0
  144. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/help_content_api_view.py +0 -0
  145. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/history_api_view.py +0 -0
  146. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/llmquery_api_view.py +0 -0
  147. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/load_document_api_view.py +0 -0
  148. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/profile_api_view.py +0 -0
  149. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
  150. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit/views/verify_user_view.py +0 -0
  151. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  152. {iatoolkit-0.76.0 → iatoolkit-0.95.4}/src/iatoolkit.egg-info/top_level.txt +0 -0
@@ -0,0 +1,15 @@
1
+ # IAToolkit Community Edition License
2
+
3
+ The IAToolkit Community Edition is licensed under the MIT License.
4
+
5
+ This edition includes the full open-source IAToolkit Core, with the following usage scope:
6
+
7
+ - Support for **one (1) Company**
8
+ - Unlimited Tools within that Company
9
+ - SQL integration
10
+ - Basic RAG (standard retrieval & embeddings)
11
+ - All Components of the open-source Intelligence Layer and Interfaces
12
+
13
+ No additional technical limits apply beyond the single-Company constraint.
14
+
15
+ This edition is designed for learning, prototyping, and single-business deployments.
@@ -0,0 +1,269 @@
1
+ Metadata-Version: 2.4
2
+ Name: iatoolkit
3
+ Version: 0.95.4
4
+ Summary: IAToolkit
5
+ Author: Fernando Libedinsky
6
+ License-Expression: MIT
7
+ Requires-Python: >=3.12
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ License-File: LICENSE_COMMUNITY.md
11
+ Requires-Dist: bcrypt==4.2.1
12
+ Requires-Dist: boto3==1.36.22
13
+ Requires-Dist: botocore==1.36.22
14
+ Requires-Dist: build==1.2.2.post1
15
+ Requires-Dist: click==8.1.8
16
+ Requires-Dist: cryptography==44.0.3
17
+ Requires-Dist: deepseek==1.0.0
18
+ Requires-Dist: Flask==3.1.0
19
+ Requires-Dist: Flask-Bcrypt==1.0.1
20
+ Requires-Dist: flask-cors==6.0.0
21
+ Requires-Dist: Flask-Injector==0.15.0
22
+ Requires-Dist: Flask-Session==0.8.0
23
+ Requires-Dist: flatbuffers==24.3.25
24
+ Requires-Dist: google-ai-generativelanguage==0.6.15
25
+ Requires-Dist: google-api-core==2.24.1
26
+ Requires-Dist: google-api-python-client==2.161.0
27
+ Requires-Dist: google-auth==2.37.0
28
+ Requires-Dist: google-auth-httplib2==0.2.0
29
+ Requires-Dist: google-auth-oauthlib==1.2.1
30
+ Requires-Dist: google-cloud-core==2.4.1
31
+ Requires-Dist: google-cloud-storage==3.0.0
32
+ Requires-Dist: google-crc32c==1.6.0
33
+ Requires-Dist: google-generativeai==0.8.5
34
+ Requires-Dist: google-resumable-media==2.7.2
35
+ Requires-Dist: googleapis-common-protos==1.66.0
36
+ Requires-Dist: gunicorn==23.0.0
37
+ Requires-Dist: h11==0.14.0
38
+ Requires-Dist: httpcore==1.0.7
39
+ Requires-Dist: httplib2==0.22.0
40
+ Requires-Dist: httptools==0.6.4
41
+ Requires-Dist: httpx==0.28.0
42
+ Requires-Dist: httpx-sse==0.4.0
43
+ Requires-Dist: huggingface-hub==0.31.4
44
+ Requires-Dist: humanfriendly==10.0
45
+ Requires-Dist: idna==3.10
46
+ Requires-Dist: injector==0.22.0
47
+ Requires-Dist: Jinja2==3.1.5
48
+ Requires-Dist: langchain==0.3.19
49
+ Requires-Dist: langchain-core==0.3.35
50
+ Requires-Dist: langchain-text-splitters==0.3.6
51
+ Requires-Dist: markdown2==2.5.3
52
+ Requires-Dist: openai==2.8.1
53
+ Requires-Dist: openpyxl==3.1.5
54
+ Requires-Dist: pandas==2.3.1
55
+ Requires-Dist: pgvector==0.3.6
56
+ Requires-Dist: pillow==11.0.0
57
+ Requires-Dist: psutil==7.0.0
58
+ Requires-Dist: psycopg2-binary==2.9.10
59
+ Requires-Dist: PyJWT==2.10.1
60
+ Requires-Dist: PyMuPDF==1.25.0
61
+ Requires-Dist: python-dotenv==1.0.1
62
+ Requires-Dist: pytest==8.3.4
63
+ Requires-Dist: pytest-cov==5.0.0
64
+ Requires-Dist: pytest-mock==3.14.0
65
+ Requires-Dist: python-dateutil==2.9.0.post0
66
+ Requires-Dist: python-docx==1.1.2
67
+ Requires-Dist: pytesseract==0.3.13
68
+ Requires-Dist: pytz==2025.2
69
+ Requires-Dist: PyYAML==6.0.2
70
+ Requires-Dist: redis==5.2.1
71
+ Requires-Dist: regex==2024.11.6
72
+ Requires-Dist: requests==2.32.3
73
+ Requires-Dist: requests-oauthlib==2.0.0
74
+ Requires-Dist: requests-toolbelt==1.0.0
75
+ Requires-Dist: s3transfer==0.11.2
76
+ Requires-Dist: sib-api-v3-sdk==7.6.0
77
+ Requires-Dist: SQLAlchemy==2.0.36
78
+ Requires-Dist: tiktoken==0.8.0
79
+ Requires-Dist: tokenizers==0.21.0
80
+ Requires-Dist: websocket-client==1.8.0
81
+ Requires-Dist: websockets==14.1
82
+ Requires-Dist: Werkzeug==3.1.3
83
+ Requires-Dist: pyjwt[crypto]>=2.8.0
84
+ Dynamic: license-file
85
+
86
+ # 🧠 IAToolkit — Open-Source Framework for Real-World AI Assistants
87
+
88
+ Build private, production-grade AI assistants that run entirely inside your environment and speak the language of your business.
89
+
90
+ IAToolkit is not a demo wrapper or a prompt playground — it is a **full architecture** for implementing intelligent systems that combine LLMs, SQL data, internal documents, tools, workflows, and multi-tenant business logic.
91
+
92
+ ---
93
+
94
+ ## 🚀 Why IAToolkit?
95
+
96
+ Modern AI development is fragmented: LangChain handles chains, LlamaIndex handles documents,
97
+ your backend handles SQL, your frontend handles chats, and your devs glue everything together.
98
+
99
+ **IAToolkit brings all of this into one unified, production-ready framework.**
100
+
101
+ It focuses on:
102
+
103
+ - **real-world data** (SQL + documents)
104
+ - **real workflows** (LLM tools + python services)
105
+ - **real multi-tenant architecture** (1 company → many companies)
106
+ - **real constraints** (security, reproducibility, governance)
107
+ - **real deployment** (your servers, your infrastructure)
108
+
109
+ IAToolkit lets you build the assistant that *your* organization needs — not a generic chatbot.
110
+
111
+ ---
112
+
113
+ ## 🧩 Architecture in a Nutshell
114
+
115
+ IAToolkit is a structured, layered framework:
116
+
117
+ Interfaces (Web & API)
118
+
119
+ Intelligence Layer (prompts, tools, SQL orchestration, RAG)
120
+
121
+ Execution Layer (services, workflows, validation)
122
+
123
+ Data Access (SQLAlchemy, connectors)
124
+
125
+ Company Modules (company.yaml + custom tools)
126
+
127
+ ### ✔ Interfaces
128
+ Chat UI, REST API, auth, sessions, JSON/HTML responses.
129
+
130
+ ### ✔ Intelligence Layer
131
+ Core logic: prompt rendering, SQL orchestration, RAG, LLM tool dispatching.
132
+
133
+ ### ✔ Execution Layer
134
+ Python services that implement real workflows: querying data, generating reports, retrieving documents, executing business logic.
135
+
136
+ ### ✔ Data Access
137
+ A clean repository pattern using SQLAlchemy.
138
+
139
+ ### ✔ Company Modules
140
+ Each company has:
141
+
142
+ - its own `company.yaml`
143
+ - its own prompts
144
+ - its own tools
145
+ - its own services
146
+ - its own vector store & SQL context
147
+
148
+ This modularity allows **true multi-tenancy**.
149
+
150
+ ---
151
+
152
+ ## 🔌 Connect to Anything
153
+
154
+ IAToolkit integrates naturally with:
155
+
156
+ - **SQL databases** (PostgreSQL, MySQL, SQL Server, etc.)
157
+ - **Document retrieval** (PDF, text, embeddings)
158
+ - **External APIs**
159
+ - **Internal microservices**
160
+ - **Custom Python tools**
161
+
162
+ It also includes a **production-grade RAG pipeline**, combining:
163
+
164
+ - embeddings
165
+ - chunking
166
+ - hybrid search
167
+ - SQL queries + document retrieval
168
+ - tool execution
169
+
170
+ Everything orchestrated through the Intelligence Layer.
171
+
172
+ ---
173
+
174
+ ## 🏢 Multi-Tenant Architecture
175
+
176
+ A single installation of IAToolkit can power assistants for multiple companies, departments, or customers.
177
+ ```text
178
+ companies/
179
+ company_a
180
+ company_b
181
+ company_c
182
+ ```
183
+ Each Company is fully isolated:
184
+
185
+ - prompts
186
+ - tools
187
+ - credentials
188
+ - documents
189
+ - SQL contexts
190
+ - business rules
191
+
192
+ This makes IAToolkit ideal for SaaS products, agencies, consultancies, and organizations with multiple business units.
193
+
194
+ ---
195
+
196
+ ## 🆓 Community Edition vs Enterprise Edition
197
+
198
+ IAToolkit follows a modern **open-core** model:
199
+
200
+ ### 🟦 Community Edition (MIT License)
201
+ - Full Open-Source Core
202
+ - SQL + Basic RAG
203
+ - One Company
204
+ - Custom Python tools
205
+ - Self-managed deployment
206
+
207
+ Perfect for developers, small teams, single-business use cases, and experimentation.
208
+
209
+ ### 🟥 Enterprise Edition (Commercial License)
210
+ - Unlimited Companies (multi-tenant)
211
+ - Payment services integration
212
+ - Enterprise Agent Workflows
213
+ - SSO integration
214
+ - Priority support & continuous updates
215
+ - Activation via **License Key**
216
+
217
+ 👉 Licensing information:
218
+ - [Community Edition (MIT)](LICENSE_COMMUNITY.md)
219
+ - [Enterprise License](ENTERPRISE_LICENSE.md)
220
+
221
+ ---
222
+
223
+ ## 🧩 Who Is IAToolkit For?
224
+
225
+ - Companies building internal “ChatGPT for the business”
226
+ - SaaS products adding AI assistants for multiple customers
227
+ - AI teams that need reproducible prompts and controlled tools
228
+ - Developers who want real workflows, not toy demos
229
+ - Organizations requiring privacy, security, and self-hosting
230
+ - Teams working with SQL-heavy business logic
231
+ - Consultancies deploying AI for multiple clients
232
+
233
+ ---
234
+
235
+ ## ⭐ Key Differentiators
236
+
237
+ - prioritizes **architecture-first design**, not chains or wrappers
238
+ - supports **multi-company** out of the box
239
+ - integrates **SQL, RAG, and tools** into a single intelligence layer
240
+ - keeps **business logic isolated** inside Company modules
241
+ - runs entirely **on your own infrastructure**
242
+ - ships with a **full web chat**, and API.
243
+ - is built for **production**, not prototypes
244
+
245
+ ---
246
+
247
+ ## 📚 Documentation
248
+
249
+ - 🚀 **[Quickstart](docs/quickstart.md)** – Set up your environment and run the project
250
+ - ☁️ **[Deployment Guide](docs/deployment_guide.md)** – Production deployment instructions
251
+ - 🏗️ **[Companies & Components](docs/companies_and_components.md)** – how Company modules work
252
+ - 🧠 **[Programming Guide](docs/programming_guide.md)** – services, intelligence layer, dispatching
253
+ - 🗃️ **[Database Guide](docs/database_guide.md)** – internal schema overview
254
+ - 🌱 **[Foundation Article](https://iatoolkit.com/pages/foundation)** – the “Why” behind the architecture
255
+ - 📘 **[Mini-Project (3 months)](https://iatoolkit.com/pages/mini_project)** – how to deploy a corporate AI assistant
256
+
257
+
258
+ ---
259
+
260
+ ## 🤝 Contributing
261
+
262
+ IAToolkit is open-source and community-friendly.
263
+ PRs, issues, ideas, and feedback are always welcome.
264
+
265
+ ---
266
+
267
+ ## ⭐ Support the Project
268
+
269
+ If you find IAToolkit useful, please **star the GitHub repo** — it helps visibility and adoption.
@@ -4,16 +4,13 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "iatoolkit"
7
- version = "0.76.0"
7
+ dynamic = ["version", "dependencies"]
8
8
  requires-python = ">=3.12"
9
9
  description = "IAToolkit"
10
10
  readme = "readme.md"
11
11
  license = "MIT"
12
12
  authors = [{ name = "Fernando Libedinsky" }]
13
13
 
14
- # Si quieres seguir leyendo deps de requirements.txt:
15
- dynamic = ["dependencies"]
16
-
17
14
  [tool.setuptools]
18
15
  package-dir = {"" = "src"}
19
16
 
@@ -23,6 +20,7 @@ exclude = ["tests*", "*/tests*"]
23
20
 
24
21
 
25
22
  [tool.setuptools.dynamic]
23
+ version = { attr = "iatoolkit.__version__" }
26
24
  dependencies = { file = ["requirements.txt"] }
27
25
 
28
26
  [tool.setuptools.package-data]
@@ -0,0 +1,184 @@
1
+ # 🧠 IAToolkit — Open-Source Framework for Real-World AI Assistants
2
+
3
+ Build private, production-grade AI assistants that run entirely inside your environment and speak the language of your business.
4
+
5
+ IAToolkit is not a demo wrapper or a prompt playground — it is a **full architecture** for implementing intelligent systems that combine LLMs, SQL data, internal documents, tools, workflows, and multi-tenant business logic.
6
+
7
+ ---
8
+
9
+ ## 🚀 Why IAToolkit?
10
+
11
+ Modern AI development is fragmented: LangChain handles chains, LlamaIndex handles documents,
12
+ your backend handles SQL, your frontend handles chats, and your devs glue everything together.
13
+
14
+ **IAToolkit brings all of this into one unified, production-ready framework.**
15
+
16
+ It focuses on:
17
+
18
+ - **real-world data** (SQL + documents)
19
+ - **real workflows** (LLM tools + python services)
20
+ - **real multi-tenant architecture** (1 company → many companies)
21
+ - **real constraints** (security, reproducibility, governance)
22
+ - **real deployment** (your servers, your infrastructure)
23
+
24
+ IAToolkit lets you build the assistant that *your* organization needs — not a generic chatbot.
25
+
26
+ ---
27
+
28
+ ## 🧩 Architecture in a Nutshell
29
+
30
+ IAToolkit is a structured, layered framework:
31
+
32
+ Interfaces (Web & API)
33
+
34
+ Intelligence Layer (prompts, tools, SQL orchestration, RAG)
35
+
36
+ Execution Layer (services, workflows, validation)
37
+
38
+ Data Access (SQLAlchemy, connectors)
39
+
40
+ Company Modules (company.yaml + custom tools)
41
+
42
+ ### ✔ Interfaces
43
+ Chat UI, REST API, auth, sessions, JSON/HTML responses.
44
+
45
+ ### ✔ Intelligence Layer
46
+ Core logic: prompt rendering, SQL orchestration, RAG, LLM tool dispatching.
47
+
48
+ ### ✔ Execution Layer
49
+ Python services that implement real workflows: querying data, generating reports, retrieving documents, executing business logic.
50
+
51
+ ### ✔ Data Access
52
+ A clean repository pattern using SQLAlchemy.
53
+
54
+ ### ✔ Company Modules
55
+ Each company has:
56
+
57
+ - its own `company.yaml`
58
+ - its own prompts
59
+ - its own tools
60
+ - its own services
61
+ - its own vector store & SQL context
62
+
63
+ This modularity allows **true multi-tenancy**.
64
+
65
+ ---
66
+
67
+ ## 🔌 Connect to Anything
68
+
69
+ IAToolkit integrates naturally with:
70
+
71
+ - **SQL databases** (PostgreSQL, MySQL, SQL Server, etc.)
72
+ - **Document retrieval** (PDF, text, embeddings)
73
+ - **External APIs**
74
+ - **Internal microservices**
75
+ - **Custom Python tools**
76
+
77
+ It also includes a **production-grade RAG pipeline**, combining:
78
+
79
+ - embeddings
80
+ - chunking
81
+ - hybrid search
82
+ - SQL queries + document retrieval
83
+ - tool execution
84
+
85
+ Everything orchestrated through the Intelligence Layer.
86
+
87
+ ---
88
+
89
+ ## 🏢 Multi-Tenant Architecture
90
+
91
+ A single installation of IAToolkit can power assistants for multiple companies, departments, or customers.
92
+ ```text
93
+ companies/
94
+ company_a
95
+ company_b
96
+ company_c
97
+ ```
98
+ Each Company is fully isolated:
99
+
100
+ - prompts
101
+ - tools
102
+ - credentials
103
+ - documents
104
+ - SQL contexts
105
+ - business rules
106
+
107
+ This makes IAToolkit ideal for SaaS products, agencies, consultancies, and organizations with multiple business units.
108
+
109
+ ---
110
+
111
+ ## 🆓 Community Edition vs Enterprise Edition
112
+
113
+ IAToolkit follows a modern **open-core** model:
114
+
115
+ ### 🟦 Community Edition (MIT License)
116
+ - Full Open-Source Core
117
+ - SQL + Basic RAG
118
+ - One Company
119
+ - Custom Python tools
120
+ - Self-managed deployment
121
+
122
+ Perfect for developers, small teams, single-business use cases, and experimentation.
123
+
124
+ ### 🟥 Enterprise Edition (Commercial License)
125
+ - Unlimited Companies (multi-tenant)
126
+ - Payment services integration
127
+ - Enterprise Agent Workflows
128
+ - SSO integration
129
+ - Priority support & continuous updates
130
+ - Activation via **License Key**
131
+
132
+ 👉 Licensing information:
133
+ - [Community Edition (MIT)](LICENSE_COMMUNITY.md)
134
+ - [Enterprise License](ENTERPRISE_LICENSE.md)
135
+
136
+ ---
137
+
138
+ ## 🧩 Who Is IAToolkit For?
139
+
140
+ - Companies building internal “ChatGPT for the business”
141
+ - SaaS products adding AI assistants for multiple customers
142
+ - AI teams that need reproducible prompts and controlled tools
143
+ - Developers who want real workflows, not toy demos
144
+ - Organizations requiring privacy, security, and self-hosting
145
+ - Teams working with SQL-heavy business logic
146
+ - Consultancies deploying AI for multiple clients
147
+
148
+ ---
149
+
150
+ ## ⭐ Key Differentiators
151
+
152
+ - prioritizes **architecture-first design**, not chains or wrappers
153
+ - supports **multi-company** out of the box
154
+ - integrates **SQL, RAG, and tools** into a single intelligence layer
155
+ - keeps **business logic isolated** inside Company modules
156
+ - runs entirely **on your own infrastructure**
157
+ - ships with a **full web chat**, and API.
158
+ - is built for **production**, not prototypes
159
+
160
+ ---
161
+
162
+ ## 📚 Documentation
163
+
164
+ - 🚀 **[Quickstart](docs/quickstart.md)** – Set up your environment and run the project
165
+ - ☁️ **[Deployment Guide](docs/deployment_guide.md)** – Production deployment instructions
166
+ - 🏗️ **[Companies & Components](docs/companies_and_components.md)** – how Company modules work
167
+ - 🧠 **[Programming Guide](docs/programming_guide.md)** – services, intelligence layer, dispatching
168
+ - 🗃️ **[Database Guide](docs/database_guide.md)** – internal schema overview
169
+ - 🌱 **[Foundation Article](https://iatoolkit.com/pages/foundation)** – the “Why” behind the architecture
170
+ - 📘 **[Mini-Project (3 months)](https://iatoolkit.com/pages/mini_project)** – how to deploy a corporate AI assistant
171
+
172
+
173
+ ---
174
+
175
+ ## 🤝 Contributing
176
+
177
+ IAToolkit is open-source and community-friendly.
178
+ PRs, issues, ideas, and feedback are always welcome.
179
+
180
+ ---
181
+
182
+ ## ⭐ Support the Project
183
+
184
+ If you find IAToolkit useful, please **star the GitHub repo** — it helps visibility and adoption.
@@ -4,6 +4,7 @@ botocore==1.36.22
4
4
  build==1.2.2.post1
5
5
  click==8.1.8
6
6
  cryptography==44.0.3
7
+ deepseek==1.0.0
7
8
  Flask==3.1.0
8
9
  Flask-Bcrypt==1.0.1
9
10
  flask-cors==6.0.0
@@ -38,7 +39,7 @@ langchain==0.3.19
38
39
  langchain-core==0.3.35
39
40
  langchain-text-splitters==0.3.6
40
41
  markdown2==2.5.3
41
- openai==1.79.0
42
+ openai==2.8.1
42
43
  openpyxl==3.1.5
43
44
  pandas==2.3.1
44
45
  pgvector==0.3.6
@@ -69,3 +70,4 @@ tokenizers==0.21.0
69
70
  websocket-client==1.8.0
70
71
  websockets==14.1
71
72
  Werkzeug==3.1.3
73
+ pyjwt[crypto]>=2.8.0
@@ -1,14 +1,17 @@
1
- """
2
- IAToolkit Package
3
- """
1
+ # Copyright (c) 2024 Fernando Libedinsky
2
+ # Product: IAToolkit
3
+ #
4
+ # IAToolkit is open source software.
5
+
6
+ __version__ = "0.95.4"
4
7
 
5
8
  # Expose main classes and functions at the top level of the package
6
9
 
7
10
  # main IAToolkit class
8
- from .iatoolkit import IAToolkit, create_app, current_iatoolkit
11
+ from iatoolkit.core import IAToolkit, create_app, current_iatoolkit
9
12
 
10
13
  # for registering the client companies
11
- from .company_registry import register_company
14
+ from .company_registry import register_company, set_company_registry
12
15
  from .base_company import BaseCompany
13
16
 
14
17
  # --- Services ---
@@ -18,12 +21,16 @@ from iatoolkit.services.search_service import SearchService
18
21
  from iatoolkit.services.sql_service import SqlService
19
22
  from iatoolkit.services.load_documents_service import LoadDocumentsService
20
23
  from iatoolkit.infra.call_service import CallServiceClient
24
+ from iatoolkit.services.profile_service import ProfileService
25
+ from iatoolkit.services.mail_service import MailService
26
+ from iatoolkit.repositories.models import Base as OrmModel
21
27
 
22
28
  __all__ = [
23
29
  'IAToolkit',
24
30
  'create_app',
25
31
  'current_iatoolkit',
26
32
  'register_company',
33
+ 'set_company_registry',
27
34
  'BaseCompany',
28
35
  'QueryService',
29
36
  'SqlService',
@@ -31,4 +38,7 @@ __all__ = [
31
38
  'SearchService',
32
39
  'LoadDocumentsService',
33
40
  'CallServiceClient',
41
+ 'ProfileService',
42
+ 'MailService',
43
+ 'OrmModel'
34
44
  ]
@@ -0,0 +1,37 @@
1
+ # Copyright (c) 2024 Fernando Libedinsky
2
+ # Product: IAToolkit
3
+ #
4
+ # IAToolkit is open source software.
5
+
6
+ # companies/base_company.py
7
+ from abc import ABC, abstractmethod
8
+ from iatoolkit.repositories.profile_repo import ProfileRepo
9
+ from iatoolkit.repositories.llm_query_repo import LLMQueryRepo
10
+ from iatoolkit.repositories.models import Company
11
+ from iatoolkit.core import IAToolkit
12
+
13
+
14
+ class BaseCompany(ABC):
15
+ def __init__(self):
16
+ # Obtener el inyector global y resolver las dependencias internamente
17
+ injector = IAToolkit.get_instance().get_injector()
18
+ self.profile_repo: ProfileRepo = injector.get(ProfileRepo)
19
+ self.llm_query_repo: LLMQueryRepo = injector.get(LLMQueryRepo)
20
+ self.company: Company | None = None
21
+ self.company_short_name = ''
22
+
23
+
24
+ @abstractmethod
25
+ # execute the specific action configured in the intent table
26
+ def handle_request(self, tag: str, params: dict) -> dict:
27
+ raise NotImplementedError("La subclase debe implementar el método handle_request()")
28
+
29
+ @abstractmethod
30
+ def register_cli_commands(self, app):
31
+ """
32
+ optional method for a company definition of it's cli commands
33
+ """
34
+ pass
35
+
36
+ def unsupported_operation(self, tag):
37
+ raise NotImplementedError(f"La operación '{tag}' no está soportada por esta empresa.")
@@ -5,9 +5,10 @@
5
5
 
6
6
  import click
7
7
  import logging
8
- from .iatoolkit import IAToolkit
8
+ from iatoolkit.core import IAToolkit
9
9
  from iatoolkit.services.profile_service import ProfileService
10
10
 
11
+
11
12
  def register_core_commands(app):
12
13
  """Registra los comandos CLI del núcleo de IAToolkit."""
13
14
 
@@ -43,17 +44,5 @@ def register_core_commands(app):
43
44
  logging.exception(e)
44
45
  click.echo(f"Error: {str(e)}")
45
46
 
46
- @app.cli.command("exec-tasks")
47
- @click.argument("company_short_name")
48
- def exec_pending_tasks(company_short_name: str):
49
- from iatoolkit.services.tasks_service import TaskService
50
- task_service = IAToolkit.get_instance().get_injector().get(TaskService)
51
-
52
- try:
53
- result = task_service.trigger_pending_tasks(company_short_name)
54
- click.echo(result['message'])
55
- except Exception as e:
56
- logging.exception(e)
57
- click.echo(f"Error: {str(e)}")
58
47
 
59
48
 
@@ -38,6 +38,7 @@ class IAToolkitException(Exception):
38
38
  INVALID_USER = 26
39
39
  VECTOR_STORE_ERROR = 27
40
40
  EMBEDDING_ERROR = 28
41
+ MODEL = 29
41
42
 
42
43
 
43
44