iatoolkit 0.67.0__tar.gz → 0.76.0__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.
- iatoolkit-0.76.0/PKG-INFO +196 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/pyproject.toml +1 -1
- iatoolkit-0.76.0/readme.md +114 -0
- iatoolkit-0.76.0/requirements.txt +71 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/__init__.py +2 -8
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/base_company.py +2 -11
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/cli_commands.py +5 -7
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/common/exceptions.py +1 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/common/routes.py +7 -3
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/common/util.py +1 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/iatoolkit.py +20 -27
- iatoolkit-0.67.0/src/iatoolkit/infra/mail_app.py → iatoolkit-0.76.0/src/iatoolkit/infra/brevo_mail_app.py +15 -37
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/llm_client.py +10 -14
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/llm_proxy.py +38 -10
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/locales/en.yaml +4 -3
- iatoolkit-0.76.0/src/iatoolkit/locales/es.yaml +165 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/repositories/database_manager.py +5 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/repositories/models.py +18 -19
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/repositories/profile_repo.py +5 -10
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/repositories/vs_repo.py +32 -21
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/auth_service.py +1 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/branding_service.py +8 -6
- iatoolkit-0.76.0/src/iatoolkit/services/company_context_service.py +155 -0
- iatoolkit-0.76.0/src/iatoolkit/services/configuration_service.py +269 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/dispatcher_service.py +67 -66
- iatoolkit-0.76.0/src/iatoolkit/services/embedding_service.py +144 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/excel_service.py +1 -1
- iatoolkit-0.76.0/src/iatoolkit/services/history_manager_service.py +189 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/jwt_service.py +1 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/language_service.py +10 -6
- iatoolkit-0.76.0/src/iatoolkit/services/load_documents_service.py +174 -0
- iatoolkit-0.76.0/src/iatoolkit/services/mail_service.py +213 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/profile_service.py +33 -11
- iatoolkit-0.76.0/src/iatoolkit/services/query_service.py +448 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/search_service.py +11 -4
- iatoolkit-0.76.0/src/iatoolkit/services/sql_service.py +92 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/user_feedback_service.py +18 -6
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/user_session_context_service.py +18 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_main.js +17 -4
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_onboarding_button.js +6 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/styles/chat_iatoolkit.css +1 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/styles/onboarding.css +7 -0
- iatoolkit-0.76.0/src/iatoolkit/system_prompts/__init__.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/system_prompts/query_main.prompt +3 -11
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/change_password.html +1 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/chat.html +1 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/chat_modals.html +1 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/error.html +1 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/login_simulation.html +1 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/onboarding_shell.html +4 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/base_login_view.py +7 -8
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/change_password_view.py +3 -4
- iatoolkit-0.76.0/src/iatoolkit/views/embedding_api_view.py +65 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/external_login_view.py +4 -4
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/forgot_password_view.py +6 -6
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/help_content_api_view.py +1 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/history_api_view.py +3 -3
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/home_view.py +2 -2
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/init_context_api_view.py +17 -16
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/llmquery_api_view.py +4 -2
- iatoolkit-0.67.0/src/iatoolkit/views/file_store_api_view.py → iatoolkit-0.76.0/src/iatoolkit/views/load_document_api_view.py +2 -2
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/login_simulation_view.py +4 -1
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/login_view.py +9 -9
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/signup_view.py +3 -5
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/verify_user_view.py +2 -4
- iatoolkit-0.76.0/src/iatoolkit.egg-info/PKG-INFO +196 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit.egg-info/SOURCES.txt +7 -4
- iatoolkit-0.76.0/src/iatoolkit.egg-info/requires.txt +71 -0
- iatoolkit-0.67.0/PKG-INFO +0 -276
- iatoolkit-0.67.0/readme.md +0 -65
- iatoolkit-0.67.0/requirements.txt +0 -200
- iatoolkit-0.67.0/src/iatoolkit/locales/es.yaml +0 -163
- iatoolkit-0.67.0/src/iatoolkit/services/configuration_service.py +0 -140
- iatoolkit-0.67.0/src/iatoolkit/services/history_service.py +0 -38
- iatoolkit-0.67.0/src/iatoolkit/services/load_documents_service.py +0 -187
- iatoolkit-0.67.0/src/iatoolkit/services/mail_service.py +0 -67
- iatoolkit-0.67.0/src/iatoolkit/services/onboarding_service.py +0 -49
- iatoolkit-0.67.0/src/iatoolkit/services/query_service.py +0 -373
- iatoolkit-0.67.0/src/iatoolkit/services/sql_service.py +0 -64
- iatoolkit-0.67.0/src/iatoolkit.egg-info/PKG-INFO +0 -276
- iatoolkit-0.67.0/src/iatoolkit.egg-info/requires.txt +0 -200
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/LICENSE +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/setup.cfg +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/gemini_adapter.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/openai_adapter.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/repositories/tasks_repo.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/benchmark_service.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/document_service.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/prompt_manager_service.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/services/tasks_service.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/about.html +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/index.html +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/index_view.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/tasks_api_view.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/tasks_review_api_view.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-0.67.0 → iatoolkit-0.76.0}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iatoolkit
|
|
3
|
+
Version: 0.76.0
|
|
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
|
+
Requires-Dist: bcrypt==4.2.1
|
|
11
|
+
Requires-Dist: boto3==1.36.22
|
|
12
|
+
Requires-Dist: botocore==1.36.22
|
|
13
|
+
Requires-Dist: build==1.2.2.post1
|
|
14
|
+
Requires-Dist: click==8.1.8
|
|
15
|
+
Requires-Dist: cryptography==44.0.3
|
|
16
|
+
Requires-Dist: Flask==3.1.0
|
|
17
|
+
Requires-Dist: Flask-Bcrypt==1.0.1
|
|
18
|
+
Requires-Dist: flask-cors==6.0.0
|
|
19
|
+
Requires-Dist: Flask-Injector==0.15.0
|
|
20
|
+
Requires-Dist: Flask-Session==0.8.0
|
|
21
|
+
Requires-Dist: flatbuffers==24.3.25
|
|
22
|
+
Requires-Dist: google-ai-generativelanguage==0.6.15
|
|
23
|
+
Requires-Dist: google-api-core==2.24.1
|
|
24
|
+
Requires-Dist: google-api-python-client==2.161.0
|
|
25
|
+
Requires-Dist: google-auth==2.37.0
|
|
26
|
+
Requires-Dist: google-auth-httplib2==0.2.0
|
|
27
|
+
Requires-Dist: google-auth-oauthlib==1.2.1
|
|
28
|
+
Requires-Dist: google-cloud-core==2.4.1
|
|
29
|
+
Requires-Dist: google-cloud-storage==3.0.0
|
|
30
|
+
Requires-Dist: google-crc32c==1.6.0
|
|
31
|
+
Requires-Dist: google-generativeai==0.8.5
|
|
32
|
+
Requires-Dist: google-resumable-media==2.7.2
|
|
33
|
+
Requires-Dist: googleapis-common-protos==1.66.0
|
|
34
|
+
Requires-Dist: gunicorn==23.0.0
|
|
35
|
+
Requires-Dist: h11==0.14.0
|
|
36
|
+
Requires-Dist: httpcore==1.0.7
|
|
37
|
+
Requires-Dist: httplib2==0.22.0
|
|
38
|
+
Requires-Dist: httptools==0.6.4
|
|
39
|
+
Requires-Dist: httpx==0.28.0
|
|
40
|
+
Requires-Dist: httpx-sse==0.4.0
|
|
41
|
+
Requires-Dist: huggingface-hub==0.31.4
|
|
42
|
+
Requires-Dist: humanfriendly==10.0
|
|
43
|
+
Requires-Dist: idna==3.10
|
|
44
|
+
Requires-Dist: injector==0.22.0
|
|
45
|
+
Requires-Dist: Jinja2==3.1.5
|
|
46
|
+
Requires-Dist: langchain==0.3.19
|
|
47
|
+
Requires-Dist: langchain-core==0.3.35
|
|
48
|
+
Requires-Dist: langchain-text-splitters==0.3.6
|
|
49
|
+
Requires-Dist: markdown2==2.5.3
|
|
50
|
+
Requires-Dist: openai==1.79.0
|
|
51
|
+
Requires-Dist: openpyxl==3.1.5
|
|
52
|
+
Requires-Dist: pandas==2.3.1
|
|
53
|
+
Requires-Dist: pgvector==0.3.6
|
|
54
|
+
Requires-Dist: pillow==11.0.0
|
|
55
|
+
Requires-Dist: psutil==7.0.0
|
|
56
|
+
Requires-Dist: psycopg2-binary==2.9.10
|
|
57
|
+
Requires-Dist: PyJWT==2.10.1
|
|
58
|
+
Requires-Dist: PyMuPDF==1.25.0
|
|
59
|
+
Requires-Dist: python-dotenv==1.0.1
|
|
60
|
+
Requires-Dist: pytest==8.3.4
|
|
61
|
+
Requires-Dist: pytest-cov==5.0.0
|
|
62
|
+
Requires-Dist: pytest-mock==3.14.0
|
|
63
|
+
Requires-Dist: python-dateutil==2.9.0.post0
|
|
64
|
+
Requires-Dist: python-docx==1.1.2
|
|
65
|
+
Requires-Dist: pytesseract==0.3.13
|
|
66
|
+
Requires-Dist: pytz==2025.2
|
|
67
|
+
Requires-Dist: PyYAML==6.0.2
|
|
68
|
+
Requires-Dist: redis==5.2.1
|
|
69
|
+
Requires-Dist: regex==2024.11.6
|
|
70
|
+
Requires-Dist: requests==2.32.3
|
|
71
|
+
Requires-Dist: requests-oauthlib==2.0.0
|
|
72
|
+
Requires-Dist: requests-toolbelt==1.0.0
|
|
73
|
+
Requires-Dist: s3transfer==0.11.2
|
|
74
|
+
Requires-Dist: sib-api-v3-sdk==7.6.0
|
|
75
|
+
Requires-Dist: SQLAlchemy==2.0.36
|
|
76
|
+
Requires-Dist: tiktoken==0.8.0
|
|
77
|
+
Requires-Dist: tokenizers==0.21.0
|
|
78
|
+
Requires-Dist: websocket-client==1.8.0
|
|
79
|
+
Requires-Dist: websockets==14.1
|
|
80
|
+
Requires-Dist: Werkzeug==3.1.3
|
|
81
|
+
Dynamic: license-file
|
|
82
|
+
|
|
83
|
+
<div align="center">
|
|
84
|
+
<h1>IAToolkit</h1>
|
|
85
|
+
<p><strong>The Open-Source Framework for Building AI Assistants on Your Private Data</strong></p>
|
|
86
|
+
<p>
|
|
87
|
+
<a href="https://www.iatoolkit.com">Website</a> |
|
|
88
|
+
<a href="./docs/index.md">Full Documentation</a> |
|
|
89
|
+
<a href="./docs/quickstart.md">Quickstart Guide</a>
|
|
90
|
+
</p>
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+

