OpenRAG 0.6.0.dev21__py3-none-any.whl → 0.6.0.dev23__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrag
3
- Version: 0.6.0.dev21
3
+ Version: 0.6.0.dev23
4
4
  Summary: OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Environment :: Console
@@ -128,7 +128,7 @@ models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  models/processors.py,sha256=F0LOVNOOrDS9zCfb-piYf3uRYawiPbmNGO2Da4g6G4I,70039
129
129
  models/tasks.py,sha256=BByR2xDl4zqvbCbTGgBC3aChJ_uJoRpHy0TTJrvW5Dc,3152
130
130
  models/url.py,sha256=KMleXhlwd3W59axcubMJxIEtHpyBQTvfxkycc-o0kOY,5601
131
- openrag-0.6.0.dev21.dist-info/licenses/LICENSE,sha256=jWcnPXkUxEinX60Yn-_zjsY9i84vz2QSb0fi53djOkg,11334
131
+ openrag-0.6.0.dev23.dist-info/licenses/LICENSE,sha256=jWcnPXkUxEinX60Yn-_zjsY9i84vz2QSb0fi53djOkg,11334
132
132
  services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
133
  services/api_key_service.py,sha256=m04jVSJyDqIl-NgNROKLIfy4QYArZxlvz_WkjqQK7TA,13269
134
134
  services/auth_service.py,sha256=qxg5Mj1KvR23dBaZnwe2gjQia5DqvNNi7VQCkkKxq8k,23794
@@ -145,7 +145,7 @@ services/docling_service.py,sha256=C9nXzg4eRsmnjS0kv3SH1MliNqL87cPr6cgbhG8hjKs,1
145
145
  services/document_index_writer.py,sha256=204buyb7bHBKciuci3MGF-Q8_bI8SiLMOfuje9BnsE0,12270
146
146
  services/document_service.py,sha256=ObGyfDgCdQsJkFiFUoN34yqkjCJyy-6aSvxqAqjfXEw,7604
147
147
  services/file_service.py,sha256=aBNwMUTsZqRAsg31IBRlbDMHNZkP9LsUJM6_IEgesVM,8701
148
- services/flows_service.py,sha256=vdr-chLE7VkhxqqIWBzXb7vTA3SaJL4Qen0gfVaiS30,68434
148
+ services/flows_service.py,sha256=csdoL1ikRUHl7soNXidwx1pPSRM0oX5DdQpnFUgqQl8,67978
149
149
  services/group_acl_service.py,sha256=_Pt1vf8SAgxKuaqnnu4pJ_G2MzyV8czmNBXflkwIg6A,4170
150
150
  services/ingest_preview_service.py,sha256=BfH054zIQ_osYnr8rSLs_CW-zDFDsYLuXXK26jIlwi0,6238
151
151
  services/knowledge_filter_service.py,sha256=4SXHaFfMJzAZGMjAU8qpdh4H_X3cEnyJp0ijyL9WAiE,15495
@@ -240,8 +240,8 @@ utils/telemetry/__init__.py,sha256=xoStY8hoYWnVe0B_jNthSdzRb7AxCT0rhM8ba9Q0Obg,2
240
240
  utils/telemetry/category.py,sha256=wei3V5WyUaiadYjEE5s0ys9PY0TjnebIvTykQU0P_2k,1114
241
241
  utils/telemetry/client.py,sha256=RhjW1a27w7W6gHt9X7AxdRPdZGmCEQDPskkxj5nsuiQ,12500
242
242
  utils/telemetry/message_id.py,sha256=05CvlKW_LaD00INxd3WV8uXBZ9f_5Cvy-jAyOPmpxTk,9600
