iatoolkit 1.4.2__py3-none-any.whl → 1.9.0__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.
- iatoolkit/__init__.py +1 -1
- iatoolkit/common/interfaces/database_provider.py +13 -8
- iatoolkit/common/routes.py +24 -6
- iatoolkit/common/util.py +21 -1
- iatoolkit/infra/connectors/file_connector_factory.py +1 -0
- iatoolkit/infra/connectors/s3_connector.py +4 -2
- iatoolkit/locales/en.yaml +72 -5
- iatoolkit/locales/es.yaml +71 -4
- iatoolkit/repositories/database_manager.py +27 -47
- iatoolkit/repositories/llm_query_repo.py +29 -7
- iatoolkit/repositories/models.py +16 -7
- iatoolkit/services/company_context_service.py +44 -20
- iatoolkit/services/configuration_service.py +227 -71
- iatoolkit/services/dispatcher_service.py +0 -3
- iatoolkit/services/knowledge_base_service.py +14 -1
- iatoolkit/services/load_documents_service.py +10 -3
- iatoolkit/services/prompt_service.py +210 -29
- iatoolkit/services/sql_service.py +17 -0
- iatoolkit/templates/chat.html +2 -1
- iatoolkit/views/categories_api_view.py +71 -0
- iatoolkit/views/configuration_api_view.py +163 -0
- iatoolkit/views/prompt_api_view.py +88 -7
- {iatoolkit-1.4.2.dist-info → iatoolkit-1.9.0.dist-info}/METADATA +1 -1
- {iatoolkit-1.4.2.dist-info → iatoolkit-1.9.0.dist-info}/RECORD +28 -27
- iatoolkit/views/load_company_configuration_api_view.py +0 -49
- {iatoolkit-1.4.2.dist-info → iatoolkit-1.9.0.dist-info}/WHEEL +0 -0
- {iatoolkit-1.4.2.dist-info → iatoolkit-1.9.0.dist-info}/licenses/LICENSE +0 -0
- {iatoolkit-1.4.2.dist-info → iatoolkit-1.9.0.dist-info}/licenses/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-1.4.2.dist-info → iatoolkit-1.9.0.dist-info}/top_level.txt +0 -0
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
#
|
|
4
4
|
# IAToolkit is open source software.
|
|
5
5
|
|
|
6
|
-
from flask import jsonify
|
|
6
|
+
from flask import jsonify, request
|
|
7
7
|
from flask.views import MethodView
|
|
8
8
|
from iatoolkit.services.prompt_service import PromptService
|
|
9
|
+
from iatoolkit.services.profile_service import ProfileService
|
|
10
|
+
from iatoolkit.repositories.llm_query_repo import LLMQueryRepo
|
|
9
11
|
from iatoolkit.services.auth_service import AuthService
|
|
10
12
|
from injector import inject
|
|
11
13
|
import logging
|
|
@@ -15,23 +17,102 @@ class PromptApiView(MethodView):
|
|
|
15
17
|
@inject
|
|
16
18
|
def __init__(self,
|
|
17
19
|
auth_service: AuthService,
|
|
18
|
-
prompt_service: PromptService
|
|
20
|
+
prompt_service: PromptService,
|
|
21
|
+
profile_service: ProfileService,
|
|
22
|
+
llm_query_repo: LLMQueryRepo):
|
|
19
23
|
self.auth_service = auth_service
|
|
20
24
|
self.prompt_service = prompt_service
|
|
25
|
+
self.profile_service = profile_service
|
|
26
|
+
self.llm_query_repo = llm_query_repo
|
|
21
27
|
|
|
22
|
-
def get(self, company_short_name):
|
|
28
|
+
def get(self, company_short_name, prompt_name=None):
|
|
29
|
+
"""
|
|
30
|
+
GET /: Lista el árbol de prompts (Categorías > Prompts).
|
|
31
|
+
GET /<name>: Devuelve detalle completo: metadata + contenido texto.
|
|
32
|
+
"""
|
|
23
33
|
try:
|
|
24
34
|
# get access credentials
|
|
25
35
|
auth_result = self.auth_service.verify(anonymous=True)
|
|
26
36
|
if not auth_result.get("success"):
|
|
27
37
|
return jsonify(auth_result), auth_result.get('status_code')
|
|
28
38
|
|
|
29
|
-
|
|
30
|
-
if
|
|
31
|
-
|
|
39
|
+
company = self.profile_service.get_company_by_short_name(company_short_name)
|
|
40
|
+
if not company:
|
|
41
|
+
return jsonify({"error": "Company not found"}), 404
|
|
42
|
+
|
|
43
|
+
if prompt_name:
|
|
44
|
+
# get the prompt object from database
|
|
45
|
+
prompt_obj = self.llm_query_repo.get_prompt_by_name(company, prompt_name)
|
|
46
|
+
if not prompt_obj:
|
|
47
|
+
return jsonify({"error": "Prompt not found"}), 404
|
|
48
|
+
|
|
49
|
+
# get the prompt content
|
|
50
|
+
content = self.prompt_service.get_prompt_content(company, prompt_name)
|
|
51
|
+
|
|
52
|
+
return jsonify({
|
|
53
|
+
"meta": prompt_obj.to_dict(),
|
|
54
|
+
"content": content
|
|
55
|
+
})
|
|
56
|
+
else:
|
|
57
|
+
# Check for query param to include all prompts (admin view)
|
|
58
|
+
include_all = request.args.get('all', 'false').lower() == 'true'
|
|
59
|
+
|
|
60
|
+
# return prompts based on filter
|
|
61
|
+
return jsonify(self.prompt_service.get_user_prompts(company_short_name, include_all=include_all))
|
|
32
62
|
|
|
33
|
-
return response, 200
|
|
34
63
|
except Exception as e:
|
|
35
64
|
logging.exception(
|
|
36
65
|
f"unexpected error getting company prompts: {e}")
|
|
37
66
|
return jsonify({"error_message": str(e)}), 500
|
|
67
|
+
|
|
68
|
+
def put(self, company_short_name, prompt_name):
|
|
69
|
+
try:
|
|
70
|
+
auth_result = self.auth_service.verify()
|
|
71
|
+
if not auth_result.get("success"):
|
|
72
|
+
return jsonify(auth_result), 401
|
|
73
|
+
|
|
74
|
+
data = request.get_json()
|
|
75
|
+
|
|
76
|
+
# The service handles file magic and YAML sync
|
|
77
|
+
self.prompt_service.save_prompt(company_short_name, prompt_name, data)
|
|
78
|
+
|
|
79
|
+
return jsonify({"status": "success"})
|
|
80
|
+
except Exception as e:
|
|
81
|
+
logging.exception(f"Error saving prompt {prompt_name}: {e}")
|
|
82
|
+
return jsonify({"status": "error", "message": str(e)}), 500
|
|
83
|
+
|
|
84
|
+
def post(self, company_short_name, prompt_name=None):
|
|
85
|
+
"""Creates a new prompt."""
|
|
86
|
+
try:
|
|
87
|
+
auth_result = self.auth_service.verify()
|
|
88
|
+
if not auth_result.get("success"):
|
|
89
|
+
return jsonify(auth_result), 401
|
|
90
|
+
|
|
91
|
+
data = request.get_json()
|
|
92
|
+
# If prompt_name is not in URL, check body
|
|
93
|
+
target_name = prompt_name if prompt_name else data.get('name')
|
|
94
|
+
|
|
95
|
+
if not target_name:
|
|
96
|
+
return jsonify({"status": "error", "message": "Prompt name is required"}), 400
|
|
97
|
+
|
|
98
|
+
# Reuse save_prompt logic which handles create/update
|
|
99
|
+
self.prompt_service.save_prompt(company_short_name, target_name, data)
|
|
100
|
+
|
|
101
|
+
return jsonify({"status": "success"})
|
|
102
|
+
except Exception as e:
|
|
103
|
+
logging.exception(f"Error creating prompt: {e}")
|
|
104
|
+
return jsonify({"status": "error", "message": str(e)}), 500
|
|
105
|
+
|
|
106
|
+
def delete(self, company_short_name, prompt_name):
|
|
107
|
+
"""Deletes a prompt."""
|
|
108
|
+
try:
|
|
109
|
+
auth_result = self.auth_service.verify()
|
|
110
|
+
if not auth_result.get("success"):
|
|
111
|
+
return jsonify(auth_result), 401
|
|
112
|
+
|
|
113
|
+
self.prompt_service.delete_prompt(company_short_name, prompt_name)
|
|
114
|
+
|
|
115
|
+
return jsonify({"status": "success"})
|
|
116
|
+
except Exception as e:
|
|
117
|
+
logging.exception(f"Error deleting prompt {prompt_name}: {e}")
|
|
118
|
+
return jsonify({"status": "error", "message": str(e)}), 500
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
iatoolkit/__init__.py,sha256=
|
|
1
|
+
iatoolkit/__init__.py,sha256=j3fke3NyMBK1zCqgOQRTHLbL0kyTL2JwgKWX-ksCVdU,1425
|
|
2
2
|
iatoolkit/base_company.py,sha256=TzGvdseDpJMi9fl5nbR2pMARgU6pN6ISatFoMJKtNxw,648
|
|
3
3
|
iatoolkit/cli_commands.py,sha256=EDky1QpvHnatzXsd1evYW0OQt-k3JIbPGMc13vgDvy4,1814
|
|
4
4
|
iatoolkit/company_registry.py,sha256=XopFzqIpUxBtQJzdZwu2-c0v98MLT7SP_xLPxn_iENM,4176
|
|
@@ -6,12 +6,12 @@ iatoolkit/core.py,sha256=QKqu-QDrNWunDU9uX96a86kFNv3a_aAxonkpxJptzoE,20885
|
|
|
6
6
|
iatoolkit/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
iatoolkit/common/exceptions.py,sha256=xmNi5Et13pCvCM1so79z36I-7Kdie8nVUAqW9acGs9k,1202
|
|
8
8
|
iatoolkit/common/model_registry.py,sha256=HiFr1FtRKGjpp3YurkiF4l6sGuirigDVL-b_3_R-vlM,5561
|
|
9
|
-
iatoolkit/common/routes.py,sha256=
|
|
9
|
+
iatoolkit/common/routes.py,sha256=h4W16qSlQrzwMWuUit_Ikz2OP4c-TyYD88lxYdLF3_Q,8171
|
|
10
10
|
iatoolkit/common/session_manager.py,sha256=OUYMzT8hN1U-NCUidR5tUAXB1drd8nYTOpo60rUNYeY,532
|
|
11
|
-
iatoolkit/common/util.py,sha256=
|
|
11
|
+
iatoolkit/common/util.py,sha256=NfSuDbzrGVS59fIgqJETYUlD5otMLwAjyp7OVhaMoo8,16310
|
|
12
12
|
iatoolkit/common/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
iatoolkit/common/interfaces/asset_storage.py,sha256=IYXyc73gmwFT7T8RQhC4MymQDW0vGDSEzuKk43w7Ct4,989
|
|
14
|
-
iatoolkit/common/interfaces/database_provider.py,sha256=
|
|
14
|
+
iatoolkit/common/interfaces/database_provider.py,sha256=7ayYuEYRunkm4udoOGumoX9PfdgohBcrj0JDPfyfM00,1156
|
|
15
15
|
iatoolkit/infra/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
16
16
|
iatoolkit/infra/brevo_mail_app.py,sha256=xvy3KxEEgjFpHlIAogP6SU5KXmg3w7lC16nnNmOYU8Y,5323
|
|
17
17
|
iatoolkit/infra/call_service.py,sha256=iRk9VxbXaAwlLIl8fUzGDWIAdzwfsbs1MtP84YeENxg,4929
|
|
@@ -21,32 +21,32 @@ iatoolkit/infra/llm_response.py,sha256=6hSmI909m0Pdgs7UnJHrv_nokbCZLzHpdwBUED6VN
|
|
|
21
21
|
iatoolkit/infra/redis_session_manager.py,sha256=EPr3E_g7LHxn6U4SV5lT_L8WQsAwg8VzA_WIEZ3TwOw,3667
|
|
22
22
|
iatoolkit/infra/connectors/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
23
23
|
iatoolkit/infra/connectors/file_connector.py,sha256=HOjRTFd-WfDOcFyvHncAhnGNZuFgChIwC-P6osPo9ZM,352
|
|
24
|
-
iatoolkit/infra/connectors/file_connector_factory.py,sha256=
|
|
24
|
+
iatoolkit/infra/connectors/file_connector_factory.py,sha256=iCOhklUaYG3YxtJGBYOrLN8spF5mjKu6vyA6nj71FHI,2167
|
|
25
25
|
iatoolkit/infra/connectors/google_cloud_storage_connector.py,sha256=IXpL3HTo7Ft4EQsYiQq5wXRRQK854jzOEB7ZdWjLa4U,2050
|
|
26
26
|
iatoolkit/infra/connectors/google_drive_connector.py,sha256=WR1AlO5-Bl3W89opdja0kKgHTJzVOjTsy3H4SlIvwVg,2537
|
|
27
27
|
iatoolkit/infra/connectors/local_file_connector.py,sha256=hrzIgpMJOTuwTqzlQeTIU_50ZbZ6yl8lcWPv6hMnoqI,1739
|
|
28
|
-
iatoolkit/infra/connectors/s3_connector.py,sha256=
|
|
28
|
+
iatoolkit/infra/connectors/s3_connector.py,sha256=r8bgye8ydMzayAAg5RS22oakpKd-vNw-cSrOCvlwG9g,1209
|
|
29
29
|
iatoolkit/infra/llm_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
30
|
iatoolkit/infra/llm_providers/deepseek_adapter.py,sha256=ui4V05xplUvLWHu7y_dUMKpP4Af-BkZi5tvdgZY16dU,10719
|
|
31
31
|
iatoolkit/infra/llm_providers/gemini_adapter.py,sha256=xjYAMgS4bh7qfpCEv6n92tzpKdjnNBVFfr8GkSrcatM,14555
|
|
32
32
|
iatoolkit/infra/llm_providers/openai_adapter.py,sha256=9SuHYtPJcadWSV_GHfx8DDj9BqkUS3RvLSyDd_ZVB2M,4848
|
|
33
|
-
iatoolkit/locales/en.yaml,sha256=
|
|
34
|
-
iatoolkit/locales/es.yaml,sha256=
|
|
33
|
+
iatoolkit/locales/en.yaml,sha256=f5BEwaOGTiOx00YOLxT5BmOuhLXSKvhhNSz0uM7HqAI,14642
|
|
34
|
+
iatoolkit/locales/es.yaml,sha256=Y5IVLMMoExGRbTN670ajjQeah2xjtdnum9cxtJQPcBE,15593
|
|
35
35
|
iatoolkit/repositories/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
36
|
-
iatoolkit/repositories/database_manager.py,sha256=
|
|
36
|
+
iatoolkit/repositories/database_manager.py,sha256=F6oYrmNp29SrYHJeoe7UIzQuXdZ6fVyRMgdWhGo6oCs,5905
|
|
37
37
|
iatoolkit/repositories/document_repo.py,sha256=5oCrq8pjcyOCBrOc4XYeUvza9nUd0VJ4eNL0g1MQb68,1441
|
|
38
38
|
iatoolkit/repositories/filesystem_asset_repository.py,sha256=ZFr_FpHQD5nszZnJSki6nc-W3PKvmhTxKmVZMd2DUbM,1825
|
|
39
|
-
iatoolkit/repositories/llm_query_repo.py,sha256=
|
|
40
|
-
iatoolkit/repositories/models.py,sha256=
|
|
39
|
+
iatoolkit/repositories/llm_query_repo.py,sha256=sccgM-vYLzasUEf6vuG9WeRNwMHsET4P5F-GQa2tUGg,4951
|
|
40
|
+
iatoolkit/repositories/models.py,sha256=ySnnbN1T2ozE-iYp6KwE42sSbc9FDQP-y7929ZXN7hQ,13721
|
|
41
41
|
iatoolkit/repositories/profile_repo.py,sha256=zhjTTizhkTaCZvWMCZtTzTTTmx0fsjtao2fKurwP1xE,5838
|
|
42
42
|
iatoolkit/repositories/vs_repo.py,sha256=CzT77B7_kWN5p3QhXgdf5X3JkS_02CwFVhxmp0K3rrc,6140
|
|
43
43
|
iatoolkit/services/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
44
44
|
iatoolkit/services/auth_service.py,sha256=B0gTUHDf56WiTnA5viBEvbmf2A6y_6bkAoFlMvu0IWY,7756
|
|
45
45
|
iatoolkit/services/benchmark_service.py,sha256=CdbFYyS3FHFhNzWQEa9ZNjUlmON10DT1nKNbZQ1EUi8,5880
|
|
46
46
|
iatoolkit/services/branding_service.py,sha256=Fsjcos7hGLx2qhoZ9hTaFCgb7x5eYHMDGvXg4mXx8D0,8120
|
|
47
|
-
iatoolkit/services/company_context_service.py,sha256=
|
|
48
|
-
iatoolkit/services/configuration_service.py,sha256=
|
|
49
|
-
iatoolkit/services/dispatcher_service.py,sha256=
|
|
47
|
+
iatoolkit/services/company_context_service.py,sha256=Oqldfdo8MSGv_KB8-4EztUVcqycoabrVLSbfky2n5s4,10435
|
|
48
|
+
iatoolkit/services/configuration_service.py,sha256=ChUWbOnHYOXKAjvdGn7yQIbhKzi8-xtwOoJm_HLbGGY,25098
|
|
49
|
+
iatoolkit/services/dispatcher_service.py,sha256=LPCnDjL6Mp6XfaO2qoSgBXf-_fD53wheniK1CqLx2F0,5146
|
|
50
50
|
iatoolkit/services/document_service.py,sha256=XrAwbNPyhmP94bGdDwHy76Mg_PCg6O2QyZwii1T6kZ8,6469
|
|
51
51
|
iatoolkit/services/embedding_service.py,sha256=ngRnFXEpko-rqpicqbJbVdr91IjSe1jXSYVWprOVlE0,6296
|
|
52
52
|
iatoolkit/services/excel_service.py,sha256=de4fj3klWFWSTdgej8yk0FBuNr1lunyy9cuOyZwl0rI,6221
|
|
@@ -54,16 +54,16 @@ iatoolkit/services/file_processor_service.py,sha256=5xS7zrdL_kpCFXQ5seqNl9tiseI7
|
|
|
54
54
|
iatoolkit/services/history_manager_service.py,sha256=nq1hk39WDbyHG6s8irpIdCS98EBDagF0djH6JHq9WuY,8734
|
|
55
55
|
iatoolkit/services/i18n_service.py,sha256=mR4pS0z56NgZLeSnEvDXiMvVBeOCl5CkUWdYBTVEhyM,3941
|
|
56
56
|
iatoolkit/services/jwt_service.py,sha256=pVoH1rzRwWixpvT3AhFdiE1BDmdbo4KQMyOF0P7tz-Y,2939
|
|
57
|
-
iatoolkit/services/knowledge_base_service.py,sha256=
|
|
57
|
+
iatoolkit/services/knowledge_base_service.py,sha256=UuFWdjobFqwsBuLwAqi4FRNaVuYabSIjSj4vPKxZzLk,17098
|
|
58
58
|
iatoolkit/services/language_service.py,sha256=ktNzj0hrCPm_VMIpWTxFEpEHKQ1lOHOfuhzCbZud2Dc,3428
|
|
59
59
|
iatoolkit/services/license_service.py,sha256=pdl9szSEPbIu2ISl6g-WIR1p4HQu2gSGdAjViKxY6Hg,2751
|
|
60
60
|
iatoolkit/services/llm_client_service.py,sha256=YSvoNKeBQRGL3znMDIyLH2PGZt4ImmYKD_aBlBeS91k,19024
|
|
61
|
-
iatoolkit/services/load_documents_service.py,sha256=
|
|
61
|
+
iatoolkit/services/load_documents_service.py,sha256=WEaPMRxginbsxOXopofPj6FeH-iIrSTlipFFRV20t4I,7069
|
|
62
62
|
iatoolkit/services/mail_service.py,sha256=6Kx1CIbXzAr_ucoqwqTlhhwE6y2Jw64eNDjXysaZP-c,8297
|
|
63
63
|
iatoolkit/services/profile_service.py,sha256=mUXW5dwFF4SBH04adQuoSj-E0FmuLDt_VcPo9oxdr1M,23680
|
|
64
|
-
iatoolkit/services/prompt_service.py,sha256=
|
|
64
|
+
iatoolkit/services/prompt_service.py,sha256=nA_juwwlrKoonpl3_NJ3kWJ-p5wbw5fiY60Zwk2Oa5g,22125
|
|
65
65
|
iatoolkit/services/query_service.py,sha256=aS2-NtEMdu-QViw58d-g9iZI1j3KZIJb0xrN8N_c__U,20406
|
|
66
|
-
iatoolkit/services/sql_service.py,sha256=
|
|
66
|
+
iatoolkit/services/sql_service.py,sha256=nafxpDdv1AbOYMeHzoiD6G8V64TPMniUlLhrJ0J_KOU,7802
|
|
67
67
|
iatoolkit/services/tool_service.py,sha256=FQuplPsgs1AdyOk2pxUBkPIvAvUqJU1ElOpOWz5wkr8,10002
|
|
68
68
|
iatoolkit/services/user_feedback_service.py,sha256=KbjMjl0CDF7WpPHioJ3sqQVwocjfq_cisrpeqYUqtas,5361
|
|
69
69
|
iatoolkit/services/user_session_context_service.py,sha256=RSv_NxOSTVPA6nFLiZKSIuUWa59cmZWBwiN_TWSljBo,9074
|
|
@@ -95,7 +95,7 @@ iatoolkit/templates/_company_header.html,sha256=L1QtrMpqYXALqtinCa3WhG4CrgHKLObl
|
|
|
95
95
|
iatoolkit/templates/_login_widget.html,sha256=qziV70-n7SwC11rL4cU1LenJM83jYvuyw2xSz6OORJA,2063
|
|
96
96
|
iatoolkit/templates/base.html,sha256=sRHUnHaKIycLRKZ_PQOTb88kSBC6kigzxlm60vpXj1I,3434
|
|
97
97
|
iatoolkit/templates/change_password.html,sha256=p0GWZ9gldluYQM8OPSz2Q4CYhU8UJmb-72iz_Sl_6Ho,3485
|
|
98
|
-
iatoolkit/templates/chat.html,sha256=
|
|
98
|
+
iatoolkit/templates/chat.html,sha256=8tLQlpCS7Nd1-07kefIZzv4S5Hcd1UIhQmC5P_Z760s,15685
|
|
99
99
|
iatoolkit/templates/chat_modals.html,sha256=x0Do7I7X9cfgZFHSAwWreIN55nYPCpZK7PTBxGXjrYY,8501
|
|
100
100
|
iatoolkit/templates/error.html,sha256=4aT6cIYQUILciekAceHEiUuZxcAqkmNPUMnB9CD4BNA,1778
|
|
101
101
|
iatoolkit/templates/forgot_password.html,sha256=XLVMmLJK5SAXmPqIH_OyTlSbu5QTAdekO6ggzfcNup0,2376
|
|
@@ -103,8 +103,10 @@ iatoolkit/templates/onboarding_shell.html,sha256=GODHz4JrNyZyf9sPq7GNKMoRrLmKn6k
|
|
|
103
103
|
iatoolkit/templates/signup.html,sha256=kvV9B8M99zMDj4y9up-K5ChzOznSxzZTX4jPShGRBvI,4316
|
|
104
104
|
iatoolkit/views/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
105
105
|
iatoolkit/views/base_login_view.py,sha256=l45msQUrLGxxxZrSb5l7tnTLLQyIoPTu4TgbkHBvVlc,3981
|
|
106
|
+
iatoolkit/views/categories_api_view.py,sha256=xjQfemyW5lx0f1sCg_7XbHlN2L1f8bpFiO4VLJEmhEs,3006
|
|
106
107
|
iatoolkit/views/change_password_view.py,sha256=TXFvvtNrR37yrNAHYzcMSSIkV4-MIzmIpwbPffaJJyE,4957
|
|
107
108
|
iatoolkit/views/chat_view.py,sha256=QNlC0n1hxjWbI3wyLhV6D-U2kJZkIqClNg94iQP4PrA,3534
|
|
109
|
+
iatoolkit/views/configuration_api_view.py,sha256=RNbgbet15ceFqEvyeORW6AILUN_1GDDdmHR_WYl-NLU,6322
|
|
108
110
|
iatoolkit/views/embedding_api_view.py,sha256=9n5utihq8zHiG0V2sVCOYQ72wOKa4denqE951gqaJWo,2371
|
|
109
111
|
iatoolkit/views/forgot_password_view.py,sha256=C4eJe9GmGrl6M3bTt_anwuPQib9ouXZtKYp6kB2xBeU,3380
|
|
110
112
|
iatoolkit/views/help_content_api_view.py,sha256=8EUw2iSE6X-Lm2dGlYZxSp-29HzaAGwD3CpL4Otqp5k,2011
|
|
@@ -112,12 +114,11 @@ iatoolkit/views/history_api_view.py,sha256=oNYfo-fZbz4sY6VpE_goaCFQyH2k9IX85VhPo
|
|
|
112
114
|
iatoolkit/views/home_view.py,sha256=GaU2-qyTnE8jE1ejdNjHW3azo72X_Awhp1y1Zx9BXRg,2662
|
|
113
115
|
iatoolkit/views/init_context_api_view.py,sha256=axfNno8E1v4dCNuXNkdV1XpDZtypICj48hW3cRyl_eA,2961
|
|
114
116
|
iatoolkit/views/llmquery_api_view.py,sha256=ohlYmFcvhvZL2BTMeCzd7ZPeTBzIPcIZbC9CRWqQM70,2290
|
|
115
|
-
iatoolkit/views/load_company_configuration_api_view.py,sha256=ufX_jrSO7NTUsgNJNrAXxFKmyp2JyNYoplMUm4biULs,1902
|
|
116
117
|
iatoolkit/views/load_document_api_view.py,sha256=RaO4KRz19uSOv3LL7Fn8FJSLzHtRkPAIYRPU-yT1nxQ,2485
|
|
117
118
|
iatoolkit/views/login_view.py,sha256=NKPjR9cCOsw7FhOfXCM32m6veKxRdLhsc0H7DLc5_ug,7517
|
|
118
119
|
iatoolkit/views/logout_api_view.py,sha256=7c0rL5sLTuoRPqQs73wlH_7eb3--S6GLcr7Yu4hNOYU,2035
|
|
119
120
|
iatoolkit/views/profile_api_view.py,sha256=qhlmhyygIs5h-OyNDwq1uGUS8S-GxB2zOYY51Hs5prY,1645
|
|
120
|
-
iatoolkit/views/prompt_api_view.py,sha256=
|
|
121
|
+
iatoolkit/views/prompt_api_view.py,sha256=U6N7kwf9oI8t0iAnA0XWZUkTKXX9hPtfj-0MFpX13xg,4725
|
|
121
122
|
iatoolkit/views/rag_api_view.py,sha256=zsEdsSMoxBrX3jGFoKWB7oUm_Sp1x6lh2tAy-g_CUiI,8389
|
|
122
123
|
iatoolkit/views/root_redirect_view.py,sha256=t7tqiyJAPffzIuQVwnfgIw3Bo51qkegyMmBTfChsrJk,833
|
|
123
124
|
iatoolkit/views/signup_view.py,sha256=83jgbAuOAETID88TC8h-wCszkkEaFygCH6tTj7XyZYI,4261
|
|
@@ -125,9 +126,9 @@ iatoolkit/views/static_page_view.py,sha256=V0oTybQ5lFo3hp5xOKau-yMO8vK8NCM6zWiwV
|
|
|
125
126
|
iatoolkit/views/user_feedback_api_view.py,sha256=QOTBtpNqYAmewXDgVAoaIprnVjvf1xM0ExWxSFp3ICI,2098
|
|
126
127
|
iatoolkit/views/users_api_view.py,sha256=hVR6rxLNyhGiXhCIHvttUeSinH071Pyk-2_Fcm-v2TM,1139
|
|
127
128
|
iatoolkit/views/verify_user_view.py,sha256=Uc9P2wiRjZ7pMRTjWUn8Y-p0DFqw_AwNYQsdbAwhbg8,2659
|
|
128
|
-
iatoolkit-1.
|
|
129
|
-
iatoolkit-1.
|
|
130
|
-
iatoolkit-1.
|
|
131
|
-
iatoolkit-1.
|
|
132
|
-
iatoolkit-1.
|
|
133
|
-
iatoolkit-1.
|
|
129
|
+
iatoolkit-1.9.0.dist-info/licenses/LICENSE,sha256=5tOLQdjoCvSXEx_7Lr4bSab3ha4NSwzamvua0fwCXi8,1075
|
|
130
|
+
iatoolkit-1.9.0.dist-info/licenses/LICENSE_COMMUNITY.md,sha256=9lVNcggPNUnleMF3_h3zu9PbNTeaRqB1tHAbiBLQJZU,566
|
|
131
|
+
iatoolkit-1.9.0.dist-info/METADATA,sha256=yQmAabZkjlzXWzkNTCJz_mZr0CT4whp5fJ7Cztpkn3E,8395
|
|
132
|
+
iatoolkit-1.9.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
133
|
+
iatoolkit-1.9.0.dist-info/top_level.txt,sha256=V_w4QvDx0b1RXiy8zTCrD1Bp7AZkFe3_O0-9fMiwogg,10
|
|
134
|
+
iatoolkit-1.9.0.dist-info/RECORD,,
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2024 Fernando Libedinsky
|
|
2
|
-
# Product: IAToolkit
|
|
3
|
-
#
|
|
4
|
-
# IAToolkit is open source software.
|
|
5
|
-
|
|
6
|
-
from flask.views import MethodView
|
|
7
|
-
from flask import redirect, url_for, jsonify, request, g
|
|
8
|
-
from injector import inject
|
|
9
|
-
from iatoolkit.services.auth_service import AuthService
|
|
10
|
-
from iatoolkit.services.profile_service import ProfileService
|
|
11
|
-
from iatoolkit.services.configuration_service import ConfigurationService
|
|
12
|
-
import logging
|
|
13
|
-
|
|
14
|
-
class LoadCompanyConfigurationApiView(MethodView):
|
|
15
|
-
@inject
|
|
16
|
-
def __init__(self,
|
|
17
|
-
configuration_service: ConfigurationService,
|
|
18
|
-
profile_service: ProfileService,
|
|
19
|
-
auth_service: AuthService):
|
|
20
|
-
self.configuration_service = configuration_service
|
|
21
|
-
self.profile_service = profile_service
|
|
22
|
-
self.auth_service = auth_service
|
|
23
|
-
|
|
24
|
-
def get(self, company_short_name: str = None):
|
|
25
|
-
try:
|
|
26
|
-
# 1. Get the authenticated user's
|
|
27
|
-
auth_result = self.auth_service.verify(anonymous=True)
|
|
28
|
-
if not auth_result.get("success"):
|
|
29
|
-
return jsonify(auth_result), auth_result.get("status_code", 401)
|
|
30
|
-
|
|
31
|
-
company = self.profile_service.get_company_by_short_name(company_short_name)
|
|
32
|
-
if not company:
|
|
33
|
-
return jsonify({"error": "company not found."}), 404
|
|
34
|
-
|
|
35
|
-
config, errors = self.configuration_service.load_configuration(company_short_name)
|
|
36
|
-
if config:
|
|
37
|
-
self.configuration_service.register_data_sources(company_short_name)
|
|
38
|
-
|
|
39
|
-
# this is fo avoid serialization issues
|
|
40
|
-
if 'company' in config:
|
|
41
|
-
config.pop('company')
|
|
42
|
-
|
|
43
|
-
status_code = 200 if not errors else 400
|
|
44
|
-
return {'config': config, 'errors': [errors]}, status_code
|
|
45
|
-
except Exception as e:
|
|
46
|
-
logging.exception(f"Unexpected error: {e}")
|
|
47
|
-
return {'status': 'error'}, 500
|
|
48
|
-
|
|
49
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|