orchestrator-core 4.7.0rc2__py3-none-any.whl → 4.7.1__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.
- orchestrator/__init__.py +1 -1
- orchestrator/cli/scheduler.py +4 -6
- orchestrator/schedules/service.py +32 -3
- orchestrator/schemas/search_requests.py +6 -1
- orchestrator/search/core/types.py +13 -4
- orchestrator/search/query/engine.py +65 -3
- orchestrator/search/query/mixins.py +5 -0
- orchestrator/workflows/tasks/validate_subscriptions.py +2 -2
- {orchestrator_core-4.7.0rc2.dist-info → orchestrator_core-4.7.1.dist-info}/METADATA +6 -6
- {orchestrator_core-4.7.0rc2.dist-info → orchestrator_core-4.7.1.dist-info}/RECORD +12 -12
- {orchestrator_core-4.7.0rc2.dist-info → orchestrator_core-4.7.1.dist-info}/WHEEL +0 -0
- {orchestrator_core-4.7.0rc2.dist-info → orchestrator_core-4.7.1.dist-info}/licenses/LICENSE +0 -0
orchestrator/__init__.py
CHANGED
orchestrator/cli/scheduler.py
CHANGED
|
@@ -23,7 +23,7 @@ from orchestrator.schedules.scheduler import (
|
|
|
23
23
|
)
|
|
24
24
|
from orchestrator.schedules.service import (
|
|
25
25
|
SCHEDULER_QUEUE,
|
|
26
|
-
|
|
26
|
+
add_unique_scheduled_task_to_queue,
|
|
27
27
|
workflow_scheduler_queue,
|
|
28
28
|
)
|
|
29
29
|
from orchestrator.schemas.schedules import APSchedulerJobCreate
|
|
@@ -132,10 +132,8 @@ def load_initial_schedule() -> None:
|
|
|
132
132
|
- Task Clean Up Tasks
|
|
133
133
|
- Task Validate Subscriptions
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
Please run `show-schedule` first to determine if the schedules already exist.
|
|
135
|
+
This command is idempotent since 4.7.1 when the scheduler is running. The schedules are only
|
|
136
|
+
created when they do not already exist in the database.
|
|
139
137
|
"""
|
|
140
138
|
initial_schedules = [
|
|
141
139
|
{
|
|
@@ -173,4 +171,4 @@ def load_initial_schedule() -> None:
|
|
|
173
171
|
schedule["workflow_id"] = workflow.workflow_id
|
|
174
172
|
|
|
175
173
|
typer.echo(f"Initial Schedule: {schedule}")
|
|
176
|
-
|
|
174
|
+
add_unique_scheduled_task_to_queue(APSchedulerJobCreate(**schedule)) # type: ignore
|
|
@@ -66,17 +66,46 @@ def deserialize_payload(bytes_dump: bytes) -> APSchedulerJobs:
|
|
|
66
66
|
def add_scheduled_task_to_queue(payload: APSchedulerJobs) -> None:
|
|
67
67
|
"""Create a scheduled task service function.
|
|
68
68
|
|
|
69
|
-
We need to create
|
|
70
|
-
the linker table workflows_apscheduler_jobs.
|
|
69
|
+
We need to create, update or delete an apscheduler job, and put the
|
|
70
|
+
workflow and schedule_id in the linker table workflows_apscheduler_jobs.
|
|
71
|
+
This is done by adding a job to a redis queue which will be executed
|
|
72
|
+
when the scheduler runs.
|
|
71
73
|
|
|
72
74
|
Args:
|
|
73
|
-
payload:
|
|
75
|
+
payload: APSchedulerJobs The scheduled task to create, update or delete
|
|
74
76
|
"""
|
|
75
77
|
bytes_dump = serialize_payload(payload)
|
|
76
78
|
redis_connection.lpush(SCHEDULER_QUEUE, bytes_dump)
|
|
77
79
|
logger.info("Added scheduled task to queue.")
|
|
78
80
|
|
|
79
81
|
|
|
82
|
+
def add_unique_scheduled_task_to_queue(payload: APSchedulerJobCreate) -> bool:
|
|
83
|
+
"""Create a unique scheduled task service function.
|
|
84
|
+
|
|
85
|
+
Checks if the workflow is already scheduled before creating an apscheduler
|
|
86
|
+
job, and putting the workflow and schedule_id in the linker table
|
|
87
|
+
workflows_apscheduler_jobs.
|
|
88
|
+
This is done by adding a job to a redis queue which will be executed
|
|
89
|
+
when the scheduler runs.
|
|
90
|
+
|
|
91
|
+
This function is not safe for concurrent usage and when the scheduler is not
|
|
92
|
+
running, as there might be a race condition between adding a job and checking
|
|
93
|
+
if it already exists in the database.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
payload: APSchedulerJobCreate The scheduled task to create.
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
True when the scheduled task was added to the queue
|
|
100
|
+
False when the scheduled task was not added to the queue
|
|
101
|
+
"""
|
|
102
|
+
if db.session.query(WorkflowApschedulerJob).filter_by(workflow_id=payload.workflow_id).all():
|
|
103
|
+
logger.info(f"Not adding existing workflow {payload.workflow_name} as scheduled task.")
|
|
104
|
+
return False
|
|
105
|
+
add_scheduled_task_to_queue(payload)
|
|
106
|
+
return True
|
|
107
|
+
|
|
108
|
+
|
|
80
109
|
def get_linker_entries_by_schedule_ids(schedule_ids: list[str]) -> list[WorkflowApschedulerJob]:
|
|
81
110
|
"""Get linker table entries for multiple schedule IDs in a single query.
|
|
82
111
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
from pydantic import BaseModel, ConfigDict, Field
|
|
16
16
|
|
|
17
|
-
from orchestrator.search.core.types import EntityType
|
|
17
|
+
from orchestrator.search.core.types import EntityType, RetrieverType
|
|
18
18
|
from orchestrator.search.filters import FilterTree
|
|
19
19
|
from orchestrator.search.query.queries import SelectQuery
|
|
20
20
|
|
|
@@ -39,6 +39,10 @@ class SearchRequest(BaseModel):
|
|
|
39
39
|
le=SelectQuery.MAX_LIMIT,
|
|
40
40
|
description="Maximum number of search results to return.",
|
|
41
41
|
)
|
|
42
|
+
retriever: RetrieverType | None = Field(
|
|
43
|
+
default=None,
|
|
44
|
+
description="Force a specific retriever type. If None, uses default routing logic.",
|
|
45
|
+
)
|
|
42
46
|
|
|
43
47
|
model_config = ConfigDict(extra="forbid")
|
|
44
48
|
|
|
@@ -56,4 +60,5 @@ class SearchRequest(BaseModel):
|
|
|
56
60
|
filters=self.filters,
|
|
57
61
|
query_text=self.query,
|
|
58
62
|
limit=self.limit,
|
|
63
|
+
retriever=self.retriever,
|
|
59
64
|
)
|
|
@@ -40,27 +40,28 @@ class SearchMetadata:
|
|
|
40
40
|
@classmethod
|
|
41
41
|
def structured(cls) -> "SearchMetadata":
|
|
42
42
|
return cls(
|
|
43
|
-
search_type="structured",
|
|
43
|
+
search_type="structured",
|
|
44
|
+
description="This search performs a filter-based search using structured queries.",
|
|
44
45
|
)
|
|
45
46
|
|
|
46
47
|
@classmethod
|
|
47
48
|
def fuzzy(cls) -> "SearchMetadata":
|
|
48
49
|
return cls(
|
|
49
|
-
search_type=
|
|
50
|
+
search_type=RetrieverType.FUZZY.value,
|
|
50
51
|
description="This search performs a trigram similarity search.",
|
|
51
52
|
)
|
|
52
53
|
|
|
53
54
|
@classmethod
|
|
54
55
|
def semantic(cls) -> "SearchMetadata":
|
|
55
56
|
return cls(
|
|
56
|
-
search_type=
|
|
57
|
+
search_type=RetrieverType.SEMANTIC.value,
|
|
57
58
|
description="This search performs a vector similarity search, using L2 distance on embeddings with minimum distance scoring (normalized).",
|
|
58
59
|
)
|
|
59
60
|
|
|
60
61
|
@classmethod
|
|
61
62
|
def hybrid(cls) -> "SearchMetadata":
|
|
62
63
|
return cls(
|
|
63
|
-
search_type=
|
|
64
|
+
search_type=RetrieverType.HYBRID.value,
|
|
64
65
|
description="This search performs reciprocal rank fusion combining trigram similarity, word_similarity, and L2 vector distance.",
|
|
65
66
|
)
|
|
66
67
|
|
|
@@ -109,6 +110,14 @@ class ActionType(str, Enum):
|
|
|
109
110
|
AGGREGATE = "aggregate" # Compute aggregations (sum, avg, etc.) over matching records.
|
|
110
111
|
|
|
111
112
|
|
|
113
|
+
class RetrieverType(str, Enum):
|
|
114
|
+
"""Defines available retriever types for search operations."""
|
|
115
|
+
|
|
116
|
+
FUZZY = "fuzzy"
|
|
117
|
+
SEMANTIC = "semantic"
|
|
118
|
+
HYBRID = "hybrid"
|
|
119
|
+
|
|
120
|
+
|
|
112
121
|
class UIType(str, Enum):
|
|
113
122
|
STRING = "string"
|
|
114
123
|
NUMBER = "number"
|
|
@@ -15,7 +15,7 @@ import structlog
|
|
|
15
15
|
from sqlalchemy.orm import Session
|
|
16
16
|
|
|
17
17
|
from orchestrator.search.core.embedding import QueryEmbedder
|
|
18
|
-
from orchestrator.search.core.types import SearchMetadata
|
|
18
|
+
from orchestrator.search.core.types import EntityType, RetrieverType, SearchMetadata
|
|
19
19
|
from orchestrator.search.query.results import (
|
|
20
20
|
AggregationResponse,
|
|
21
21
|
SearchResponse,
|
|
@@ -23,7 +23,13 @@ from orchestrator.search.query.results import (
|
|
|
23
23
|
format_search_response,
|
|
24
24
|
)
|
|
25
25
|
from orchestrator.search.retrieval.pagination import PageCursor
|
|
26
|
-
from orchestrator.search.retrieval.retrievers import
|
|
26
|
+
from orchestrator.search.retrieval.retrievers import (
|
|
27
|
+
FuzzyRetriever,
|
|
28
|
+
ProcessHybridRetriever,
|
|
29
|
+
Retriever,
|
|
30
|
+
RrfHybridRetriever,
|
|
31
|
+
SemanticRetriever,
|
|
32
|
+
)
|
|
27
33
|
|
|
28
34
|
from .builder import build_aggregation_query, build_candidate_query, build_simple_count_query
|
|
29
35
|
from .export import fetch_export_data
|
|
@@ -32,6 +38,59 @@ from .queries import AggregateQuery, CountQuery, ExportQuery, SelectQuery
|
|
|
32
38
|
logger = structlog.get_logger(__name__)
|
|
33
39
|
|
|
34
40
|
|
|
41
|
+
def _get_retriever_from_override(
|
|
42
|
+
query: SelectQuery | ExportQuery,
|
|
43
|
+
cursor: PageCursor | None,
|
|
44
|
+
query_embedding: list[float] | None,
|
|
45
|
+
) -> Retriever | None:
|
|
46
|
+
"""Get retriever instance from explicit override, or None if no override.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
query: Query that may have a retriever override
|
|
50
|
+
cursor: Pagination cursor
|
|
51
|
+
query_embedding: Pre-computed embedding (may be None)
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
Retriever instance matching the requested type, or None if no override specified
|
|
55
|
+
|
|
56
|
+
Raises:
|
|
57
|
+
ValueError: If override requirements aren't met (e.g., no query text or embedding)
|
|
58
|
+
"""
|
|
59
|
+
if query.retriever is None:
|
|
60
|
+
return None
|
|
61
|
+
|
|
62
|
+
retriever_type = query.retriever
|
|
63
|
+
|
|
64
|
+
# Validate query_text (required for all retriever types)
|
|
65
|
+
if not query.query_text:
|
|
66
|
+
raise ValueError(f"{retriever_type.value.capitalize()} retriever requested but no query text provided.")
|
|
67
|
+
|
|
68
|
+
is_process = query.entity_type == EntityType.PROCESS
|
|
69
|
+
|
|
70
|
+
if retriever_type == RetrieverType.FUZZY:
|
|
71
|
+
return (
|
|
72
|
+
ProcessHybridRetriever(None, query.query_text, cursor)
|
|
73
|
+
if is_process
|
|
74
|
+
else FuzzyRetriever(query.query_text, cursor)
|
|
75
|
+
)
|
|
76
|
+
if retriever_type == RetrieverType.SEMANTIC:
|
|
77
|
+
if query_embedding is None:
|
|
78
|
+
raise ValueError(
|
|
79
|
+
"Semantic retriever requested but query embedding is not available. "
|
|
80
|
+
"Embedding generation may have failed."
|
|
81
|
+
)
|
|
82
|
+
return SemanticRetriever(query_embedding, cursor)
|
|
83
|
+
if query_embedding is None:
|
|
84
|
+
raise ValueError(
|
|
85
|
+
"Hybrid retriever requested but query embedding is not available. " "Embedding generation may have failed."
|
|
86
|
+
)
|
|
87
|
+
return (
|
|
88
|
+
ProcessHybridRetriever(query_embedding, query.query_text, cursor)
|
|
89
|
+
if is_process
|
|
90
|
+
else RrfHybridRetriever(query_embedding, query.query_text, cursor)
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
|
|
35
94
|
async def _execute_search(
|
|
36
95
|
query: SelectQuery | ExportQuery,
|
|
37
96
|
db_session: Session,
|
|
@@ -60,7 +119,10 @@ async def _execute_search(
|
|
|
60
119
|
if query.vector_query and not query_embedding:
|
|
61
120
|
query_embedding = await QueryEmbedder.generate_for_text_async(query.vector_query)
|
|
62
121
|
|
|
63
|
-
retriever
|
|
122
|
+
# Get retriever (from override or automatic routing)
|
|
123
|
+
retriever = _get_retriever_from_override(query, cursor, query_embedding) or Retriever.route(
|
|
124
|
+
query, cursor, query_embedding
|
|
125
|
+
)
|
|
64
126
|
logger.debug("Using retriever", retriever_type=retriever.__class__.__name__)
|
|
65
127
|
|
|
66
128
|
final_stmt = retriever.apply(candidate_query)
|
|
@@ -5,6 +5,7 @@ from typing import Self
|
|
|
5
5
|
from pydantic import BaseModel, Field, model_validator
|
|
6
6
|
|
|
7
7
|
from orchestrator.search.aggregations import Aggregation, TemporalGrouping
|
|
8
|
+
from orchestrator.search.core.types import RetrieverType
|
|
8
9
|
|
|
9
10
|
__all__ = [
|
|
10
11
|
"SearchMixin",
|
|
@@ -39,6 +40,10 @@ class SearchMixin(BaseModel):
|
|
|
39
40
|
"""
|
|
40
41
|
|
|
41
42
|
query_text: str | None = Field(default=None, description="Text query for semantic/fuzzy search")
|
|
43
|
+
retriever: RetrieverType | None = Field(
|
|
44
|
+
default=None,
|
|
45
|
+
description="Override retriever type (fuzzy/semantic/hybrid). If None, uses default routing logic.",
|
|
46
|
+
)
|
|
42
47
|
|
|
43
48
|
@property
|
|
44
49
|
def vector_query(self) -> str | None:
|
|
@@ -26,7 +26,7 @@ from orchestrator.services.workflows import (
|
|
|
26
26
|
)
|
|
27
27
|
from orchestrator.settings import app_settings, get_authorizers
|
|
28
28
|
from orchestrator.targets import Target
|
|
29
|
-
from orchestrator.workflow import StepList, init, step, workflow
|
|
29
|
+
from orchestrator.workflow import StepList, done, init, step, workflow
|
|
30
30
|
|
|
31
31
|
logger = structlog.get_logger(__name__)
|
|
32
32
|
|
|
@@ -65,4 +65,4 @@ def validate_subscriptions() -> None:
|
|
|
65
65
|
retry_auth_callback=authorizers.retry_auth_callback,
|
|
66
66
|
)
|
|
67
67
|
def task_validate_subscriptions() -> StepList:
|
|
68
|
-
return init >> validate_subscriptions
|
|
68
|
+
return init >> validate_subscriptions >> done
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orchestrator-core
|
|
3
|
-
Version: 4.7.
|
|
3
|
+
Version: 4.7.1
|
|
4
4
|
Summary: This is the orchestrator workflow engine.
|
|
5
5
|
Author-email: SURF <automation-beheer@surf.nl>
|
|
6
6
|
Requires-Python: >=3.11,<3.15
|
|
@@ -31,13 +31,13 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
31
31
|
Classifier: Topic :: Software Development
|
|
32
32
|
Classifier: Typing :: Typed
|
|
33
33
|
License-File: LICENSE
|
|
34
|
-
Requires-Dist: alembic==1.
|
|
34
|
+
Requires-Dist: alembic==1.18.1
|
|
35
35
|
Requires-Dist: anyio>=3.7.0
|
|
36
36
|
Requires-Dist: apscheduler>=3.11.0
|
|
37
37
|
Requires-Dist: click==8.*
|
|
38
38
|
Requires-Dist: deepmerge==2.0
|
|
39
39
|
Requires-Dist: deprecated>=1.2.18
|
|
40
|
-
Requires-Dist: fastapi~=0.
|
|
40
|
+
Requires-Dist: fastapi~=0.128.0
|
|
41
41
|
Requires-Dist: fastapi-etag==0.4.0
|
|
42
42
|
Requires-Dist: itsdangerous>=2.2.0
|
|
43
43
|
Requires-Dist: jinja2==3.1.6
|
|
@@ -46,7 +46,7 @@ Requires-Dist: nwa-stdlib~=1.11.0
|
|
|
46
46
|
Requires-Dist: oauth2-lib>=2.5.0
|
|
47
47
|
Requires-Dist: orjson==3.11.5
|
|
48
48
|
Requires-Dist: pgvector>=0.4.1
|
|
49
|
-
Requires-Dist: prometheus-client==0.
|
|
49
|
+
Requires-Dist: prometheus-client==0.24.1
|
|
50
50
|
Requires-Dist: psycopg2-binary==2.9.11
|
|
51
51
|
Requires-Dist: pydantic-forms>=1.4.0
|
|
52
52
|
Requires-Dist: pydantic-settings~=2.12.0
|
|
@@ -62,8 +62,8 @@ Requires-Dist: sqlalchemy-utils==0.42.1
|
|
|
62
62
|
Requires-Dist: strawberry-graphql>=0.281.0,<0.285.0
|
|
63
63
|
Requires-Dist: structlog>=25.4.0
|
|
64
64
|
Requires-Dist: tabulate==0.9.0
|
|
65
|
-
Requires-Dist: typer==0.
|
|
66
|
-
Requires-Dist: uvicorn[standard]~=0.
|
|
65
|
+
Requires-Dist: typer==0.21.1
|
|
66
|
+
Requires-Dist: uvicorn[standard]~=0.40.0
|
|
67
67
|
Requires-Dist: pydantic-ai-slim >=1.27.0 ; extra == "agent"
|
|
68
68
|
Requires-Dist: ag-ui-protocol>=0.1.10 ; extra == "agent"
|
|
69
69
|
Requires-Dist: litellm>=1.75.7 ; extra == "agent"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
orchestrator/__init__.py,sha256=
|
|
1
|
+
orchestrator/__init__.py,sha256=ZUMqFoYxZjh4nowQu2_YP5vbtKfQeVG2YNxYm78KPYM,1454
|
|
2
2
|
orchestrator/agentic_app.py,sha256=ouiyyZiS4uS6Lox2DtbGGRnb2njJBMSHpSAGe-T5rX0,3028
|
|
3
3
|
orchestrator/app.py,sha256=5ITGSN_KeRi2qTvfwBXhjOGNyWNy-rdtzfOLEk76ZtY,14661
|
|
4
4
|
orchestrator/exception_handlers.py,sha256=UsW3dw8q0QQlNLcV359bIotah8DYjMsj2Ts1LfX4ClY,1268
|
|
@@ -41,7 +41,7 @@ orchestrator/cli/migrate_domain_models.py,sha256=WRXy_1OnziQwpsCFZXvjB30nDJtjj0i
|
|
|
41
41
|
orchestrator/cli/migrate_tasks.py,sha256=bju8XColjSZD0v3rS4kl-24dLr8En_H4-6enBmqd494,7255
|
|
42
42
|
orchestrator/cli/migrate_workflows.py,sha256=nxUpx0vgEIc_8aJrjAyrw3E9Dt8JmaamTts8oiQ4vHY,8923
|
|
43
43
|
orchestrator/cli/migration_helpers.py,sha256=C5tpkP5WEBr7G9S-1k1hgSI8ili6xd9Z5ygc9notaK0,4110
|
|
44
|
-
orchestrator/cli/scheduler.py,sha256=
|
|
44
|
+
orchestrator/cli/scheduler.py,sha256=PoadDvj8Vwbz2G50z8P97IqEx1JVaAdNntfZ_yrQUc8,5833
|
|
45
45
|
orchestrator/cli/domain_gen_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
46
|
orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py,sha256=uzpwsaau81hHSxNMOS9-o7kF-9_78R0f_UE0AvWooZQ,6775
|
|
47
47
|
orchestrator/cli/domain_gen_helpers/helpers.py,sha256=tIPxn8ezED_xYZxH7ZAtQLwkDc6RNmLZVxWAoJ3a9lw,4203
|
|
@@ -263,7 +263,7 @@ orchestrator/migrations/versions/schema/2025-12-10_9736496e3eba_set_is_task_true
|
|
|
263
263
|
orchestrator/schedules/__init__.py,sha256=i8sT88A3v_5KIfwbKZxe3rS2rMakOuqfAis0DRmBleU,1017
|
|
264
264
|
orchestrator/schedules/scheduler.py,sha256=8o7DoVs9Q1Q231FVMpv3tXtKbaydeNkYQ1h6kl7U1X4,7198
|
|
265
265
|
orchestrator/schedules/scheduling.py,sha256=1lSeAhKRGhZNOtFiB-FPMeo3bEIDpt9OdJKBkk7QknI,2914
|
|
266
|
-
orchestrator/schedules/service.py,sha256=
|
|
266
|
+
orchestrator/schedules/service.py,sha256=y7GqtfE0z7_StApCzbGiPFUE7rB92q_yrYYxMitnJtI,10198
|
|
267
267
|
orchestrator/schedules/validate_products.py,sha256=_ucUG9HecskG2eN3tcDSiMzJK9gN3kZB1dXjrtxcApY,1324
|
|
268
268
|
orchestrator/schemas/__init__.py,sha256=YDyZ0YBvzB4ML9oDBCBPGnBvf680zFFgUzg7X0tYBRY,2326
|
|
269
269
|
orchestrator/schemas/base.py,sha256=Vc444LetsINLRhG2SxW9Bq01hOzChPOhQWCImQTr-As,930
|
|
@@ -276,7 +276,7 @@ orchestrator/schemas/product_block.py,sha256=kCqvm6qadHpegMr9aWI_fYX-T7mS-5S-ldP
|
|
|
276
276
|
orchestrator/schemas/resource_type.py,sha256=VDju4XywcDDLxdpbWU62RTvR9QF8x_GRrpTlN_NE8uI,1064
|
|
277
277
|
orchestrator/schemas/schedules.py,sha256=Gb427IGR5mPTjKN8STwUhAWCJMCywJkrS8OetiiHTKY,2844
|
|
278
278
|
orchestrator/schemas/search.py,sha256=d_Vs1qU9Z5zuXN4pDk6jrVwiUXRKZ93U-tHW5Zfrw-w,1546
|
|
279
|
-
orchestrator/schemas/search_requests.py,sha256=
|
|
279
|
+
orchestrator/schemas/search_requests.py,sha256=2gb1mbzzMmSbMTtLmItrTSPWRXNKwdgoPIEiNFhTFjA,2144
|
|
280
280
|
orchestrator/schemas/subscription.py,sha256=-jXyHZIed9Xlia18ksSDyenblNN6Q2yM2FlGELyJ458,3423
|
|
281
281
|
orchestrator/schemas/subscription_descriptions.py,sha256=Ft_jw1U0bf9Z0U8O4OWfLlcl0mXCVT_qYVagBP3GbIQ,1262
|
|
282
282
|
orchestrator/schemas/workflow.py,sha256=StVoRGyNT2iIeq3z8BIlTPt0bcafzbeYxXRrCucR6LU,2146
|
|
@@ -295,7 +295,7 @@ orchestrator/search/aggregations/base.py,sha256=jC06rzecurlzIxh7RCctFgsaPxU1sGCa
|
|
|
295
295
|
orchestrator/search/core/__init__.py,sha256=q5G0z3nKjIHKFs1PkEG3nvTUy3Wp4kCyBtCbqUITj3A,579
|
|
296
296
|
orchestrator/search/core/embedding.py,sha256=n16H5fZRlfn91wI8PfZPa1R39HwQd8T1nwlDOzcOUBU,2823
|
|
297
297
|
orchestrator/search/core/exceptions.py,sha256=S_ZMEhrqsQBVqJ559FQ5J6tZU6BYLiU65AGWgSvgv_k,1159
|
|
298
|
-
orchestrator/search/core/types.py,sha256=
|
|
298
|
+
orchestrator/search/core/types.py,sha256=y9j4TJ_14SW6Ids4XvsSr1Zx3eLLaor0HU6LY0MECcg,9190
|
|
299
299
|
orchestrator/search/core/validators.py,sha256=zktY5A3RTBmfdARJoxoz9rnnyTZj7L30Kbmh9UTQz2o,1204
|
|
300
300
|
orchestrator/search/docs/index.md,sha256=zKzE2fbtHDfYTKaHg628wAsqCTOJ5yFUWV0ucFH3pAg,863
|
|
301
301
|
orchestrator/search/docs/running_local_text_embedding_inference.md,sha256=OR0NVZMb8DqpgXYxlwDUrJwfRk0bYOk1-LkDMqsV6bU,1327
|
|
@@ -312,10 +312,10 @@ orchestrator/search/indexing/tasks.py,sha256=0p68RNwJnHSGZQjfdpyFsS2Ma5Gr2PpZROZ
|
|
|
312
312
|
orchestrator/search/indexing/traverse.py,sha256=JLut9t4LoPCWhJ_63VgYhRKfjwyxRv-mTbQLC8mA_mU,15158
|
|
313
313
|
orchestrator/search/query/__init__.py,sha256=nCjvK_n2WQdV_ACrncFXEfnvLcHtuI__J7KLlFIaQvo,2437
|
|
314
314
|
orchestrator/search/query/builder.py,sha256=EfDSSOQKUBNtUESDBsKaPY6hZ_iDXAwc3qcNR4AGAEg,13261
|
|
315
|
-
orchestrator/search/query/engine.py,sha256=
|
|
315
|
+
orchestrator/search/query/engine.py,sha256=mlUrK_FKfytdYgsvhaZaiHSBvlqUvFERS5VAfzFHuNM,7920
|
|
316
316
|
orchestrator/search/query/exceptions.py,sha256=DrkNzXVbQAOi28FTHKimf_eTrXmhYwXrH986QhfQLPU,4941
|
|
317
317
|
orchestrator/search/query/export.py,sha256=_0ncVpTqN6AoQfW3WX0fWnDQX3hBz6ZGC31Beu4PVwQ,6678
|
|
318
|
-
orchestrator/search/query/mixins.py,sha256=
|
|
318
|
+
orchestrator/search/query/mixins.py,sha256=8zvrQMlIkWt3q0BFfekm9ugVmuu85GaKQBEgJxUQmj4,5178
|
|
319
319
|
orchestrator/search/query/queries.py,sha256=0jF97cU2Z98-oWm1Iyqf3xIgrmc7FcWAPTb51tUG4MA,4506
|
|
320
320
|
orchestrator/search/query/results.py,sha256=5OgAs39oncDIBdpB3NJltPr-UvLvLlxTWw9sn-lyfQA,10989
|
|
321
321
|
orchestrator/search/query/state.py,sha256=fMSBJs39kZTkpDE2T4h4x0x-51GqUvzAuePg2YUbO6I,3220
|
|
@@ -381,9 +381,9 @@ orchestrator/workflows/tasks/cleanup_tasks_log.py,sha256=FOcYfyH-dsNAilmW8ynEpz5
|
|
|
381
381
|
orchestrator/workflows/tasks/resume_workflows.py,sha256=OvYFY-Nun885ZAzcFp6hphvYtRy3VkdUgiGIU5TapZ0,4507
|
|
382
382
|
orchestrator/workflows/tasks/validate_product_type.py,sha256=KoDMqROGVQ0ZPu69jMFO7cto8j0xi11h0_IeBOcV94A,3413
|
|
383
383
|
orchestrator/workflows/tasks/validate_products.py,sha256=lCAXmCVhohgrdgJn7-d7fIxPj4MVOX0J8KezcvwIK3k,8716
|
|
384
|
-
orchestrator/workflows/tasks/validate_subscriptions.py,sha256=
|
|
384
|
+
orchestrator/workflows/tasks/validate_subscriptions.py,sha256=CFKf3igyrqGm-zzSMD0wbNLgJwKz8quNNgnNWDqgpI0,2387
|
|
385
385
|
orchestrator/workflows/translations/en-GB.json,sha256=ObBlH9XILJ9uNaGcJexi3IB0e6P8CKFKRgu29luIEM8,973
|
|
386
|
-
orchestrator_core-4.7.
|
|
387
|
-
orchestrator_core-4.7.
|
|
388
|
-
orchestrator_core-4.7.
|
|
389
|
-
orchestrator_core-4.7.
|
|
386
|
+
orchestrator_core-4.7.1.dist-info/licenses/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
|
|
387
|
+
orchestrator_core-4.7.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
388
|
+
orchestrator_core-4.7.1.dist-info/METADATA,sha256=2plaKnYq_wj2iBQX1jWqk6b773iTh0htol6M65lVsW4,6418
|
|
389
|
+
orchestrator_core-4.7.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|