243
- openrag-0.6.0.dev21.dist-info/METADATA,sha256=sPPCaC6QowkGR6FGO2_BJJKYtZyidl15RjsB-x7Yg5A,8728
244
- openrag-0.6.0.dev21.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
245
- openrag-0.6.0.dev21.dist-info/entry_points.txt,sha256=ArKNHB63I3K8vynNkogvZOLmmQFpIsHDL7MvreCmju4,45
246
- openrag-0.6.0.dev21.dist-info/top_level.txt,sha256=TpFyXTBO-cpphRZHx7Vgwgzg4KmPXwNkkfOo93D5qOk,132
247
- openrag-0.6.0.dev21.dist-info/RECORD,,
243
+ openrag-0.6.0.dev23.dist-info/METADATA,sha256=Swb81MgMU7nOBLC_Gd_qz8SIFq3VUkDli1MHLjH9ITg,8728
244
+ openrag-0.6.0.dev23.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
245
+ openrag-0.6.0.dev23.dist-info/entry_points.txt,sha256=ArKNHB63I3K8vynNkogvZOLmmQFpIsHDL7MvreCmju4,45
246
+ openrag-0.6.0.dev23.dist-info/top_level.txt,sha256=TpFyXTBO-cpphRZHx7Vgwgzg4KmPXwNkkfOo93D5qOk,132
247
+ openrag-0.6.0.dev23.dist-info/RECORD,,
services/flows_service.py CHANGED
@@ -1099,128 +1099,128 @@ class FlowsService:
1099
1099
  return label
1100
1100
  return None
1101
1101
 
