sf-queue-sdk 0.4.0b131__tar.gz → 0.5.0b4__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.
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/.gitignore +6 -0
- sf_queue_sdk-0.4.0b131/README.md → sf_queue_sdk-0.5.0b4/PKG-INFO +17 -2
- sf_queue_sdk-0.4.0b131/PKG-INFO → sf_queue_sdk-0.5.0b4/README.md +9 -10
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/pyproject.toml +1 -1
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/__init__.py +1 -1
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/document_upload_queue.py +5 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/types.py +8 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/client.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/__init__.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/email/v1/email_pb2.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/email/v1/email_pb2.pyi +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/prompt_ingest/v1/prompt_ingest_pb2.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/prompt_ingest/v1/prompt_ingest_pb2.pyi +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/tool_assignment/v1/tool_assignment_pb2.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/tool_assignment/v1/tool_assignment_pb2.pyi +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/topic_assignment/v1/topic_assignment_pb2.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/topic_assignment/v1/topic_assignment_pb2.pyi +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/query.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/__init__.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/base_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/document_notes_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/document_persist_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/email_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/pdf_to_image_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/prompt_ingest_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/recommendation_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/tool_assignment_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/queues/topic_assignment_queue.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/redis_client.py +0 -0
- {sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/sanitize.py +0 -0
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: sf-queue-sdk
|
|
3
|
+
Version: 0.5.0b4
|
|
4
|
+
Summary: Python SDK for sf-queue - Redis-based queue system
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Requires-Dist: redis>=5.0.0
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
|
|
1
9
|
# sf-queue-sdk
|
|
2
10
|
|
|
3
11
|
Python SDK for sf-queue. Enqueues emails via Redis Streams with optional blocking confirmation from the Go consumer service.
|
|
@@ -591,7 +599,7 @@ result = client.document_upload.send(
|
|
|
591
599
|
| `generate_notes` | `bool` | Yes | Whether to generate study notes |
|
|
592
600
|
| `generate_study_path` | `bool` | Yes | Whether to generate a study path |
|
|
593
601
|
| `splitting` | `str` | No | Splitting strategy for sources with at least 40,000 tokens (default: `"auto"`). Smaller sources always persist as one material after per-topic note generation. |
|
|
594
|
-
| `language` | `str` | No |
|
|
602
|
+
| `language` | `str` | No | Output language as an app ISO code, e.g. `"de"` — not a locale like `"de-DE"`. Note the non-standard `cz` (Czech) and `gr` (Greek). (default: `"en"`) |
|
|
595
603
|
| `use_markdown_ocr` | `bool` | No | Use Markdown OCR for image interpretation (default: `False`) |
|
|
596
604
|
| `flashcard_amount` | `int` | No | Number of flashcards to generate (default: `12`) |
|
|
597
605
|
| `new_url` | `Optional[str]` | No | Alternative URL if file was re-uploaded |
|
|
@@ -605,6 +613,13 @@ result = client.document_upload.send(
|
|
|
605
613
|
| `youtube_title` | `Optional[str]` | No | Title override for YouTube video transcripts |
|
|
606
614
|
| `skip_material_creation` | `Optional[bool]` | No | Skip folder and material creation when the material already exists (e.g. live lectures) |
|
|
607
615
|
| `existing_material_id` | `Optional[str]` | No | ID of an existing material to link to topics instead of creating new ones (used with `skip_material_creation`) |
|
|
616
|
+
| `params` | `Optional[dict]` | No | Typed extensible flags for pipeline behavior (see below) |
|
|
617
|
+
|
|
618
|
+
#### `params` fields
|
|
619
|
+
|
|
620
|
+
| Field | Type | Description |
|
|
621
|
+
|-------|------|-------------|
|
|
622
|
+
| `liveLecture` | `bool` | When true, forces `generateNotes=false` and `skipMaterialCreation=true` in the pipeline. Clustering still runs to produce sections/topics for study path generation. Use with `existing_material_id` and `extracted_content`. |
|
|
608
623
|
|
|
609
624
|
### Response Type
|
|
610
625
|
|
|
@@ -787,7 +802,7 @@ result = client.document_persist.send(
|
|
|
787
802
|
| `study_set_id` | `str` | Yes | Study set to persist materials into |
|
|
788
803
|
| `user_id` | `str` | Yes | User who uploaded the document |
|
|
789
804
|
| `stash_key` | `str` | Yes | GCS key of the clustering stash JSON |
|
|
790
|
-
| `language` | `str` | No |
|
|
805
|
+
| `language` | `str` | No | Output language as an app ISO code, e.g. `"de"` — not a locale like `"de-DE"`. Note the non-standard `cz` (Czech) and `gr` (Greek). (default: `"en"`) |
|
|
791
806
|
| `callback_url` | `Optional[str]` | No | URL to POST results to after persistence |
|
|
792
807
|
| `callback_api_key` | `Optional[str]` | No | Auth key for the callback |
|
|
793
808
|
| `approved_topic_ids` | `Optional[list[str]]` | No | Filter to only these topic IDs from the stash (omit to persist all) |
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: sf-queue-sdk
|
|
3
|
-
Version: 0.4.0b131
|
|
4
|
-
Summary: Python SDK for sf-queue - Redis-based queue system
|
|
5
|
-
Requires-Python: >=3.11
|
|
6
|
-
Requires-Dist: redis>=5.0.0
|
|
7
|
-
Description-Content-Type: text/markdown
|
|
8
|
-
|
|
9
1
|
# sf-queue-sdk
|
|
10
2
|
|
|
11
3
|
Python SDK for sf-queue. Enqueues emails via Redis Streams with optional blocking confirmation from the Go consumer service.
|
|
@@ -599,7 +591,7 @@ result = client.document_upload.send(
|
|
|
599
591
|
| `generate_notes` | `bool` | Yes | Whether to generate study notes |
|
|
600
592
|
| `generate_study_path` | `bool` | Yes | Whether to generate a study path |
|
|
601
593
|
| `splitting` | `str` | No | Splitting strategy for sources with at least 40,000 tokens (default: `"auto"`). Smaller sources always persist as one material after per-topic note generation. |
|
|
602
|
-
| `language` | `str` | No |
|
|
594
|
+
| `language` | `str` | No | Output language as an app ISO code, e.g. `"de"` — not a locale like `"de-DE"`. Note the non-standard `cz` (Czech) and `gr` (Greek). (default: `"en"`) |
|
|
603
595
|
| `use_markdown_ocr` | `bool` | No | Use Markdown OCR for image interpretation (default: `False`) |
|
|
604
596
|
| `flashcard_amount` | `int` | No | Number of flashcards to generate (default: `12`) |
|
|
605
597
|
| `new_url` | `Optional[str]` | No | Alternative URL if file was re-uploaded |
|
|
@@ -613,6 +605,13 @@ result = client.document_upload.send(
|
|
|
613
605
|
| `youtube_title` | `Optional[str]` | No | Title override for YouTube video transcripts |
|
|
614
606
|
| `skip_material_creation` | `Optional[bool]` | No | Skip folder and material creation when the material already exists (e.g. live lectures) |
|
|
615
607
|
| `existing_material_id` | `Optional[str]` | No | ID of an existing material to link to topics instead of creating new ones (used with `skip_material_creation`) |
|
|
608
|
+
| `params` | `Optional[dict]` | No | Typed extensible flags for pipeline behavior (see below) |
|
|
609
|
+
|
|
610
|
+
#### `params` fields
|
|
611
|
+
|
|
612
|
+
| Field | Type | Description |
|
|
613
|
+
|-------|------|-------------|
|
|
614
|
+
| `liveLecture` | `bool` | When true, forces `generateNotes=false` and `skipMaterialCreation=true` in the pipeline. Clustering still runs to produce sections/topics for study path generation. Use with `existing_material_id` and `extracted_content`. |
|
|
616
615
|
|
|
617
616
|
### Response Type
|
|
618
617
|
|
|
@@ -795,7 +794,7 @@ result = client.document_persist.send(
|
|
|
795
794
|
| `study_set_id` | `str` | Yes | Study set to persist materials into |
|
|
796
795
|
| `user_id` | `str` | Yes | User who uploaded the document |
|
|
797
796
|
| `stash_key` | `str` | Yes | GCS key of the clustering stash JSON |
|
|
798
|
-
| `language` | `str` | No |
|
|
797
|
+
| `language` | `str` | No | Output language as an app ISO code, e.g. `"de"` — not a locale like `"de-DE"`. Note the non-standard `cz` (Czech) and `gr` (Greek). (default: `"en"`) |
|
|
799
798
|
| `callback_url` | `Optional[str]` | No | URL to POST results to after persistence |
|
|
800
799
|
| `callback_api_key` | `Optional[str]` | No | Auth key for the callback |
|
|
801
800
|
| `approved_topic_ids` | `Optional[list[str]]` | No | Filter to only these topic IDs from the stash (omit to persist all) |
|
|
@@ -52,6 +52,7 @@ class DocumentUploadQueue(BaseQueue):
|
|
|
52
52
|
study_plan_hook: Optional[bool] = None,
|
|
53
53
|
skip_material_creation: Optional[bool] = None,
|
|
54
54
|
existing_material_id: Optional[str] = None,
|
|
55
|
+
params: Optional[dict] = None,
|
|
55
56
|
) -> SendResult:
|
|
56
57
|
"""Enqueue a document upload processing request (fire and forget)."""
|
|
57
58
|
self._validate(uploaded_file_id, study_set_id, user_id, pdf_s3_key, filename)
|
|
@@ -88,6 +89,7 @@ class DocumentUploadQueue(BaseQueue):
|
|
|
88
89
|
study_plan_hook=study_plan_hook,
|
|
89
90
|
skip_material_creation=skip_material_creation,
|
|
90
91
|
existing_material_id=existing_material_id,
|
|
92
|
+
params=params,
|
|
91
93
|
)
|
|
92
94
|
message_id = self._enqueue(payload)
|
|
93
95
|
self._set_initial_status(message_id)
|
|
@@ -174,6 +176,7 @@ class DocumentUploadQueue(BaseQueue):
|
|
|
174
176
|
study_plan_hook: Optional[bool],
|
|
175
177
|
skip_material_creation: Optional[bool],
|
|
176
178
|
existing_material_id: Optional[str],
|
|
179
|
+
params: Optional[dict],
|
|
177
180
|
) -> dict[str, Any]:
|
|
178
181
|
"""Build the document upload payload (snake_case -> camelCase)."""
|
|
179
182
|
payload: dict[str, Any] = {
|
|
@@ -227,6 +230,8 @@ class DocumentUploadQueue(BaseQueue):
|
|
|
227
230
|
payload["skipMaterialCreation"] = skip_material_creation
|
|
228
231
|
if existing_material_id is not None:
|
|
229
232
|
payload["existingMaterialId"] = existing_material_id
|
|
233
|
+
if params is not None:
|
|
234
|
+
payload["params"] = params
|
|
230
235
|
|
|
231
236
|
return payload
|
|
232
237
|
|
|
@@ -173,6 +173,13 @@ class BatchRecommendationResponse:
|
|
|
173
173
|
processed_at: Optional[str] = None
|
|
174
174
|
|
|
175
175
|
|
|
176
|
+
@dataclass
|
|
177
|
+
class DocumentUploadParams:
|
|
178
|
+
"""Extensible flags for pipeline behavior."""
|
|
179
|
+
|
|
180
|
+
live_lecture: Optional[bool] = None
|
|
181
|
+
|
|
182
|
+
|
|
176
183
|
@dataclass
|
|
177
184
|
class DocumentUploadData:
|
|
178
185
|
"""Data for a document upload processing request."""
|
|
@@ -206,6 +213,7 @@ class DocumentUploadData:
|
|
|
206
213
|
callback_url: Optional[str] = None
|
|
207
214
|
callback_api_key: Optional[str] = None
|
|
208
215
|
study_plan_hook: Optional[bool] = None
|
|
216
|
+
params: Optional[DocumentUploadParams] = None
|
|
209
217
|
|
|
210
218
|
|
|
211
219
|
@dataclass
|
|
File without changes
|
|
File without changes
|
{sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/email/v1/email_pb2.py
RENAMED
|
File without changes
|
{sf_queue_sdk-0.4.0b131 → sf_queue_sdk-0.5.0b4}/queue_sdk/generated/queue/email/v1/email_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|