|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## ✨ Why IAToolkit?
|
|
98
|
+
|
|
99
|
+
IAToolkit is more than a framework — it's a complete foundation for building **enterprise-grade AI assistants**
|
|
100
|
+
capable of understanding your proprietary data, automating workflows, and integrating seamlessly with
|
|
101
|
+
your existing systems.
|
|
102
|
+
|
|
103
|
+
Whether you’re building a production chatbot for your company or learning how real AI applications are architected,
|
|
104
|
+
IAToolkit gives you everything you need to build secure, production-grade assistants — from data access,
|
|
105
|
+
multi-tenant architecture, and tool execution to prompt orchestration, semantic search,
|
|
106
|
+
and full UI integration — all powered by a clean, extensible Python API.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### 🔌 Connect to Anything
|
|
111
|
+
Build AI assistants that truly understand your business.
|
|
112
|
+
|
|
113
|
+
- Connect to **SQL databases** (PostgreSQL, MySQL, SQLite)
|
|
114
|
+
- Query structured data using natural language
|
|
115
|
+
- Perform **semantic search** on PDFs, DOCX, TXT, XLSX
|
|
116
|
+
- Works as a full RAG engine out-of-the-box
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### 🏢 Multi-Tenant by Design
|
|
121
|
+
Ideal for SaaS, agencies, consultancies, or large enterprises.
|
|
122
|
+
|
|
123
|
+
- Isolated **Company Modules**
|
|
124
|
+
- Each company defines its own:
|
|
125
|
+
- data sources
|
|
126
|
+
- prompts
|
|
127
|
+
- custom tools
|
|
128
|
+
- branding + UI theme
|
|
129
|
+
- Clean separation for multi-client deployments
|
|
130
|
+
- Perfect for scaling from 1 to 100 customers
|
|
131
|
+
- Configure everything using simple YAML
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### 🧩 Extensible & Provider-Agnostic
|
|
136
|
+
Customize every layer and keep full control.
|
|
137
|
+
|
|
138
|
+
- Add **custom tools** the LLM can call (SQL, API, Python functions)
|
|
139
|
+
- Swap between **OpenAI (GPT)**, **Google Gemini**, or future models
|
|
140
|
+
- Built on dependency injection for maximum modularity
|
|
141
|
+
- Extend prompts, dispatchers, services, and LLM clients effortlessly
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### 🛡️ Built for Production
|
|
146
|
+
Designed for real-world systems — reliable, maintainable, and scalable.
|
|
147
|
+
|
|
148
|
+
- Integrated authentication and session handling
|
|
149
|
+
- Secure secret management via environment variables
|
|
150
|
+
- Detailed logging of prompts, tool calls, and token usage
|
|
151
|
+
- Structured architecture with **90%+ automated test coverage**
|
|
152
|
+
- Clean separation of UI, business logic, and LLM orchestration
|
|
153
|
+
- Runs anywhere: local machine, docker, cloud, serverless
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### 🎓 Learn How Real AI Applications Are Built
|
|
158
|
+
IAToolkit is also an excellent learning resource:
|
|
159
|
+
|
|
160
|
+
- Understand how to orchestrate multiple LLM calls
|
|
161
|
+
- Learn how tools, SQL, vector search and prompts interact
|
|
162
|
+
- Explore a complete architecture for real AI products
|
|
163
|
+
- Use the Sample Company demo to practice building AI assistants
|
|
164
|
+
- Perfect for developers, students, and teams exploring enterprise AI
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 🚀 Getting Started in 3 Minutes
|
|
169
|
+
|
|
170
|
+
Get your first AI assistant running locally by following our "Hello World" example.
|
|
171
|
+
Our detailed guide will walk you through setting up your virtual environment, configuring your `.env` file,
|
|
172
|
+
and launching the application.
|
|
173
|
+
|
|
174
|
+
➡️ **[Start the Quickstart Guide](./docs/quickstart.md)**
|
|
175
|
+
|
|
176
|
+
## 📚 Documentation
|
|
177
|
+
|
|
178
|
+
Our documentation is designed for users of all levels, from initial setup to advanced development.
|
|
179
|
+
|
|
180
|
+
| Guide | Description |
|
|
181
|
+
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
182
|
+
| 🚀 **[Quickstart Guide](./docs/quickstart.md)** | The fastest way to install, configure, and run IAToolkit for the first time. |
|
|
183
|
+
| ⚙️ **[Companies & Components](./docs/companies_and_components.md)** | A deep dive into the `company.yaml` file, the core of all configuration. |
|
|
184
|
+
| 💻 **[Programming Guide](./docs/programming_guide.md)** | Understand the internal architecture, services, and design patterns to extend the framework. |
|
|
185
|
+
| ☁️ **[Deployment Guide](./docs/deployment_guide.md)** | Learn how to deploy your IAToolkit application to a production environment. |
|
|
186
|
+
| 🗃️ **[Database Guide](./docs/database_guide.md)** | An overview of the core database schema used by the IAToolkit framework itself. |
|
|
187
|
+
|
|
188
|
+
➡️ **[Explore all documentation](./docs/index.md)**
|
|
189
|
+
|
|
190
|
+
## 🤝 Contributing
|
|
191
|
+
|
|
192
|
+
We welcome contributions of all kinds! Whether it's a new feature, a bug fix, or an improvement to the documentation, your help is appreciated. Please read our **[Contributing Guide](./contributing.md)** to get started.
|
|
193
|
+
|
|
194
|
+
## 📄 License
|
|
195
|
+
|
|
196
|
+
IAToolkit is open-source software licensed under the **[MIT License](./LICENSE)**.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>IAToolkit</h1>
|
|
3
|
+
<p><strong>The Open-Source Framework for Building AI Assistants on Your Private Data</strong></p>
|
|
4
|
+
<p>
|
|
5
|
+
<a href="https://www.iatoolkit.com">Website</a> |
|
|
6
|
+
<a href="./docs/index.md">Full Documentation</a> |
|
|
7
|
+
<a href="./docs/quickstart.md">Quickstart Guide</a>
|
|
8
|
+
</p>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ✨ Why IAToolkit?
|
|
16
|
+
|
|
17
|
+
IAToolkit is more than a framework — it's a complete foundation for building **enterprise-grade AI assistants**
|
|
18
|
+
capable of understanding your proprietary data, automating workflows, and integrating seamlessly with
|
|
19
|
+
your existing systems.
|
|
20
|
+
|
|
21
|
+
Whether you’re building a production chatbot for your company or learning how real AI applications are architected,
|
|
22
|
+
IAToolkit gives you everything you need to build secure, production-grade assistants — from data access,
|
|
23
|
+
multi-tenant architecture, and tool execution to prompt orchestration, semantic search,
|
|
24
|
+
and full UI integration — all powered by a clean, extensible Python API.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
### 🔌 Connect to Anything
|
|
29
|
+
Build AI assistants that truly understand your business.
|
|
30
|
+
|
|
31
|
+
- Connect to **SQL databases** (PostgreSQL, MySQL, SQLite)
|
|
32
|
+
- Query structured data using natural language
|
|
33
|
+
- Perform **semantic search** on PDFs, DOCX, TXT, XLSX
|
|
34
|
+
- Works as a full RAG engine out-of-the-box
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### 🏢 Multi-Tenant by Design
|
|
39
|
+
Ideal for SaaS, agencies, consultancies, or large enterprises.
|
|
40
|
+
|
|
41
|
+
- Isolated **Company Modules**
|
|
42
|
+
- Each company defines its own:
|
|
43
|
+
- data sources
|
|
44
|
+
- prompts
|
|
45
|
+
- custom tools
|
|
46
|
+
- branding + UI theme
|
|
47
|
+
- Clean separation for multi-client deployments
|
|
48
|
+
- Perfect for scaling from 1 to 100 customers
|
|
49
|
+
- Configure everything using simple YAML
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### 🧩 Extensible & Provider-Agnostic
|
|
54
|
+
Customize every layer and keep full control.
|
|
55
|
+
|
|
56
|
+
- Add **custom tools** the LLM can call (SQL, API, Python functions)
|
|
57
|
+
- Swap between **OpenAI (GPT)**, **Google Gemini**, or future models
|
|
58
|
+
- Built on dependency injection for maximum modularity
|
|
59
|
+
- Extend prompts, dispatchers, services, and LLM clients effortlessly
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### 🛡️ Built for Production
|
|
64
|
+
Designed for real-world systems — reliable, maintainable, and scalable.
|
|
65
|
+
|
|
66
|
+
- Integrated authentication and session handling
|
|
67
|
+
- Secure secret management via environment variables
|
|
68
|
+
- Detailed logging of prompts, tool calls, and token usage
|
|
69
|
+
- Structured architecture with **90%+ automated test coverage**
|
|
70
|
+
- Clean separation of UI, business logic, and LLM orchestration
|
|
71
|
+
- Runs anywhere: local machine, docker, cloud, serverless
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 🎓 Learn How Real AI Applications Are Built
|
|
76
|
+
IAToolkit is also an excellent learning resource:
|
|
77
|
+
|
|
78
|
+
- Understand how to orchestrate multiple LLM calls
|
|
79
|
+
- Learn how tools, SQL, vector search and prompts interact
|
|
80
|
+
- Explore a complete architecture for real AI products
|
|
81
|
+
- Use the Sample Company demo to practice building AI assistants
|
|
82
|
+
- Perfect for developers, students, and teams exploring enterprise AI
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 🚀 Getting Started in 3 Minutes
|
|
87
|
+
|
|
88
|
+
Get your first AI assistant running locally by following our "Hello World" example.
|
|
89
|
+
Our detailed guide will walk you through setting up your virtual environment, configuring your `.env` file,
|
|
90
|
+
and launching the application.
|
|
91
|
+
|
|
92
|
+
➡️ **[Start the Quickstart Guide](./docs/quickstart.md)**
|
|
93
|
+
|
|
94
|
+
## 📚 Documentation
|
|
95
|
+
|
|
96
|
+
Our documentation is designed for users of all levels, from initial setup to advanced development.
|
|
97
|
+
|
|
98
|
+
| Guide | Description |
|
|
99
|
+
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
100
|
+
| 🚀 **[Quickstart Guide](./docs/quickstart.md)** | The fastest way to install, configure, and run IAToolkit for the first time. |
|
|
101
|
+
| ⚙️ **[Companies & Components](./docs/companies_and_components.md)** | A deep dive into the `company.yaml` file, the core of all configuration. |
|
|
102
|
+
| 💻 **[Programming Guide](./docs/programming_guide.md)** | Understand the internal architecture, services, and design patterns to extend the framework. |
|
|
103
|
+
| ☁️ **[Deployment Guide](./docs/deployment_guide.md)** | Learn how to deploy your IAToolkit application to a production environment. |
|
|
104
|
+
| 🗃️ **[Database Guide](./docs/database_guide.md)** | An overview of the core database schema used by the IAToolkit framework itself. |
|
|
105
|
+
|
|
106
|
+
➡️ **[Explore all documentation](./docs/index.md)**
|
|
107
|
+
|
|
108
|
+
## 🤝 Contributing
|
|
109
|
+
|
|
110
|
+
We welcome contributions of all kinds! Whether it's a new feature, a bug fix, or an improvement to the documentation, your help is appreciated. Please read our **[Contributing Guide](./contributing.md)** to get started.
|
|
111
|
+
|
|
112
|
+
## 📄 License
|
|
113
|
+
|
|
114
|
+
IAToolkit is open-source software licensed under the **[MIT License](./LICENSE)**.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
bcrypt==4.2.1
|
|
2
|
+
boto3==1.36.22
|
|
3
|
+
botocore==1.36.22
|
|
4
|
+
build==1.2.2.post1
|
|
5
|
+
click==8.1.8
|
|
6
|
+
cryptography==44.0.3
|
|
7
|
+
Flask==3.1.0
|
|
8
|
+
Flask-Bcrypt==1.0.1
|
|
9
|
+
flask-cors==6.0.0
|
|
10
|
+
Flask-Injector==0.15.0
|
|
11
|
+
Flask-Session==0.8.0
|
|
12
|
+
flatbuffers==24.3.25
|
|
13
|
+
google-ai-generativelanguage==0.6.15
|
|
14
|
+
google-api-core==2.24.1
|
|
15
|
+
google-api-python-client==2.161.0
|
|
16
|
+
google-auth==2.37.0
|
|
17
|
+
google-auth-httplib2==0.2.0
|
|
18
|
+
google-auth-oauthlib==1.2.1
|
|
19
|
+
google-cloud-core==2.4.1
|
|
20
|
+
google-cloud-storage==3.0.0
|
|
21
|
+
google-crc32c==1.6.0
|
|
22
|
+
google-generativeai==0.8.5
|
|
23
|
+
google-resumable-media==2.7.2
|
|
24
|
+
googleapis-common-protos==1.66.0
|
|
25
|
+
gunicorn==23.0.0
|
|
26
|
+
h11==0.14.0
|
|
27
|
+
httpcore==1.0.7
|
|
28
|
+
httplib2==0.22.0
|
|
29
|
+
httptools==0.6.4
|
|
30
|
+
httpx==0.28.0
|
|
31
|
+
httpx-sse==0.4.0
|
|
32
|
+
huggingface-hub==0.31.4
|
|
33
|
+
humanfriendly==10.0
|
|
34
|
+
idna==3.10
|
|
35
|
+
injector==0.22.0
|
|
36
|
+
Jinja2==3.1.5
|
|
37
|
+
langchain==0.3.19
|
|
38
|
+
langchain-core==0.3.35
|
|
39
|
+
langchain-text-splitters==0.3.6
|
|
40
|
+
markdown2==2.5.3
|
|
41
|
+
openai==1.79.0
|
|
42
|
+
openpyxl==3.1.5
|
|
43
|
+
pandas==2.3.1
|
|
44
|
+
pgvector==0.3.6
|
|
45
|
+
pillow==11.0.0
|
|
46
|
+
psutil==7.0.0
|
|
47
|
+
psycopg2-binary==2.9.10
|
|
48
|
+
PyJWT==2.10.1
|
|
49
|
+
PyMuPDF==1.25.0
|
|
50
|
+
python-dotenv==1.0.1
|
|
51
|
+
pytest==8.3.4
|
|
52
|
+
pytest-cov==5.0.0
|
|
53
|
+
pytest-mock==3.14.0
|
|
54
|
+
python-dateutil==2.9.0.post0
|
|
55
|
+
python-docx==1.1.2
|
|
56
|
+
pytesseract==0.3.13
|
|
57
|
+
pytz==2025.2
|
|
58
|
+
PyYAML==6.0.2
|
|
59
|
+
redis==5.2.1
|
|
60
|
+
regex==2024.11.6
|
|
61
|
+
requests==2.32.3
|
|
62
|
+
requests-oauthlib==2.0.0
|
|
63
|
+
requests-toolbelt==1.0.0
|
|
64
|
+
s3transfer==0.11.2
|
|
65
|
+
sib-api-v3-sdk==7.6.0
|
|
66
|
+
SQLAlchemy==2.0.36
|
|
67
|
+
tiktoken==0.8.0
|
|
68
|
+
tokenizers==0.21.0
|
|
69
|
+
websocket-client==1.8.0
|
|
70
|
+
websockets==14.1
|
|
71
|
+
Werkzeug==3.1.3
|
|
@@ -5,21 +5,18 @@ IAToolkit Package
|
|
|
5
5
|
# Expose main classes and functions at the top level of the package
|
|
6
6
|
|
|
7
7
|
# main IAToolkit class
|
|
8
|
-
from .iatoolkit import IAToolkit,
|
|
8
|
+
from .iatoolkit import IAToolkit, create_app, current_iatoolkit
|
|
9
9
|
|
|
10
10
|
# for registering the client companies
|
|
11
11
|
from .company_registry import register_company
|
|
12
12
|
from .base_company import BaseCompany
|
|
13
|
-
from iatoolkit.repositories.database_manager import DatabaseManager
|
|
14
13
|
|
|
15
14
|
# --- Services ---
|
|
16
|
-
from iatoolkit.services.configuration_service import ConfigurationService
|
|
17
15
|
from iatoolkit.services.query_service import QueryService
|
|
18
|
-
from iatoolkit.services.sql_service import SqlService
|
|
19
16
|
from iatoolkit.services.document_service import DocumentService
|
|
20
17
|
from iatoolkit.services.search_service import SearchService
|
|
18
|
+
from iatoolkit.services.sql_service import SqlService
|
|
21
19
|
from iatoolkit.services.load_documents_service import LoadDocumentsService
|
|
22
|
-
from iatoolkit.services.excel_service import ExcelService
|
|
23
20
|
from iatoolkit.infra.call_service import CallServiceClient
|
|
24
21
|
|
|
25
22
|
__all__ = [
|
|
@@ -28,11 +25,8 @@ __all__ = [
|
|
|
28
25
|
'current_iatoolkit',
|
|
29
26
|
'register_company',
|
|
30
27
|
'BaseCompany',
|
|
31
|
-
'DatabaseManager',
|
|
32
28
|
'QueryService',
|
|
33
|
-
'ConfigurationService',
|
|
34
29
|
'SqlService',
|
|
35
|
-
'ExcelService',
|
|
36
30
|
'DocumentService',
|
|
37
31
|
'SearchService',
|
|
38
32
|
'LoadDocumentsService',
|
|
@@ -9,7 +9,7 @@ from iatoolkit.repositories.profile_repo import ProfileRepo
|
|
|
9
9
|
from iatoolkit.repositories.llm_query_repo import LLMQueryRepo
|
|
10
10
|
from iatoolkit.services.prompt_manager_service import PromptService
|
|
11
11
|
from iatoolkit.repositories.models import Company, Function, PromptCategory
|
|
12
|
-
from iatoolkit import IAToolkit
|
|
12
|
+
from .iatoolkit import IAToolkit
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class BaseCompany(ABC):
|
|
@@ -20,6 +20,7 @@ class BaseCompany(ABC):
|
|
|
20
20
|
self.llm_query_repo: LLMQueryRepo = injector.get(LLMQueryRepo)
|
|
21
21
|
self.prompt_service: PromptService = injector.get(PromptService)
|
|
22
22
|
self.company: Company | None = None
|
|
23
|
+
self.company_short_name: str
|
|
23
24
|
|
|
24
25
|
def _create_company(self,
|
|
25
26
|
short_name: str,
|
|
@@ -68,12 +69,6 @@ class BaseCompany(ABC):
|
|
|
68
69
|
**kwargs
|
|
69
70
|
)
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
@abstractmethod
|
|
73
|
-
# get context specific for this company
|
|
74
|
-
def get_company_context(self, **kwargs) -> str:
|
|
75
|
-
raise NotImplementedError("La subclase debe implementar el método get_company_context()")
|
|
76
|
-
|
|
77
72
|
@abstractmethod
|
|
78
73
|
# get context specific for this company
|
|
79
74
|
def get_user_info(self, user_identifier: str) -> dict:
|
|
@@ -85,10 +80,6 @@ class BaseCompany(ABC):
|
|
|
85
80
|
raise NotImplementedError("La subclase debe implementar el método handle_request()")
|
|
86
81
|
|
|
87
82
|
@abstractmethod
|
|
88
|
-
# get context specific for the query
|
|
89
|
-
def get_metadata_from_filename(self, filename: str) -> dict:
|
|
90
|
-
raise NotImplementedError("La subclase debe implementar el método get_query_context()")
|
|
91
|
-
|
|
92
83
|
def register_cli_commands(self, app):
|
|
93
84
|
"""
|
|
94
85
|
optional method for a company definition of it's cli commands
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import click
|
|
7
7
|
import logging
|
|
8
|
-
from iatoolkit import IAToolkit
|
|
8
|
+
from .iatoolkit import IAToolkit
|
|
9
9
|
from iatoolkit.services.profile_service import ProfileService
|
|
10
10
|
|
|
11
11
|
def register_core_commands(app):
|
|
@@ -17,26 +17,24 @@ def register_core_commands(app):
|
|
|
17
17
|
"""⚙️ Genera una nueva API key para una compañía ya registrada."""
|
|
18
18
|
try:
|
|
19
19
|
profile_service = IAToolkit.get_instance().get_injector().get(ProfileService)
|
|
20
|
-
click.echo(f"🔑
|
|
20
|
+
click.echo(f"🔑 Generating API-KEY for company: '{company_short_name}'...")
|
|
21
21
|
result = profile_service.new_api_key(company_short_name)
|
|
22
22
|
|
|
23
23
|
if 'error' in result:
|
|
24
24
|
click.echo(f"❌ Error: {result['error']}")
|
|
25
|
-
click.echo("👉
|
|
25
|
+
click.echo("👉 Make sure the company is registered and valid.")
|
|
26
26
|
else:
|
|
27
|
-
click.echo("✅ ¡
|
|
27
|
+
click.echo("✅ ¡Api-key is ready! add this variable to your environment:")
|
|
28
28
|
click.echo(f"IATOOLKIT_API_KEY='{result['api-key']}'")
|
|
29
29
|
except Exception as e:
|
|
30
30
|
logging.exception(e)
|
|
31
|
-
click.echo(f"❌
|
|
31
|
+
click.echo(f"❌ unexpectd error during the configuration: {e}")
|
|
32
32
|
|
|
33
33
|
@app.cli.command("encrypt-key")
|
|
34
34
|
@click.argument("key")
|
|
35
35
|
def encrypt_llm_api_key(key: str):
|
|
36
36
|
from iatoolkit.common.util import Utility
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
38
|
util = IAToolkit.get_instance().get_injector().get(Utility)
|
|
41
39
|
try:
|
|
42
40
|
encrypt_key = util.encrypt_key(key)
|
|
@@ -20,13 +20,13 @@ def register_views(injector, app):
|
|
|
20
20
|
from iatoolkit.views.verify_user_view import VerifyAccountView
|
|
21
21
|
from iatoolkit.views.forgot_password_view import ForgotPasswordView
|
|
22
22
|
from iatoolkit.views.change_password_view import ChangePasswordView
|
|
23
|
-
from iatoolkit.views.
|
|
23
|
+
from iatoolkit.views.load_document_api_view import LoadDocumentApiView
|
|
24
24
|
from iatoolkit.views.user_feedback_api_view import UserFeedbackApiView
|
|
25
25
|
from iatoolkit.views.prompt_api_view import PromptApiView
|
|
26
26
|
from iatoolkit.views.history_api_view import HistoryApiView
|
|
27
27
|
from iatoolkit.views.help_content_api_view import HelpContentApiView
|
|
28
28
|
from iatoolkit.views.profile_api_view import UserLanguageApiView # <-- Importa la nueva vista
|
|
29
|
-
|
|
29
|
+
from iatoolkit.views.embedding_api_view import EmbeddingApiView
|
|
30
30
|
from iatoolkit.views.login_view import LoginView, FinalizeContextView
|
|
31
31
|
from iatoolkit.views.external_login_view import ExternalLoginView, RedeemTokenApiView
|
|
32
32
|
from iatoolkit.views.logout_api_view import LogoutApiView
|
|
@@ -97,7 +97,11 @@ def register_views(injector, app):
|
|
|
97
97
|
app.add_url_rule('/tasks/review/<int:task_id>', view_func=TaskReviewApiView.as_view('tasks-review'))
|
|
98
98
|
|
|
99
99
|
# this endpoint is for upload documents into the vector store (api-key)
|
|
100
|
-
app.add_url_rule('/api/load', view_func=
|
|
100
|
+
app.add_url_rule('/api/load-document', view_func=LoadDocumentApiView.as_view('load-document'), methods=['POST'])
|
|
101
|
+
|
|
102
|
+
# this endpoint is for generating embeddings for a given text
|
|
103
|
+
app.add_url_rule('/<company_short_name>/api/embedding',
|
|
104
|
+
view_func=EmbeddingApiView.as_view('embedding_api'))
|
|
101
105
|
|
|
102
106
|
|
|
103
107
|
@app.route('/download/<path:filename>')
|