1102
- # Update embedding component
1103
- if not get_openrag_config().knowledge.disable_ingest_with_langflow and (
1104
- embedding_model or force_embedding_update
1102
+ # Update embedding component
1103
+ if not get_openrag_config().knowledge.disable_ingest_with_langflow and (
1104
+ embedding_model or force_embedding_update
1105
+ ):
1106
+ # Get all embedding nodes in the flow
1107
+ embedding_nodes = self._find_nodes_in_flow(
1108
+ flow_data, display_name=OPENAI_EMBEDDING_COMPONENT_DISPLAY_NAME
1109
+ )
1110
+ logger.info(
1111
+ f"Found {len(embedding_nodes)} embedding nodes in flow {flow_name} with display name '{OPENAI_EMBEDDING_COMPONENT_DISPLAY_NAME}'"
1112
+ )
1113
+
1114
+ # Count configured embedding-enabled providers
1115
+ config_obj = get_openrag_config()
1116
+ configured_providers = []
1117
+ if config_obj.providers.openai.configured:
1118
+ configured_providers.append("openai")
1119
+ if config_obj.providers.watsonx.configured:
1120
+ configured_providers.append("watsonx")
1121
+ if config_obj.providers.ollama.configured:
1122
+ configured_providers.append("ollama")
1123
+
1124
+ # Ensure current provider is in the list for counting purposes if it's being configured
1125
+ if (
1126
+ provider in ["openai", "watsonx", "ollama"]
1127
+ and provider not in configured_providers
1105
1128
  ):
1106
- # Get all embedding nodes in the flow
1107
- embedding_nodes = self._find_nodes_in_flow(
1108
- flow_data, display_name=OPENAI_EMBEDDING_COMPONENT_DISPLAY_NAME
1109
- )
1110
- logger.info(
1111
- f"Found {len(embedding_nodes)} embedding nodes in flow {flow_name} with display name '{OPENAI_EMBEDDING_COMPONENT_DISPLAY_NAME}'"
1112
- )
1129
+ configured_providers.append(provider)
1113
1130
 
1114
- # Count configured embedding-enabled providers
1115
- config_obj = get_openrag_config()
1116
- configured_providers = []
1117
- if config_obj.providers.openai.configured:
1118
- configured_providers.append("openai")
1119
- if config_obj.providers.watsonx.configured:
1120
- configured_providers.append("watsonx")
1121
- if config_obj.providers.ollama.configured:
1122
- configured_providers.append("ollama")
1123
-
1124
- # Ensure current provider is in the list for counting purposes if it's being configured
1125
- if (
1126
- provider in ["openai", "watsonx", "ollama"]
1127
- and provider not in configured_providers
1128
- ):
1129
- configured_providers.append(provider)
1131
+ all_possible = ["openai", "watsonx", "ollama"]
1132
+ configured_providers = [p for p in all_possible if p in configured_providers]
1133
+ provider_count = len(configured_providers)
1134
+ logger.info(
1135
+ f"Configured embedding providers: {configured_providers} (count: {provider_count})"
1136
+ )
1137
+
1138
+ # 1. Check if any node is already this provider - always update those first
1139
+ matched_nodes = []
1140
+ provider_display = self._get_provider_name_display(provider)
1141
+ for node, idx in embedding_nodes:
1142
+ if self._get_node_provider(node) == provider_display:
1143
+ matched_nodes.append((node, idx))
1130
1144
 
1131
- all_possible = ["openai", "watsonx", "ollama"]
1132
- configured_providers = [p for p in all_possible if p in configured_providers]
1133
- provider_count = len(configured_providers)
1145
+ if matched_nodes:
1134
1146
  logger.info(
1135
- f"Configured embedding providers: {configured_providers} (count: {provider_count})"
1147
+ f"Found {len(matched_nodes)} nodes already configured for provider '{provider}'"
1136
1148
  )
1137
-
1138
- # 1. Check if any node is already this provider - always update those first
1139
- matched_nodes = []
1140
- provider_display = self._get_provider_name_display(provider)
1141
- for node, idx in embedding_nodes:
1142
- if self._get_node_provider(node) == provider_display:
1143
- matched_nodes.append((node, idx))
1144
-
1145
- if matched_nodes:
1149
+ for node, _idx in matched_nodes:
1150
+ node_tasks.append(
1151
+ wrap_node_update(
1152
+ node,
1153
+ provider,
1154
+ embedding_model,
1155
+ f"embedding model: {embedding_model} (updated existing {provider} node)",
1156
+ )
1157
+ )
1158
+ else:
1159
+ # 2. No existing node matched, use slot-based logic
1160
+ try:
1161
+ p_index = configured_providers.index(provider)
1146
1162
  logger.info(
1147
- f"Found {len(matched_nodes)} nodes already configured for provider '{provider}'"
1163
+ f"Using slot-based logic for provider '{provider}' (p_index: {p_index}, total configured: {provider_count})"
1148
1164
  )
1149
- for node, _idx in matched_nodes:
1150
- node_tasks.append(
1151
- wrap_node_update(
1152
- node,
1153
- provider,
1154
- embedding_model,
1155
- f"embedding model: {embedding_model} (updated existing {provider} node)",
1156
- )
1157
- )
1158
- else:
1159
- # 2. No existing node matched, use slot-based logic
1160
- try:
1161
- p_index = configured_providers.index(provider)
1165
+
1166
+ if provider_count == 1:
1167
+ # Single provider mode: update all available nodes (up to 3)
1162
1168
  logger.info(
1163
- f"Using slot-based logic for provider '{provider}' (p_index: {p_index}, total configured: {provider_count})"
1169
+ f"Single provider mode: updating all available embedding nodes (available: {len(embedding_nodes)})"
1164
1170
  )
1165
-
1166
- if provider_count == 1:
1167
- # Single provider mode: update all available nodes (up to 3)
1171
+ for i in range(min(3, len(embedding_nodes))):
1172
+ node, idx = embedding_nodes[i]
1173
+ node_tasks.append(
1174
+ wrap_node_update(
1175
+ node,
1176
+ provider,
1177
+ embedding_model,
1178
+ f"embedding model: {embedding_model} (set node {i + 1})",
1179
+ )
1180
+ )
1181
+ else:
1182
+ # Multiple providers: each gets one slot based on its list index
1183
+ if p_index < len(embedding_nodes):
1184
+ node, idx = embedding_nodes[p_index]
1168
1185
  logger.info(
1169
- f"Single provider mode: updating all available embedding nodes (available: {len(embedding_nodes)})"
1186
+ f"Multiple provider mode: assigning provider '{provider}' to node slot {p_index} (node {p_index + 1})"
1170
1187
  )
1171
- for i in range(min(3, len(embedding_nodes))):
1172
- node, idx = embedding_nodes[i]
1173
- node_tasks.append(
1174
- wrap_node_update(
1175
- node,
1176
- provider,
1177
- embedding_model,
1178
- f"embedding model: {embedding_model} (set node {i + 1})",
1179
- )
1188
+ node_tasks.append(
1189
+ wrap_node_update(
1190
+ node,
1191
+ provider,
1192
+ embedding_model,
1193
+ f"embedding model: {embedding_model} (set node {p_index + 1})",
1180
1194
  )
1195
+ )
1181
1196
  else:
1182
- # Multiple providers: each gets one slot based on its list index
1183
- if p_index < len(embedding_nodes):
1184
- node, idx = embedding_nodes[p_index]
1185
- logger.info(
1186
- f"Multiple provider mode: assigning provider '{provider}' to node slot {p_index} (node {p_index + 1})"
1187
- )
1188
- node_tasks.append(
1189
- wrap_node_update(
1190
- node,
1191
- provider,
1192
- embedding_model,
1193
- f"embedding model: {embedding_model} (set node {p_index + 1})",
1194
- )
1195
- )
1196
- else:
1197
- logger.info(
1198
- f"Provider index {p_index} exceeds available embedding nodes ({len(embedding_nodes)}) - skipping automatic assignment"
1199
- )
1200
- except ValueError:
1201
- logger.warning(
1202
- f"Current provider '{provider}' not found in configured providers list: {configured_providers}"
1203
- )
1204
-
1205
- # Update LLM component (if exists in this flow)
1206
- if llm_model or force_llm_update:
1207
- llm_node, _ = self._find_node_in_flow(
1208
- flow_data, display_name=OPENAI_LLM_COMPONENT_DISPLAY_NAME
1209
- )
1210
- if llm_node:
1211
- node_tasks.append(
1212
- wrap_node_update(llm_node, provider, llm_model, f"llm model: {llm_model}")
1197
+ logger.info(
1198
+ f"Provider index {p_index} exceeds available embedding nodes ({len(embedding_nodes)}) - skipping automatic assignment"
1199
+ )
1200
+ except ValueError:
1201
+ logger.warning(
1202
+ f"Current provider '{provider}' not found in configured providers list: {configured_providers}"
1213
1203
  )
1214
1204
 
1215
- agent_node, _ = self._find_node_in_flow(
1216
- flow_data, display_name=AGENT_COMPONENT_DISPLAY_NAME
1205
+ # Update LLM component (if exists in this flow)
1206
+ if llm_model or force_llm_update:
1207
+ llm_node, _ = self._find_node_in_flow(
1208
+ flow_data, display_name=OPENAI_LLM_COMPONENT_DISPLAY_NAME
1209
+ )
1210
+ if llm_node:
1211
+ node_tasks.append(
1212
+ wrap_node_update(llm_node, provider, llm_model, f"llm model: {llm_model}")
1217
1213
  )
1218
- if agent_node:
1219
- node_tasks.append(
1220
- wrap_node_update(
1221
- agent_node, provider, llm_model, f"agent model: {llm_model}"
1222
- )
1214
+
1215
+ agent_node, _ = self._find_node_in_flow(
1216
+ flow_data, display_name=AGENT_COMPONENT_DISPLAY_NAME
1217
+ )
1218
+ if agent_node:
1219
+ node_tasks.append(
1220
+ wrap_node_update(
1221
+ agent_node, provider, llm_model, f"agent model: {llm_model}"
1223
1222
  )
1223
+ )
1224
1224
 
1225
1225
  # Execute all node updates simultaneously
1226
1226
  if node_tasks: