iatoolkit 0.22.1__py3-none-any.whl → 0.50.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.
Potentially problematic release.
This version of iatoolkit might be problematic. Click here for more details.
- iatoolkit/common/routes.py +31 -31
- iatoolkit/common/session_manager.py +0 -1
- iatoolkit/common/util.py +0 -21
- iatoolkit/iatoolkit.py +5 -18
- iatoolkit/infra/llm_client.py +3 -5
- iatoolkit/infra/redis_session_manager.py +48 -2
- iatoolkit/repositories/models.py +1 -2
- iatoolkit/services/auth_service.py +74 -0
- iatoolkit/services/dispatcher_service.py +12 -21
- iatoolkit/services/excel_service.py +15 -15
- iatoolkit/services/history_service.py +2 -11
- iatoolkit/services/profile_service.py +83 -25
- iatoolkit/services/query_service.py +132 -82
- iatoolkit/services/tasks_service.py +1 -1
- iatoolkit/services/user_feedback_service.py +3 -6
- iatoolkit/services/user_session_context_service.py +112 -54
- iatoolkit/static/js/chat_feedback.js +1 -1
- iatoolkit/static/js/chat_history.js +1 -5
- iatoolkit/static/js/chat_main.js +1 -1
- iatoolkit/static/styles/landing_page.css +62 -2
- iatoolkit/system_prompts/query_main.prompt +3 -12
- iatoolkit/templates/_login_widget.html +6 -8
- iatoolkit/templates/chat.html +78 -4
- iatoolkit/templates/error.html +1 -1
- iatoolkit/templates/index.html +38 -11
- iatoolkit/templates/{home.html → login_test.html} +11 -51
- iatoolkit/views/external_login_view.py +50 -111
- iatoolkit/views/{file_store_view.py → file_store_api_view.py} +4 -4
- iatoolkit/views/history_api_view.py +52 -0
- iatoolkit/views/init_context_api_view.py +62 -0
- iatoolkit/views/llmquery_api_view.py +50 -0
- iatoolkit/views/llmquery_web_view.py +38 -0
- iatoolkit/views/{home_view.py → login_test_view.py} +2 -5
- iatoolkit/views/login_view.py +79 -56
- iatoolkit/views/{prompt_view.py → prompt_api_view.py} +4 -4
- iatoolkit/views/{user_feedback_view.py → user_feedback_api_view.py} +16 -19
- {iatoolkit-0.22.1.dist-info → iatoolkit-0.50.0.dist-info}/METADATA +2 -2
- {iatoolkit-0.22.1.dist-info → iatoolkit-0.50.0.dist-info}/RECORD +40 -41
- iatoolkit/common/auth.py +0 -200
- iatoolkit/templates/login.html +0 -43
- iatoolkit/views/download_file_view.py +0 -58
- iatoolkit/views/history_view.py +0 -57
- iatoolkit/views/init_context_view.py +0 -35
- iatoolkit/views/llmquery_view.py +0 -65
- {iatoolkit-0.22.1.dist-info → iatoolkit-0.50.0.dist-info}/WHEEL +0 -0
- {iatoolkit-0.22.1.dist-info → iatoolkit-0.50.0.dist-info}/top_level.txt +0 -0
iatoolkit/views/login_view.py
CHANGED
|
@@ -10,73 +10,102 @@ from iatoolkit.services.profile_service import ProfileService
|
|
|
10
10
|
from iatoolkit.services.prompt_manager_service import PromptService
|
|
11
11
|
from iatoolkit.services.query_service import QueryService
|
|
12
12
|
import os
|
|
13
|
-
from iatoolkit.common.session_manager import SessionManager
|
|
14
13
|
from iatoolkit.services.branding_service import BrandingService
|
|
15
14
|
from iatoolkit.services.onboarding_service import OnboardingService
|
|
16
15
|
|
|
16
|
+
|
|
17
17
|
class InitiateLoginView(MethodView):
|
|
18
18
|
"""
|
|
19
|
-
Handles the initial
|
|
20
|
-
Authenticates
|
|
21
|
-
|
|
19
|
+
Handles the initial part of the login process.
|
|
20
|
+
Authenticates, decides the login path (fast or slow), and renders
|
|
21
|
+
either the chat page directly or the loading shell.
|
|
22
22
|
"""
|
|
23
|
+
|
|
23
24
|
@inject
|
|
24
25
|
def __init__(self,
|
|
25
26
|
profile_service: ProfileService,
|
|
26
27
|
branding_service: BrandingService,
|
|
27
|
-
onboarding_service: OnboardingService
|
|
28
|
+
onboarding_service: OnboardingService,
|
|
29
|
+
query_service: QueryService,
|
|
30
|
+
prompt_service: PromptService):
|
|
28
31
|
self.profile_service = profile_service
|
|
29
32
|
self.branding_service = branding_service
|
|
30
33
|
self.onboarding_service = onboarding_service
|
|
34
|
+
self.query_service = query_service
|
|
35
|
+
self.prompt_service = prompt_service
|
|
31
36
|
|
|
32
37
|
def post(self, company_short_name: str):
|
|
33
|
-
# get company info
|
|
34
38
|
company = self.profile_service.get_company_by_short_name(company_short_name)
|
|
35
39
|
if not company:
|
|
36
|
-
return render_template('error.html',
|
|
37
|
-
message="Empresa no encontrada"), 404
|
|
40
|
+
return render_template('error.html', message="Empresa no encontrada"), 404
|
|
38
41
|
|
|
39
42
|
email = request.form.get('email')
|
|
40
43
|
password = request.form.get('password')
|
|
41
44
|
|
|
42
|
-
# 1.
|
|
43
|
-
|
|
45
|
+
# 1. Authenticate user and create the unified session.
|
|
46
|
+
auth_response = self.profile_service.login(
|
|
44
47
|
company_short_name=company_short_name,
|
|
45
48
|
email=email,
|
|
46
49
|
password=password
|
|
47
50
|
)
|
|
48
51
|
|
|
49
|
-
if not
|
|
52
|
+
if not auth_response['success']:
|
|
50
53
|
return render_template(
|
|
51
|
-
'
|
|
54
|
+
'index.html',
|
|
52
55
|
company_short_name=company_short_name,
|
|
53
56
|
company=company,
|
|
54
|
-
form_data={
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
# 2.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
target_url = url_for('login',
|
|
65
|
-
company_short_name=company_short_name,
|
|
66
|
-
_external=True)
|
|
67
|
-
|
|
68
|
-
# 3. Render the shell page, passing the URL for the heavy lifting
|
|
69
|
-
# The shell's AJAX call will now be authenticated via the session cookie.
|
|
70
|
-
return render_template(
|
|
71
|
-
"onboarding_shell.html",
|
|
72
|
-
iframe_src_url=target_url,
|
|
73
|
-
external_user_id='',
|
|
74
|
-
branding=branding_data,
|
|
75
|
-
onboarding_cards=onboarding_cards
|
|
57
|
+
form_data={"email": email},
|
|
58
|
+
alert_message=auth_response["message"]
|
|
59
|
+
), 400
|
|
60
|
+
|
|
61
|
+
user_identifier = auth_response['user_identifier']
|
|
62
|
+
|
|
63
|
+
# 2. PREPARE and DECIDE: Call prepare_context to determine the path.
|
|
64
|
+
prep_result = self.query_service.prepare_context(
|
|
65
|
+
company_short_name=company_short_name, user_identifier=user_identifier
|
|
76
66
|
)
|
|
77
67
|
|
|
68
|
+
if prep_result.get('rebuild_needed'):
|
|
69
|
+
# --- SLOW PATH: Context rebuild is needed ---
|
|
70
|
+
# Render the shell, which will call LoginView for the heavy lifting.
|
|
71
|
+
branding_data = self.branding_service.get_company_branding(company)
|
|
72
|
+
onboarding_cards = self.onboarding_service.get_onboarding_cards(company)
|
|
73
|
+
target_url = url_for('login', company_short_name=company_short_name, _external=True)
|
|
74
|
+
|
|
75
|
+
return render_template(
|
|
76
|
+
"onboarding_shell.html",
|
|
77
|
+
iframe_src_url=target_url,
|
|
78
|
+
branding=branding_data,
|
|
79
|
+
onboarding_cards=onboarding_cards
|
|
80
|
+
)
|
|
81
|
+
else:
|
|
82
|
+
# --- FAST PATH: Context is already cached ---
|
|
83
|
+
# Render chat.html directly.
|
|
84
|
+
try:
|
|
85
|
+
session_info = self.profile_service.get_current_session_info()
|
|
86
|
+
user_profile = session_info.get('profile', {})
|
|
87
|
+
|
|
88
|
+
prompts = self.prompt_service.get_user_prompts(company_short_name)
|
|
89
|
+
branding_data = self.branding_service.get_company_branding(company)
|
|
90
|
+
|
|
91
|
+
return render_template("chat.html",
|
|
92
|
+
user_is_local=user_profile.get('user_is_local'),
|
|
93
|
+
user_email=user_profile.get('user_email'),
|
|
94
|
+
branding=branding_data,
|
|
95
|
+
prompts=prompts,
|
|
96
|
+
iatoolkit_base_url=os.getenv('IATOOLKIT_BASE_URL'),
|
|
97
|
+
), 200
|
|
98
|
+
except Exception as e:
|
|
99
|
+
return render_template("error.html", company=company, company_short_name=company_short_name,
|
|
100
|
+
message=f"Error in fast path: {str(e)}"), 500
|
|
101
|
+
|
|
78
102
|
|
|
79
103
|
class LoginView(MethodView):
|
|
104
|
+
"""
|
|
105
|
+
Handles the heavy-lifting part of the login, ONLY triggered by the iframe
|
|
106
|
+
in the slow path (when context rebuild is needed).
|
|
107
|
+
"""
|
|
108
|
+
|
|
80
109
|
@inject
|
|
81
110
|
def __init__(self,
|
|
82
111
|
profile_service: ProfileService,
|
|
@@ -89,41 +118,35 @@ class LoginView(MethodView):
|
|
|
89
118
|
self.branding_service = branding_service
|
|
90
119
|
|
|
91
120
|
def get(self, company_short_name: str):
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if not user_id:
|
|
121
|
+
# 1. Use the new centralized method to get session info.
|
|
122
|
+
session_info = self.profile_service.get_current_session_info()
|
|
123
|
+
user_identifier = session_info.get('user_identifier')
|
|
124
|
+
user_profile = session_info.get('profile', {})
|
|
125
|
+
|
|
126
|
+
if not user_identifier:
|
|
99
127
|
# This can happen if the session expires or is invalid.
|
|
100
|
-
|
|
101
|
-
return redirect(url_for('home', company_short_name=company_short_name))
|
|
128
|
+
return redirect(url_for('login_page', company_short_name=company_short_name))
|
|
102
129
|
|
|
103
|
-
user_email = SessionManager.get('user')['email']
|
|
104
130
|
company = self.profile_service.get_company_by_short_name(company_short_name)
|
|
105
131
|
if not company:
|
|
106
132
|
return render_template('error.html', message="Empresa no encontrada"), 404
|
|
107
133
|
|
|
108
134
|
try:
|
|
109
|
-
# 2.
|
|
110
|
-
|
|
135
|
+
# 2. Finalize the context rebuild (the potentially long-running task).
|
|
136
|
+
# We pass the identifier, and the service resolves if it's local or external.
|
|
137
|
+
self.query_service.finalize_context_rebuild(
|
|
111
138
|
company_short_name=company_short_name,
|
|
112
|
-
|
|
139
|
+
user_identifier=user_identifier
|
|
113
140
|
)
|
|
114
141
|
|
|
115
|
-
# 3. Get the
|
|
142
|
+
# 3. Get the necessary data for the chat page.
|
|
116
143
|
prompts = self.prompt_service.get_user_prompts(company_short_name)
|
|
117
|
-
|
|
118
|
-
# 4. Get the branding data.
|
|
119
144
|
branding_data = self.branding_service.get_company_branding(company)
|
|
120
145
|
|
|
121
|
-
#
|
|
146
|
+
# 4. Render the final chat page.
|
|
122
147
|
return render_template("chat.html",
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
session_jwt=None, # No JWT in this flow
|
|
126
|
-
user_email=user_email,
|
|
148
|
+
user_is_local=user_profile.get('user_is_local'),
|
|
149
|
+
user_email=user_profile.get('user_email'),
|
|
127
150
|
branding=branding_data,
|
|
128
151
|
prompts=prompts,
|
|
129
152
|
iatoolkit_base_url=os.getenv('IATOOLKIT_BASE_URL'),
|
|
@@ -133,4 +156,4 @@ class LoginView(MethodView):
|
|
|
133
156
|
return render_template("error.html",
|
|
134
157
|
company=company,
|
|
135
158
|
company_short_name=company_short_name,
|
|
136
|
-
message="
|
|
159
|
+
message=f"An unexpected error occurred during context loading: {str(e)}"), 500
|
|
@@ -6,22 +6,22 @@
|
|
|
6
6
|
from flask import jsonify
|
|
7
7
|
from flask.views import MethodView
|
|
8
8
|
from iatoolkit.services.prompt_manager_service import PromptService
|
|
9
|
-
from iatoolkit.
|
|
9
|
+
from iatoolkit.services.auth_service import AuthService
|
|
10
10
|
from injector import inject
|
|
11
11
|
import logging
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
class
|
|
14
|
+
class PromptApiView(MethodView):
|
|
15
15
|
@inject
|
|
16
16
|
def __init__(self,
|
|
17
|
-
iauthentication:
|
|
17
|
+
iauthentication: AuthService,
|
|
18
18
|
prompt_service: PromptService ):
|
|
19
19
|
self.iauthentication = iauthentication
|
|
20
20
|
self.prompt_service = prompt_service
|
|
21
21
|
|
|
22
22
|
def get(self, company_short_name):
|
|
23
23
|
# get access credentials
|
|
24
|
-
iaut = self.iauthentication.verify(
|
|
24
|
+
iaut = self.iauthentication.verify()
|
|
25
25
|
if not iaut.get("success"):
|
|
26
26
|
return jsonify(iaut), 401
|
|
27
27
|
|
|
@@ -3,32 +3,36 @@
|
|
|
3
3
|
#
|
|
4
4
|
# IAToolkit is open source software.
|
|
5
5
|
|
|
6
|
-
from flask import request, jsonify
|
|
6
|
+
from flask import request, jsonify
|
|
7
7
|
from flask.views import MethodView
|
|
8
8
|
from iatoolkit.services.user_feedback_service import UserFeedbackService
|
|
9
|
-
from iatoolkit.
|
|
9
|
+
from iatoolkit.services.auth_service import AuthService
|
|
10
10
|
from injector import inject
|
|
11
11
|
import logging
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
class
|
|
14
|
+
class UserFeedbackApiView(MethodView):
|
|
15
15
|
@inject
|
|
16
16
|
def __init__(self,
|
|
17
|
-
iauthentication:
|
|
17
|
+
iauthentication: AuthService,
|
|
18
18
|
user_feedback_service: UserFeedbackService ):
|
|
19
19
|
self.iauthentication = iauthentication
|
|
20
20
|
self.user_feedback_service = user_feedback_service
|
|
21
21
|
|
|
22
22
|
def post(self, company_short_name):
|
|
23
|
-
data = request.get_json()
|
|
24
|
-
if not data:
|
|
25
|
-
return jsonify({"error_message": "Cuerpo de la solicitud JSON inválido o faltante"}), 400
|
|
26
|
-
|
|
27
23
|
# get access credentials
|
|
28
|
-
iaut = self.iauthentication.verify(
|
|
24
|
+
iaut = self.iauthentication.verify()
|
|
29
25
|
if not iaut.get("success"):
|
|
30
26
|
return jsonify(iaut), 401
|
|
31
27
|
|
|
28
|
+
user_identifier = iaut.get('user_identifier')
|
|
29
|
+
if not user_identifier:
|
|
30
|
+
return jsonify({"error": "Could not identify user from session or payload"}), 400
|
|
31
|
+
|
|
32
|
+
data = request.get_json()
|
|
33
|
+
if not data:
|
|
34
|
+
return jsonify({"error_message": "Cuerpo de la solicitud JSON inválido o faltante"}), 402
|
|
35
|
+
|
|
32
36
|
message = data.get("message")
|
|
33
37
|
if not message:
|
|
34
38
|
return jsonify({"error_message": "Falta el mensaje de feedback"}), 400
|
|
@@ -45,15 +49,11 @@ class UserFeedbackView(MethodView):
|
|
|
45
49
|
if not rating:
|
|
46
50
|
return jsonify({"error_message": "Falta la calificación"}), 400
|
|
47
51
|
|
|
48
|
-
external_user_id = data.get("external_user_id")
|
|
49
|
-
local_user_id = data.get("local_user_id", 0)
|
|
50
|
-
|
|
51
52
|
try:
|
|
52
53
|
response = self.user_feedback_service.new_feedback(
|
|
53
54
|
company_short_name=company_short_name,
|
|
54
55
|
message=message,
|
|
55
|
-
|
|
56
|
-
local_user_id=local_user_id,
|
|
56
|
+
user_identifier=user_identifier,
|
|
57
57
|
space=space,
|
|
58
58
|
type=type,
|
|
59
59
|
rating=rating
|
|
@@ -66,9 +66,6 @@ class UserFeedbackView(MethodView):
|
|
|
66
66
|
except Exception as e:
|
|
67
67
|
logging.exception(
|
|
68
68
|
f"Error inesperado al procesar feedback para company {company_short_name}: {e}")
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
message="Ha ocurrido un error inesperado."), 500
|
|
72
|
-
else:
|
|
73
|
-
return jsonify({"error_message": str(e)}), 500
|
|
69
|
+
|
|
70
|
+
return jsonify({"error_message": str(e)}), 500
|
|
74
71
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iatoolkit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.50.0
|
|
4
4
|
Summary: IAToolkit
|
|
5
5
|
Author: Fernando Libedinsky
|
|
6
6
|
License-Expression: MIT
|
|
7
|
-
Requires-Python: >=3.
|
|
7
|
+
Requires-Python: >=3.12
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
Requires-Dist: aiohappyeyeballs==2.4.4
|
|
10
10
|
Requires-Dist: aiohttp==3.11.9
|
|
@@ -2,23 +2,22 @@ iatoolkit/__init__.py,sha256=4PWjMJjktixtrxF6BY405qyA50Sv967kEP2x-oil6qk,1120
|
|
|
2
2
|
iatoolkit/base_company.py,sha256=uFJmy77LPAceVqkTeuJqo15-auDiq4aTwvC_bbBD0mQ,4607
|
|
3
3
|
iatoolkit/cli_commands.py,sha256=G5L9xQXZ0lVFXQWBaE_KEZHyfuiT6PL1nTQRoSdnBzc,2302
|
|
4
4
|
iatoolkit/company_registry.py,sha256=tduqt3oV8iDX_IB1eA7KIgvIxE4edTcy-3qZIXh3Lzw,2549
|
|
5
|
-
iatoolkit/iatoolkit.py,sha256=
|
|
5
|
+
iatoolkit/iatoolkit.py,sha256=I6IsmzFAUDwTY1fGqozQqjTzPQK1OazE3kxqoddI5PU,16946
|
|
6
6
|
iatoolkit/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
iatoolkit/common/auth.py,sha256=83WsyHF7TdjPYfAA-da-waizlWLIqSTx-2z4pI4LAnw,8471
|
|
8
7
|
iatoolkit/common/exceptions.py,sha256=EXx40n5htp7UiOM6P1xfJ9U6NMcADqm62dlFaKz7ICU,1154
|
|
9
|
-
iatoolkit/common/routes.py,sha256=
|
|
10
|
-
iatoolkit/common/session_manager.py,sha256=
|
|
11
|
-
iatoolkit/common/util.py,sha256=
|
|
8
|
+
iatoolkit/common/routes.py,sha256=VrBMUP0HIEuxrYgtAHfup6a3hXrpoUU85JYqOx2aW4g,6022
|
|
9
|
+
iatoolkit/common/session_manager.py,sha256=UeKfD15bcEA3P5e0WSURfotLqpsiIMp3AXxAMhtgHs0,471
|
|
10
|
+
iatoolkit/common/util.py,sha256=w9dTd3csK0gKtFSp-a4t7XmCPZiYDhiON92uXRbTT8A,14624
|
|
12
11
|
iatoolkit/infra/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
13
12
|
iatoolkit/infra/call_service.py,sha256=iRk9VxbXaAwlLIl8fUzGDWIAdzwfsbs1MtP84YeENxg,4929
|
|
14
13
|
iatoolkit/infra/gemini_adapter.py,sha256=kXV-t5i9GmWBafUPX2kAyiqvcT7GPoxHylcCUWG_c_U,15051
|
|
15
14
|
iatoolkit/infra/google_chat_app.py,sha256=_uKWxeacHH6C5a4FVx0YZjBn1tL-x_MIQV9gqgWGAjo,1937
|
|
16
|
-
iatoolkit/infra/llm_client.py,sha256=
|
|
15
|
+
iatoolkit/infra/llm_client.py,sha256=Twn_e-H8Q305PqMtqSAafR1w9So6M_YUx5jAhWZUBJ4,18562
|
|
17
16
|
iatoolkit/infra/llm_proxy.py,sha256=cHyNxUpVE4UDoWUfvSGfGCrIUFPTrpWZOixELQTsGFY,5744
|
|
18
17
|
iatoolkit/infra/llm_response.py,sha256=YUUQPBHzmP3Ce6-t0kKMRIpowvh7de1odSoefEByIvI,904
|
|
19
18
|
iatoolkit/infra/mail_app.py,sha256=PLGZdEs7LQ_9bmMRRxz0iqQdNa4xToAFyf9tg75wK8U,6103
|
|
20
19
|
iatoolkit/infra/openai_adapter.py,sha256=Z1JSi3Tw2mXQ7JAh6yR79Ri_9yZJcJpcZLOLL3Mfda8,3530
|
|
21
|
-
iatoolkit/infra/redis_session_manager.py,sha256=
|
|
20
|
+
iatoolkit/infra/redis_session_manager.py,sha256=EPr3E_g7LHxn6U4SV5lT_L8WQsAwg8VzA_WIEZ3TwOw,3667
|
|
22
21
|
iatoolkit/infra/connectors/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
23
22
|
iatoolkit/infra/connectors/file_connector.py,sha256=HOjRTFd-WfDOcFyvHncAhnGNZuFgChIwC-P6osPo9ZM,352
|
|
24
23
|
iatoolkit/infra/connectors/file_connector_factory.py,sha256=3qvyfH4ZHKuiMxJFkawOxhW2-TGKKtsBYHgoPpZMuKU,2118
|
|
@@ -30,30 +29,31 @@ iatoolkit/repositories/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCL
|
|
|
30
29
|
iatoolkit/repositories/database_manager.py,sha256=UaU7k3s7IRuXhCHTy9GoCeP9K1ad0LBdj_n1a_QjGS0,3108
|
|
31
30
|
iatoolkit/repositories/document_repo.py,sha256=Y7bF1kZB1HWJsAGjWdF7P2aVYeTYNufq9ngQXp7mDkY,1124
|
|
32
31
|
iatoolkit/repositories/llm_query_repo.py,sha256=YT_t7cYGQk8rwzH_17-28aTzO-e2jUfa2rvXy8tugvA,3612
|
|
33
|
-
iatoolkit/repositories/models.py,sha256=
|
|
32
|
+
iatoolkit/repositories/models.py,sha256=3YbIJXNMZiTkMbPyiSOiyzqUKEQF0JIfN4VSWYzwr44,13146
|
|
34
33
|
iatoolkit/repositories/profile_repo.py,sha256=vwDuVec9IDUCSyM7ecf790oqdpV36cpM2bgqP8POkHQ,4128
|
|
35
34
|
iatoolkit/repositories/tasks_repo.py,sha256=icVO_r2oPagGnnBhwVFzznnvEEU2EAx-2dlWuWvoDC4,1745
|
|
36
35
|
iatoolkit/repositories/vs_repo.py,sha256=UkpmQQiocgM5IwRBmmWhw3HHzHP6zK1nN3J3TcQgjhc,5300
|
|
37
36
|
iatoolkit/services/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
37
|
+
iatoolkit/services/auth_service.py,sha256=9vK09ozxdjcSwM8H8HVdsSb3JXx00GnFs4o7tyfOXLs,2762
|
|
38
38
|
iatoolkit/services/benchmark_service.py,sha256=CdbFYyS3FHFhNzWQEa9ZNjUlmON10DT1nKNbZQ1EUi8,5880
|
|
39
39
|
iatoolkit/services/branding_service.py,sha256=gXj9Lj6EIFNIHT6wAHia5lr4_2a2sD-ExMbewno5YD8,7505
|
|
40
|
-
iatoolkit/services/dispatcher_service.py,sha256=
|
|
40
|
+
iatoolkit/services/dispatcher_service.py,sha256=7tltTH-r-Bg2J2xs597Vyhzflw736dOpPG_soPZFokI,13570
|
|
41
41
|
iatoolkit/services/document_service.py,sha256=nMXrNtbHQuc9pSaten0LvKY0kT8_WngBDmZJUP3jNPw,5936
|
|
42
|
-
iatoolkit/services/excel_service.py,sha256=
|
|
42
|
+
iatoolkit/services/excel_service.py,sha256=JdAcg7_vPz3J16cf2chC6j7WYVpiT55tDX9667tfMUc,3764
|
|
43
43
|
iatoolkit/services/file_processor_service.py,sha256=B1sUUhZNFf-rT4_1wrD38GKNoBFMp2g0dYrXYMCWe2E,4122
|
|
44
|
-
iatoolkit/services/history_service.py,sha256=
|
|
44
|
+
iatoolkit/services/history_service.py,sha256=3IxcdpKV1mHBGIiv2KIYV3LsVQJ0GPdFuCOiGYRszMU,1255
|
|
45
45
|
iatoolkit/services/jwt_service.py,sha256=YoZ9h7_o9xBko-arNQv4MbcwnxoSWVNj4VbZmMo_QGY,3908
|
|
46
46
|
iatoolkit/services/load_documents_service.py,sha256=ZpB0BZ3qX1fGJGBtZtMLbFdWWx0hkPoeCS3OqJKwCTs,7291
|
|
47
47
|
iatoolkit/services/mail_service.py,sha256=2h-fcF3swZDya_o7IpgXkmuj3iEVHVCiHi7oVxU99sQ,2182
|
|
48
48
|
iatoolkit/services/onboarding_service.py,sha256=cMO2Ho1-G3wAeVNl-j25LwCMJjRwj3yKHpYKnZUFLDE,2001
|
|
49
|
-
iatoolkit/services/profile_service.py,sha256=
|
|
49
|
+
iatoolkit/services/profile_service.py,sha256=Y1EbTDNFDWrUQ4QqiaM2OfluZqiJfL9hhbeqJ7nsbtw,20235
|
|
50
50
|
iatoolkit/services/prompt_manager_service.py,sha256=U-XmSpkeXvv1KRN4dytdMxSYBMRSB7y-UHcb18mk0nA,8342
|
|
51
|
-
iatoolkit/services/query_service.py,sha256=
|
|
51
|
+
iatoolkit/services/query_service.py,sha256=sEmdBDLTpdZbNu43KAUO6vXqqWBBxTWKWlQm4oFGtSk,17796
|
|
52
52
|
iatoolkit/services/search_service.py,sha256=i1xGWu7ORKIIDH0aAQBkF86dVVbLQ0Yrooz5TiZ6aGo,1823
|
|
53
53
|
iatoolkit/services/sql_service.py,sha256=MIslAtpJWnTMgSD74nnqTvQj27p-lHiyRXc6OiA2C_c,2172
|
|
54
|
-
iatoolkit/services/tasks_service.py,sha256=
|
|
55
|
-
iatoolkit/services/user_feedback_service.py,sha256=
|
|
56
|
-
iatoolkit/services/user_session_context_service.py,sha256=
|
|
54
|
+
iatoolkit/services/tasks_service.py,sha256=itREO5rDnUIgsqtyCOBKDtH30QL5v1egs4qPTiBK8xU,6865
|
|
55
|
+
iatoolkit/services/user_feedback_service.py,sha256=ooy750qWmYOeJi-IJQofu8pLG4svGjGU_JKpKMURZkw,2353
|
|
56
|
+
iatoolkit/services/user_session_context_service.py,sha256=TeYi4xF04Xk-4Qnp6cVTmxuNzA4B1nMVUuFDjTHeiZQ,6764
|
|
57
57
|
iatoolkit/static/images/arrow_up.png,sha256=vPcWMebWVOOt13x5U7pzsyukysoiXO0siSyErUMleHw,2781
|
|
58
58
|
iatoolkit/static/images/diagrama_iatoolkit.jpg,sha256=GhauwUVqWjt9dWtsW53Uon_mo61j73brmC4ogQc6tkY,93527
|
|
59
59
|
iatoolkit/static/images/logo_clinica.png,sha256=vLX6X7O9RPUHYTQHvO_Fx28sI4JulpRZsRpkuJ9XIu0,56806
|
|
@@ -63,55 +63,54 @@ iatoolkit/static/images/logo_notaria.png,sha256=FLDK1mHydFpzudKLKQSqHdSqq6vbqs77
|
|
|
63
63
|
iatoolkit/static/images/logo_tarjeta.png,sha256=HQe2lp_jHFWq5hnx3SCBEcqW5IFfvSCktv9oyN--5cQ,1700
|
|
64
64
|
iatoolkit/static/images/logo_umayor.png,sha256=FHr1wvI8uDn1YRbRcLSRLBOc0mYusHx9Um6ZzVZUbOQ,19199
|
|
65
65
|
iatoolkit/static/images/upload.png,sha256=zh5FiINURpaWZQF86bF_gALBX4W1c4aLp5wPQO9xGXI,296
|
|
66
|
-
iatoolkit/static/js/chat_feedback.js,sha256=
|
|
66
|
+
iatoolkit/static/js/chat_feedback.js,sha256=DDT2NPgglrLnW75vtEAVXS72MNt7vlMcavzr94q80qQ,4398
|
|
67
67
|
iatoolkit/static/js/chat_filepond.js,sha256=mzXafm7a506EpM37KATTK3zvAswO1E0KSUY1vKbwuRc,3163
|
|
68
|
-
iatoolkit/static/js/chat_history.js,sha256=
|
|
69
|
-
iatoolkit/static/js/chat_main.js,sha256=
|
|
68
|
+
iatoolkit/static/js/chat_history.js,sha256=4hYNODIwYNd5vaQqkR28HZyXYIFKgSayrnmOuT_DUac,4381
|
|
69
|
+
iatoolkit/static/js/chat_main.js,sha256=j3rbJjWWCEAM1XUXPv6K2SW4S3kBrPAwEzVtLTjHslI,17314
|
|
70
70
|
iatoolkit/static/styles/chat_iatoolkit.css,sha256=WgzKKyFRuQU8SozX1sWSN7b66SxVoKIHDwpK6V-xL6g,11417
|
|
71
71
|
iatoolkit/static/styles/chat_info.css,sha256=17DbgoNYE21VYWfb5L9-QLCpD2R1idK4imKRLwXtJLY,1058
|
|
72
72
|
iatoolkit/static/styles/chat_modal.css,sha256=mdfjrJtmUn3O9rKwIGjJc-oSNmJGnzUY1aAJqEfPh38,4301
|
|
73
|
-
iatoolkit/static/styles/landing_page.css,sha256=
|
|
73
|
+
iatoolkit/static/styles/landing_page.css,sha256=5MHlXkmgZVv9uHE7rZTGYzZeynya3ONY4hp7e2uPXwk,4898
|
|
74
74
|
iatoolkit/static/styles/llm_output.css,sha256=AlxgRSOleeCk2dLAqFWVaQ-jwZiJjcpC5rHuUv3T6VU,2312
|
|
75
75
|
iatoolkit/system_prompts/format_styles.prompt,sha256=MSMe1qvR3cF_0IbFshn8R0z6Wx6VCHQq1p37rpu5wwk,3576
|
|
76
|
-
iatoolkit/system_prompts/query_main.prompt,sha256=
|
|
76
|
+
iatoolkit/system_prompts/query_main.prompt,sha256=D2Wjf0uunQIQsQiJVrY-BTQz6PemM5En6ftmw_c5t4E,2808
|
|
77
77
|
iatoolkit/system_prompts/sql_rules.prompt,sha256=y4nURVnb9AyFwt-lrbMNBHHtZlhk6kC9grYoOhRnrJo,59174
|
|
78
78
|
iatoolkit/templates/_branding_styles.html,sha256=x0GJmY1WWpPxKBUoqmxh685_1c6-4uLJWNPU6r81uAc,1912
|
|
79
|
-
iatoolkit/templates/_login_widget.html,sha256=
|
|
79
|
+
iatoolkit/templates/_login_widget.html,sha256=c-IKNLITu6-tAM_9hj9NnXh2J8WS6Zy4XaVTvKvnzKg,1851
|
|
80
80
|
iatoolkit/templates/_navbar.html,sha256=o1PvZE5ueLmVpGUAmsjtu-vS_WPROTlJc2sTXl6AS4Y,360
|
|
81
81
|
iatoolkit/templates/about.html,sha256=ciC08grUVz5qLzdzDDqDX31xirg5PrJIRYabWpV9oA8,294
|
|
82
82
|
iatoolkit/templates/base.html,sha256=Bd_dBk_wiAhX0DPQHJAdPtCBBq2xK1J1Z2b9p3Wn0e8,2214
|
|
83
83
|
iatoolkit/templates/change_password.html,sha256=G5a3hYLTpz_5Q_eZ4LNcYSqLeW-CuT4NCHD8bkhAd9k,3573
|
|
84
|
-
iatoolkit/templates/chat.html,sha256=
|
|
84
|
+
iatoolkit/templates/chat.html,sha256=mT73hW42QtN2uGciGuwdQQhVi8iQgkQoUWK4cvWZ9Xw,12315
|
|
85
85
|
iatoolkit/templates/chat_modals.html,sha256=ngKk0L8qnWteBDLAqCKv8-55LWNH3-HwVyk2of6ylWo,5510
|
|
86
|
-
iatoolkit/templates/error.html,sha256=
|
|
86
|
+
iatoolkit/templates/error.html,sha256=c3dxieMygsvdjQMiQu_sn6kqqag9zFtVu-z5FunX6so,580
|
|
87
87
|
iatoolkit/templates/forgot_password.html,sha256=NRZqbNHJXSLNArF_KLbzuem-U57v07awS0ikI_DJbfM,2360
|
|
88
88
|
iatoolkit/templates/header.html,sha256=179agI7rnYwP_rvJNXIiVde5E8Ec5649_XKq6eew2Hk,1263
|
|
89
|
-
iatoolkit/templates/
|
|
90
|
-
iatoolkit/templates/
|
|
91
|
-
iatoolkit/templates/login.html,sha256=r4hy7MsQkfDqi6pBRNkkRiFr3GPSoHCT89R5lQLUWZc,1991
|
|
89
|
+
iatoolkit/templates/index.html,sha256=jBLCqZoIMmUCA1KQESW9BcEgaxE0Rjs-4-i2V0ueSMo,7654
|
|
90
|
+
iatoolkit/templates/login_test.html,sha256=b71G5zyKnjDKAZ4DyCpM0diUC38-0WMategv-SKeKfY,5979
|
|
92
91
|
iatoolkit/templates/onboarding_shell.html,sha256=at7VXh9vQmDiWu2mJbc6NkzEVlu8I8Xgn6_31JltrW0,7477
|
|
93
92
|
iatoolkit/templates/signup.html,sha256=9ArDvcNQgHFR2dwxy-37AXzGUOeOsT7Nz5u0y6fAB3U,4385
|
|
94
93
|
iatoolkit/templates/test.html,sha256=rwNtxC83tbCl5COZFXYvmRBxxmgFJtPNuVBd_nq9KWY,133
|
|
95
94
|
iatoolkit/views/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
96
95
|
iatoolkit/views/change_password_view.py,sha256=tM0woZyKdhY4XYjS_YXg2sKq3RYkXGfcq_eVAKrNvNM,4498
|
|
97
96
|
iatoolkit/views/chat_token_request_view.py,sha256=wf32_A2Sq8NHYWshCwL10Tovd1znLoD0jQjzutR3sVE,4408
|
|
98
|
-
iatoolkit/views/
|
|
99
|
-
iatoolkit/views/
|
|
100
|
-
iatoolkit/views/file_store_view.py,sha256=mmr8U4_ycSe22kdGmVfzXpJPJffo5JRGNjk3-bUdVRw,2355
|
|
97
|
+
iatoolkit/views/external_login_view.py,sha256=quXpu8_BJBkZ1VWGxICAu-IcVq45_sU2IxYgN3Ke4K4,4143
|
|
98
|
+
iatoolkit/views/file_store_api_view.py,sha256=Uz9f6sey3_F5K8zuyQz6SwYRKAalCjD1ekf-Mkl_Kfo,2326
|
|
101
99
|
iatoolkit/views/forgot_password_view.py,sha256=-qKJeeOBqJFdvDUk7rCNg1E1cDQnJQkozPpb0T0FgwA,3159
|
|
102
|
-
iatoolkit/views/
|
|
103
|
-
iatoolkit/views/home_view.py,sha256=TihO2flkelJa9j6a0FKCMVhD-2X7BhemonB7LTne4x8,1248
|
|
100
|
+
iatoolkit/views/history_api_view.py,sha256=x-tZhB8UzqrD2n-WDIfmHK9iVhGZ9f0yncsGs9mxwt0,1953
|
|
104
101
|
iatoolkit/views/index_view.py,sha256=P5aVdEWxsYOZGbzcXd6WFE733qZ7YXIoeqriUMAM6V8,1527
|
|
105
|
-
iatoolkit/views/
|
|
106
|
-
iatoolkit/views/
|
|
107
|
-
iatoolkit/views/
|
|
108
|
-
iatoolkit/views/
|
|
102
|
+
iatoolkit/views/init_context_api_view.py,sha256=1j8NKfODfPrffbA5YO8TPMHh-ildlLNzReIxv_qO-W4,2586
|
|
103
|
+
iatoolkit/views/llmquery_api_view.py,sha256=Rh-y-VENwwtNsDrYAD_SWKwjK16fW-pFRWlEvI-OYwY,2120
|
|
104
|
+
iatoolkit/views/llmquery_web_view.py,sha256=WhjlA1mfsoL8hL9tlKQfjCUcaTzT43odlp_uQKmT314,1500
|
|
105
|
+
iatoolkit/views/login_test_view.py,sha256=E50Lyhf6EsUilQl9W4SLKIWW39h_Gcyf8Y2rwAJqA-Y,1049
|
|
106
|
+
iatoolkit/views/login_view.py,sha256=tQQhYks_4rKKyAzr6ZNuKsc4uHCPDHjZkrMwEBToKzo,6985
|
|
107
|
+
iatoolkit/views/prompt_api_view.py,sha256=MP0r-MiswwKcbNc_5KY7aVbHkrR218I8XCiCX1D0yTA,1244
|
|
109
108
|
iatoolkit/views/signup_view.py,sha256=BCjhM2lMiDPwYrlW_eEwPl-ZLupblbFfsonWtq0E4vU,3922
|
|
110
109
|
iatoolkit/views/tasks_review_view.py,sha256=keLsLCyOTTlcoIapnB_lbuSvLwrPVZVpBiFC_7ChbLg,3388
|
|
111
110
|
iatoolkit/views/tasks_view.py,sha256=a3anTXrJTTvbQuc6PSpOzidLKQFL4hWa7PI2Cppcz8w,4110
|
|
112
|
-
iatoolkit/views/
|
|
111
|
+
iatoolkit/views/user_feedback_api_view.py,sha256=59XB9uQLHI4Q6QA4_XhK787HzfXb-c6EY7k1Ccyr4hI,2424
|
|
113
112
|
iatoolkit/views/verify_user_view.py,sha256=7XLSaxvs8LjBr3cYOUDa9B8DqW_50IGlq0IvmOQcD0Y,2340
|
|
114
|
-
iatoolkit-0.
|
|
115
|
-
iatoolkit-0.
|
|
116
|
-
iatoolkit-0.
|
|
117
|
-
iatoolkit-0.
|
|
113
|
+
iatoolkit-0.50.0.dist-info/METADATA,sha256=Viij-mBxTUT1FhVOOU2QGpLJB7yJsSN-6a_1u2bpo-E,9301
|
|
114
|
+
iatoolkit-0.50.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
115
|
+
iatoolkit-0.50.0.dist-info/top_level.txt,sha256=V_w4QvDx0b1RXiy8zTCrD1Bp7AZkFe3_O0-9fMiwogg,10
|
|
116
|
+
iatoolkit-0.50.0.dist-info/RECORD,,
|