sdg-hub 0.2.0__py3-none-any.whl → 0.2.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.
- sdg_hub/_version.py +2 -2
- sdg_hub/core/blocks/llm/__init__.py +2 -0
- sdg_hub/core/blocks/llm/llm_chat_with_parsing_retry_block.py +491 -0
- sdg_hub/core/blocks/llm/text_parser_block.py +77 -30
- sdg_hub/core/blocks/registry.py +1 -1
- sdg_hub/core/flow/base.py +243 -14
- sdg_hub/core/flow/checkpointer.py +333 -0
- sdg_hub/core/flow/metadata.py +45 -0
- sdg_hub/core/flow/migration.py +12 -1
- sdg_hub/core/flow/registry.py +121 -58
- sdg_hub/core/flow/validation.py +12 -0
- sdg_hub/core/utils/__init__.py +2 -1
- sdg_hub/core/utils/datautils.py +52 -1
- sdg_hub/core/utils/flow_id_words.yaml +231 -0
- sdg_hub/core/utils/flow_identifier.py +94 -0
- sdg_hub/core/utils/yaml_utils.py +59 -0
- sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/flow.yaml +1 -0
- {sdg_hub-0.2.0.dist-info → sdg_hub-0.2.1.dist-info}/METADATA +21 -18
- {sdg_hub-0.2.0.dist-info → sdg_hub-0.2.1.dist-info}/RECORD +22 -17
- {sdg_hub-0.2.0.dist-info → sdg_hub-0.2.1.dist-info}/WHEEL +0 -0
- {sdg_hub-0.2.0.dist-info → sdg_hub-0.2.1.dist-info}/licenses/LICENSE +0 -0
- {sdg_hub-0.2.0.dist-info → sdg_hub-0.2.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,231 @@
|
|
1
|
+
# Flow ID word lists for wandb-style deterministic generation
|
2
|
+
# Format: adjective-noun-number (e.g., "bright-river-123")
|
3
|
+
|
4
|
+
adjectives:
|
5
|
+
- able
|
6
|
+
- ancient
|
7
|
+
- autumn
|
8
|
+
- bold
|
9
|
+
- brave
|
10
|
+
- bright
|
11
|
+
- calm
|
12
|
+
- clean
|
13
|
+
- clever
|
14
|
+
- cool
|
15
|
+
- cosmic
|
16
|
+
- daily
|
17
|
+
- dark
|
18
|
+
- deep
|
19
|
+
- divine
|
20
|
+
- dry
|
21
|
+
- eager
|
22
|
+
- early
|
23
|
+
- earnest
|
24
|
+
- easy
|
25
|
+
- epic
|
26
|
+
- even
|
27
|
+
- exact
|
28
|
+
- fair
|
29
|
+
- fast
|
30
|
+
- fine
|
31
|
+
- firm
|
32
|
+
- first
|
33
|
+
- fresh
|
34
|
+
- full
|
35
|
+
- gentle
|
36
|
+
- glad
|
37
|
+
- golden
|
38
|
+
- good
|
39
|
+
- great
|
40
|
+
- green
|
41
|
+
- happy
|
42
|
+
- hard
|
43
|
+
- heavy
|
44
|
+
- high
|
45
|
+
- holy
|
46
|
+
- huge
|
47
|
+
- jolly
|
48
|
+
- keen
|
49
|
+
- kind
|
50
|
+
- large
|
51
|
+
- late
|
52
|
+
- light
|
53
|
+
- live
|
54
|
+
- long
|
55
|
+
- loud
|
56
|
+
- lucky
|
57
|
+
- major
|
58
|
+
- mild
|
59
|
+
- new
|
60
|
+
- nice
|
61
|
+
- noble
|
62
|
+
- old
|
63
|
+
- open
|
64
|
+
- plain
|
65
|
+
- proud
|
66
|
+
- pure
|
67
|
+
- quick
|
68
|
+
- quiet
|
69
|
+
- rapid
|
70
|
+
- rare
|
71
|
+
- real
|
72
|
+
- rich
|
73
|
+
- right
|
74
|
+
- rough
|
75
|
+
- round
|
76
|
+
- safe
|
77
|
+
- sharp
|
78
|
+
- short
|
79
|
+
- simple
|
80
|
+
- slow
|
81
|
+
- small
|
82
|
+
- smart
|
83
|
+
- smooth
|
84
|
+
- soft
|
85
|
+
- solid
|
86
|
+
- strong
|
87
|
+
- sure
|
88
|
+
- swift
|
89
|
+
- tall
|
90
|
+
- thick
|
91
|
+
- thin
|
92
|
+
- tiny
|
93
|
+
- vast
|
94
|
+
- warm
|
95
|
+
- weak
|
96
|
+
- whole
|
97
|
+
- wide
|
98
|
+
- wild
|
99
|
+
- wise
|
100
|
+
- young
|
101
|
+
- exalted
|
102
|
+
- legendary
|
103
|
+
- resilient
|
104
|
+
- vibrant
|
105
|
+
- stellar
|
106
|
+
- graceful
|
107
|
+
- radiant
|
108
|
+
- serene
|
109
|
+
- brilliant
|
110
|
+
- majestic
|
111
|
+
- elegant
|
112
|
+
|
113
|
+
nouns:
|
114
|
+
- abyss
|
115
|
+
- angel
|
116
|
+
- arrow
|
117
|
+
- atom
|
118
|
+
- ball
|
119
|
+
- band
|
120
|
+
- bark
|
121
|
+
- beam
|
122
|
+
- bear
|
123
|
+
- bell
|
124
|
+
- bird
|
125
|
+
- bloom
|
126
|
+
- blue
|
127
|
+
- boat
|
128
|
+
- bone
|
129
|
+
- book
|
130
|
+
- brook
|
131
|
+
- brush
|
132
|
+
- calm
|
133
|
+
- cave
|
134
|
+
- cell
|
135
|
+
- chant
|
136
|
+
- chord
|
137
|
+
- clay
|
138
|
+
- cliff
|
139
|
+
- cloud
|
140
|
+
- coal
|
141
|
+
- coast
|
142
|
+
- coin
|
143
|
+
- colt
|
144
|
+
- coral
|
145
|
+
- core
|
146
|
+
- creek
|
147
|
+
- crop
|
148
|
+
- crown
|
149
|
+
- cube
|
150
|
+
- dawn
|
151
|
+
- day
|
152
|
+
- dew
|
153
|
+
- disk
|
154
|
+
- dove
|
155
|
+
- dream
|
156
|
+
- drop
|
157
|
+
- dust
|
158
|
+
- eagle
|
159
|
+
- earth
|
160
|
+
- echo
|
161
|
+
- edge
|
162
|
+
- ember
|
163
|
+
- field
|
164
|
+
- fire
|
165
|
+
- fish
|
166
|
+
- flame
|
167
|
+
- flight
|
168
|
+
- flow
|
169
|
+
- foam
|
170
|
+
- fog
|
171
|
+
- forest
|
172
|
+
- frost
|
173
|
+
- glow
|
174
|
+
- gold
|
175
|
+
- grass
|
176
|
+
- grove
|
177
|
+
- haze
|
178
|
+
- heart
|
179
|
+
- hill
|
180
|
+
- ice
|
181
|
+
- iris
|
182
|
+
- jade
|
183
|
+
- lake
|
184
|
+
- land
|
185
|
+
- leaf
|
186
|
+
- light
|
187
|
+
- lion
|
188
|
+
- moon
|
189
|
+
- moss
|
190
|
+
- night
|
191
|
+
- oak
|
192
|
+
- ocean
|
193
|
+
- path
|
194
|
+
- peak
|
195
|
+
- pearl
|
196
|
+
- pine
|
197
|
+
- pond
|
198
|
+
- rain
|
199
|
+
- reef
|
200
|
+
- river
|
201
|
+
- rock
|
202
|
+
- rose
|
203
|
+
- sage
|
204
|
+
- sand
|
205
|
+
- sea
|
206
|
+
- shadow
|
207
|
+
- shore
|
208
|
+
- sky
|
209
|
+
- snow
|
210
|
+
- song
|
211
|
+
- star
|
212
|
+
- stone
|
213
|
+
- storm
|
214
|
+
- stream
|
215
|
+
- sun
|
216
|
+
- sunset
|
217
|
+
- surf
|
218
|
+
- tide
|
219
|
+
- tree
|
220
|
+
- vale
|
221
|
+
- wave
|
222
|
+
- wind
|
223
|
+
- wing
|
224
|
+
- wolf
|
225
|
+
- wood
|
226
|
+
- darkness
|
227
|
+
- meadow
|
228
|
+
- thunder
|
229
|
+
- crystal
|
230
|
+
- valley
|
231
|
+
- mountain
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# Standard
|
2
|
+
from pathlib import Path
|
3
|
+
from typing import Dict, List
|
4
|
+
import hashlib
|
5
|
+
import random
|
6
|
+
|
7
|
+
# Third Party
|
8
|
+
import yaml
|
9
|
+
|
10
|
+
# Cache for loaded word lists to avoid repeated file I/O
|
11
|
+
_WORD_CACHE: Dict[str, List[str]] = {}
|
12
|
+
|
13
|
+
|
14
|
+
def _load_word_lists() -> Dict[str, List[str]]:
|
15
|
+
"""Load word lists from YAML configuration file.
|
16
|
+
|
17
|
+
Returns:
|
18
|
+
Dictionary containing 'adjectives' and 'nouns' lists
|
19
|
+
|
20
|
+
Raises:
|
21
|
+
FileNotFoundError: If the word list file is not found
|
22
|
+
yaml.YAMLError: If the YAML file is malformed
|
23
|
+
"""
|
24
|
+
global _WORD_CACHE
|
25
|
+
|
26
|
+
if _WORD_CACHE:
|
27
|
+
return _WORD_CACHE
|
28
|
+
|
29
|
+
# Get path to word list file relative to this module
|
30
|
+
current_dir = Path(__file__).parent
|
31
|
+
words_file = current_dir / "flow_id_words.yaml"
|
32
|
+
|
33
|
+
try:
|
34
|
+
with open(words_file, "r", encoding="utf-8") as f:
|
35
|
+
word_data = yaml.safe_load(f)
|
36
|
+
|
37
|
+
_WORD_CACHE = {
|
38
|
+
"adjectives": word_data["adjectives"],
|
39
|
+
"nouns": word_data["nouns"],
|
40
|
+
}
|
41
|
+
|
42
|
+
return _WORD_CACHE
|
43
|
+
|
44
|
+
except FileNotFoundError:
|
45
|
+
# Fallback to minimal word lists if configuration file is not found
|
46
|
+
_WORD_CACHE = {
|
47
|
+
"adjectives": ["bright", "calm", "fast", "smart", "quick"],
|
48
|
+
"nouns": ["river", "star", "cloud", "moon", "rock"],
|
49
|
+
}
|
50
|
+
return _WORD_CACHE
|
51
|
+
except yaml.YAMLError as e:
|
52
|
+
raise yaml.YAMLError(f"Error parsing word list YAML: {e}")
|
53
|
+
except KeyError as e:
|
54
|
+
raise KeyError(f"Missing required key in word list YAML: {e}")
|
55
|
+
|
56
|
+
|
57
|
+
def get_flow_identifier(name: str) -> str:
|
58
|
+
"""Generate a deterministic wandb-style flow identifier.
|
59
|
+
|
60
|
+
Creates a human-readable identifier in the format "adjective-noun-number"
|
61
|
+
that is deterministic based on the input name. Same name will always
|
62
|
+
produce the same identifier.
|
63
|
+
|
64
|
+
Args:
|
65
|
+
name: Flow name to generate identifier from
|
66
|
+
|
67
|
+
Returns:
|
68
|
+
A string in the format "adjective-noun-number" (e.g., "bright-river-123")
|
69
|
+
|
70
|
+
Examples:
|
71
|
+
>>> get_flow_identifier("My Document QA Flow")
|
72
|
+
"bright-river-123"
|
73
|
+
>>> get_flow_identifier("My Document QA Flow") # Same input
|
74
|
+
"bright-river-123" # Same output
|
75
|
+
|
76
|
+
Raises:
|
77
|
+
FileNotFoundError: If the word list configuration file is not found
|
78
|
+
yaml.YAMLError: If the word list YAML file is malformed
|
79
|
+
"""
|
80
|
+
# Load word lists from YAML configuration
|
81
|
+
word_lists = _load_word_lists()
|
82
|
+
adjectives = word_lists["adjectives"]
|
83
|
+
nouns = word_lists["nouns"]
|
84
|
+
|
85
|
+
# Create deterministic seed from name
|
86
|
+
seed_value = int(hashlib.sha256(name.encode()).hexdigest()[:8], 16)
|
87
|
+
rng = random.Random(seed_value)
|
88
|
+
|
89
|
+
# Select words and number deterministically
|
90
|
+
adjective = rng.choice(adjectives)
|
91
|
+
noun = rng.choice(nouns)
|
92
|
+
number = rng.randint(1, 999)
|
93
|
+
|
94
|
+
return f"{adjective}-{noun}-{number}"
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
2
|
+
"""YAML utilities for flow configuration."""
|
3
|
+
|
4
|
+
# Standard
|
5
|
+
from pathlib import Path
|
6
|
+
from typing import Any, Dict
|
7
|
+
|
8
|
+
# Third Party
|
9
|
+
import yaml
|
10
|
+
|
11
|
+
# Local
|
12
|
+
from .logger_config import setup_logger
|
13
|
+
|
14
|
+
logger = setup_logger(__name__)
|
15
|
+
|
16
|
+
|
17
|
+
def save_flow_yaml(
|
18
|
+
yaml_path: str,
|
19
|
+
flow_config: Dict[str, Any],
|
20
|
+
reason: str = "",
|
21
|
+
sort_keys: bool = False,
|
22
|
+
width: int = 240,
|
23
|
+
indent: int = 2,
|
24
|
+
) -> None:
|
25
|
+
"""
|
26
|
+
Save flow configuration to a YAML file.
|
27
|
+
|
28
|
+
This utility function saves flow configurations to YAML files,
|
29
|
+
ensuring consistent formatting and logging across the codebase.
|
30
|
+
|
31
|
+
Parameters
|
32
|
+
----------
|
33
|
+
yaml_path : str
|
34
|
+
Path to the YAML file to write.
|
35
|
+
flow_config : Dict[str, Any]
|
36
|
+
Flow configuration to save.
|
37
|
+
reason : str, optional
|
38
|
+
Reason for saving, used in log message.
|
39
|
+
width : int, optional
|
40
|
+
Maximum line width for YAML output.
|
41
|
+
indent : int, optional
|
42
|
+
Indentation level for YAML output.
|
43
|
+
"""
|
44
|
+
yaml_path = str(Path(yaml_path)) # Normalize path
|
45
|
+
|
46
|
+
with open(yaml_path, "w", encoding="utf-8") as f:
|
47
|
+
yaml.dump(
|
48
|
+
flow_config,
|
49
|
+
f,
|
50
|
+
default_flow_style=False,
|
51
|
+
sort_keys=sort_keys,
|
52
|
+
width=width,
|
53
|
+
indent=indent,
|
54
|
+
)
|
55
|
+
|
56
|
+
log_msg = f"Saved flow configuration to YAML: {yaml_path}"
|
57
|
+
if reason:
|
58
|
+
log_msg = f"{log_msg} ({reason})"
|
59
|
+
logger.debug(log_msg)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
metadata:
|
2
|
+
id: small-rock-799
|
2
3
|
name: "Advanced Document Grounded Question-Answer Generation Flow for Knowledge Tuning"
|
3
4
|
description: "A comprehensive flow that generates high-quality question-answer pairs from input documents using multiple LLM blocks for question generation, answer synthesis, and quality evaluation."
|
4
5
|
version: "1.0.0"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: sdg_hub
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.1
|
4
4
|
Summary: Synthetic Data Generation
|
5
5
|
Author-email: Red Hat AI Innovation <abhandwa@redhat.com>
|
6
6
|
License: Apache-2.0
|
@@ -121,7 +121,7 @@ uv pip install sdg-hub[examples]
|
|
121
121
|
|
122
122
|
## 🚀 Quick Start
|
123
123
|
|
124
|
-
###
|
124
|
+
### Core Concepts
|
125
125
|
|
126
126
|
**Blocks** are composable units that transform datasets - think of them as data processing Lego pieces. Each block performs a specific task: LLM chat, text parsing, evaluation, or transformation.
|
127
127
|
|
@@ -136,7 +136,7 @@ dataset → Block₁ → Block₂ → Block₃ → enriched_dataset
|
|
136
136
|
|
137
137
|
#### Flow Discovery
|
138
138
|
```python
|
139
|
-
from sdg_hub import FlowRegistry
|
139
|
+
from sdg_hub import FlowRegistry, Flow
|
140
140
|
|
141
141
|
# Auto-discover all available flows (no setup needed!)
|
142
142
|
FlowRegistry.discover_flows()
|
@@ -150,16 +150,20 @@ qa_flows = FlowRegistry.search_flows(tag="question-generation")
|
|
150
150
|
print(f"QA flows: {qa_flows}")
|
151
151
|
```
|
152
152
|
|
153
|
-
|
153
|
+
Each flow has a **unique, human-readable ID** automatically generated from its name. These IDs provide a convenient shorthand for referencing flows:
|
154
|
+
|
154
155
|
```python
|
155
|
-
|
156
|
-
|
156
|
+
# Every flow gets a deterministic ID
|
157
|
+
# Same flow name always generates the same ID
|
158
|
+
flow_id = "small-rock-799"
|
157
159
|
|
158
|
-
#
|
159
|
-
|
160
|
-
flow_path = FlowRegistry.get_flow_path(flow_name)
|
160
|
+
# Use ID to reference the flow
|
161
|
+
flow_path = FlowRegistry.get_flow_path(flow_id)
|
161
162
|
flow = Flow.from_yaml(flow_path)
|
163
|
+
```
|
162
164
|
|
165
|
+
#### Discovering Models and Configuring them
|
166
|
+
```python
|
163
167
|
# Discover recommended models
|
164
168
|
default_model = flow.get_default_model()
|
165
169
|
recommendations = flow.get_model_recommendations()
|
@@ -171,7 +175,9 @@ flow.set_model_config(
|
|
171
175
|
api_base="http://localhost:8000/v1",
|
172
176
|
api_key="your_key",
|
173
177
|
)
|
174
|
-
|
178
|
+
```
|
179
|
+
#### Load your dataset and run the flow
|
180
|
+
```python
|
175
181
|
# Create your dataset with required columns
|
176
182
|
dataset = Dataset.from_dict({
|
177
183
|
'document': ['Your document text here...'],
|
@@ -186,6 +192,11 @@ dataset = Dataset.from_dict({
|
|
186
192
|
'icl_response_3': ['Example answer 3']
|
187
193
|
})
|
188
194
|
|
195
|
+
# Quick Testing with Dry Run
|
196
|
+
dry_result = flow.dry_run(dataset, sample_size=1)
|
197
|
+
print(f"Dry run completed in {dry_result['execution_time_seconds']:.2f}s")
|
198
|
+
print(f"Output columns: {dry_result['final_dataset']['columns']}")
|
199
|
+
|
189
200
|
# Generate high-quality QA pairs
|
190
201
|
result = flow.generate(dataset)
|
191
202
|
|
@@ -196,14 +207,6 @@ faithfulness_scores = result['faithfulness_judgment']
|
|
196
207
|
relevancy_scores = result['relevancy_score']
|
197
208
|
```
|
198
209
|
|
199
|
-
#### Quick Testing with Dry Run
|
200
|
-
```python
|
201
|
-
# Test the flow with a small sample first
|
202
|
-
dry_result = flow.dry_run(dataset, sample_size=1)
|
203
|
-
print(f"Dry run completed in {dry_result['execution_time_seconds']:.2f}s")
|
204
|
-
print(f"Output columns: {dry_result['final_dataset']['columns']}")
|
205
|
-
```
|
206
|
-
|
207
210
|
|
208
211
|
## 📄 License
|
209
212
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
sdg_hub/__init__.py,sha256=Tw-6R5a8_W1kJcTAsW3R9ltBDP1dy5-fe7Tvt3cSyCQ,550
|
2
|
-
sdg_hub/_version.py,sha256=
|
2
|
+
sdg_hub/_version.py,sha256=UoNvMtd4wCG76RwoSpNCUtaFyTwakGcZolfjXzNVSMY,511
|
3
3
|
sdg_hub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
sdg_hub/core/__init__.py,sha256=NwqB4fwhC29W50VW7QXZssLxx122YvgO9LHDLdgAnrI,496
|
5
5
|
sdg_hub/core/blocks/__init__.py,sha256=9sCkCvDQzJGSedaePVlEIpbNwrkBz_K500VW_6FLhuE,1601
|
6
6
|
sdg_hub/core/blocks/base.py,sha256=TrzUAkG7Tiquk0Z3SOFsb5mRnHd1IbHH6gFPVH1P7T8,10424
|
7
|
-
sdg_hub/core/blocks/registry.py,sha256=
|
7
|
+
sdg_hub/core/blocks/registry.py,sha256=U__75QrxFpRaJlt36mOd26dgOqBeePs-ZX0Rnutp6r0,9782
|
8
8
|
sdg_hub/core/blocks/deprecated_blocks/__init__.py,sha256=RDu3MWFStDQko-TKkx8tGoB1UTatP_RSldZK43zHDvY,889
|
9
9
|
sdg_hub/core/blocks/deprecated_blocks/combine_columns.py,sha256=HCvpaYsAwgx1Dm0vIshcWsKoVsRT0KrmKp9j4oqtByc,2757
|
10
10
|
sdg_hub/core/blocks/deprecated_blocks/duplicate_columns.py,sha256=maCaaEs0EMMzt7L1xm7fAH3ylaFMHEkeC_dtOw3FrjU,2694
|
@@ -21,13 +21,14 @@ sdg_hub/core/blocks/evaluation/evaluate_relevancy_block.py,sha256=ieQRwl4bx5EQ3m
|
|
21
21
|
sdg_hub/core/blocks/evaluation/verify_question_block.py,sha256=fSNbW1KpdfVE0fQsm4Y8QfVk6A3J5H3C0dtGn49t8tM,22853
|
22
22
|
sdg_hub/core/blocks/filtering/__init__.py,sha256=isxSVSvDqkMjG8dQSl3Q2M4g5c1t9fTjBSA21icf-yA,275
|
23
23
|
sdg_hub/core/blocks/filtering/column_value_filter.py,sha256=H8Gif0q9Wc_d1TnVow8Zpsg7blJOFGN1EZmV6OPpkcg,5971
|
24
|
-
sdg_hub/core/blocks/llm/__init__.py,sha256=
|
24
|
+
sdg_hub/core/blocks/llm/__init__.py,sha256=N6-Prgd4X85oWbMQzhYMrq7OX-NTJm57cghowK-val0,844
|
25
25
|
sdg_hub/core/blocks/llm/client_manager.py,sha256=vaoPoTITJ9IlooeVRfu6M4WBc08mp4aJZ5tvnl2fMv8,12309
|
26
26
|
sdg_hub/core/blocks/llm/config.py,sha256=TmbfqxPHH3mShTK2EuCX2AGKtDvl0aSvihsaqgzABtM,11266
|
27
27
|
sdg_hub/core/blocks/llm/error_handler.py,sha256=7T-019ZFB9qgZoX1ybIiXyaLjPzrF96qcKmUu6vmO6g,12178
|
28
28
|
sdg_hub/core/blocks/llm/llm_chat_block.py,sha256=3o2oV_ecWsEHFp5FWPIpBT-yJ1imJmeZy2b9GZL-T54,20121
|
29
|
+
sdg_hub/core/blocks/llm/llm_chat_with_parsing_retry_block.py,sha256=mMmifTC-sRUhdxuLRRtAMhQC7r7NOyTAfBx-xTzLzTc,19669
|
29
30
|
sdg_hub/core/blocks/llm/prompt_builder_block.py,sha256=fkJd718X1oYlMY1cjo_8WCO16Gl8Tm0bUPWR78E_uws,13935
|
30
|
-
sdg_hub/core/blocks/llm/text_parser_block.py,sha256=
|
31
|
+
sdg_hub/core/blocks/llm/text_parser_block.py,sha256=vQgUaeYJI9HuxDPRjII-NIOsR01JA-sBBGl05623L8I,14391
|
31
32
|
sdg_hub/core/blocks/transform/__init__.py,sha256=Y_3izPCtgnMbFK-gBMeLHZspSrNLgbGheAJXU57XfFw,746
|
32
33
|
sdg_hub/core/blocks/transform/duplicate_columns.py,sha256=SaP7rIF4ZFEFFa50aU2xGNIuddXaEZrKxdWfHjzFpVI,2833
|
33
34
|
sdg_hub/core/blocks/transform/index_based_mapper.py,sha256=mGup5agvDf9kAFSvXE5X6Puo6CQc9UOdFdbhdFWJjwk,8225
|
@@ -36,16 +37,20 @@ sdg_hub/core/blocks/transform/rename_columns.py,sha256=qeB5L2utqDQnutUetH1VKZSqD
|
|
36
37
|
sdg_hub/core/blocks/transform/text_concat.py,sha256=_-B__Hob1WwgwkILPIZvTnsDzuwtoX1hKviyzHlnnes,3149
|
37
38
|
sdg_hub/core/blocks/transform/uniform_col_val_setter.py,sha256=XnjiT29z3PzIPy8M-mmE2w-Miab6Ed5ahy32SaxTCTE,3263
|
38
39
|
sdg_hub/core/flow/__init__.py,sha256=N2NZGngvd7qpT5FI_knKukUFM0IkD9K5jdTi-gDeUI4,475
|
39
|
-
sdg_hub/core/flow/base.py,sha256=
|
40
|
-
sdg_hub/core/flow/
|
41
|
-
sdg_hub/core/flow/
|
42
|
-
sdg_hub/core/flow/
|
43
|
-
sdg_hub/core/flow/
|
44
|
-
sdg_hub/core/
|
45
|
-
sdg_hub/core/utils/
|
40
|
+
sdg_hub/core/flow/base.py,sha256=Jm90xQ1ns0ArEiqkceSME6phzBtkw6nthjSJNTU3IkQ,45530
|
41
|
+
sdg_hub/core/flow/checkpointer.py,sha256=stm5ZtjjEiLk9ZkAAnoQQn5Y8Yl_d7qCsQLZTrCXR48,11867
|
42
|
+
sdg_hub/core/flow/metadata.py,sha256=h9jpvAzWsF5n4ztZMzwa9ZNgnzKTHmFWdn7YbyJLHCw,12977
|
43
|
+
sdg_hub/core/flow/migration.py,sha256=6and-RBqV0t2gRipr1GiOOVnyBJdtyyjw1kO08Z--d4,7558
|
44
|
+
sdg_hub/core/flow/registry.py,sha256=DzCqEEgwhvwnCBAGLogoMVdwXh4pCHrxOWqoxam7O8I,12162
|
45
|
+
sdg_hub/core/flow/validation.py,sha256=pUJvgaUjLpKNwvW6djcqVOF-HShOjegEmGOnUnoX4BA,9722
|
46
|
+
sdg_hub/core/utils/__init__.py,sha256=C2FzLn3dHprwGJDEgI4fyFS3aoCJR-9PhHsunxropJ8,351
|
47
|
+
sdg_hub/core/utils/datautils.py,sha256=QnzMl7nOp0crNJEWgAqurOuuAyz0SnvAjLiKzvG0uds,1933
|
46
48
|
sdg_hub/core/utils/error_handling.py,sha256=yku8cGj_nKCyXDsnb-mHCpgukkkAMucJ4iAUrIzqysc,5510
|
49
|
+
sdg_hub/core/utils/flow_id_words.yaml,sha256=5QHpQdP7zwahRuooyAlJIwBY7WcDR7vtbJXxVJqujbg,2317
|
50
|
+
sdg_hub/core/utils/flow_identifier.py,sha256=aAHfK_G9AwEtMglLRMdMpi_AI1dciub5UqBGm4yb2HE,2841
|
47
51
|
sdg_hub/core/utils/logger_config.py,sha256=MPYdpyNXh_pxFUOAvSCHa98LGjxjaLXoUoqWekqTG4s,422
|
48
52
|
sdg_hub/core/utils/path_resolution.py,sha256=yWof4kGNpQ5dKcrVHg0h9KfOKLZ6ROjdfsLAZsQT5rM,2000
|
53
|
+
sdg_hub/core/utils/yaml_utils.py,sha256=tShCd-FFkp0xlKnLe7dXsMOR4AvT9d2qRUmu4ZnPSEY,1458
|
49
54
|
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
55
|
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
56
|
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/atomic_facts.yaml,sha256=xgUNY793y4lcpdtuWm5Ah1CmbU2gvvPQCpZMMa6kPXU,2447
|
@@ -54,10 +59,10 @@ sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/ev
|
|
54
59
|
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/evaluate_question.yaml,sha256=zwzklXup6khRkR88avgrJTcjaMcV1wnbeYaML5oPuNs,1767
|
55
60
|
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/evaluate_relevancy.yaml,sha256=cA8igo7jMrRXaWW6k0of6KOp7YnxLtPj0fP4DbrmZNQ,3647
|
56
61
|
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/extractive_summary.yaml,sha256=fcMV7LaCFZo4D29nwhGJXqFFuZMYVLo9XYjv8zcU6zs,364
|
57
|
-
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/flow.yaml,sha256=
|
62
|
+
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/flow.yaml,sha256=Rrl9eve9QsGLojAkflgKTHyUgUawKfvhEVAnAxBLZJ8,6307
|
58
63
|
sdg_hub/flows/qa_generation/document_grounded_qa/multi_summary_qa/instructlab/generate_questions_responses.yaml,sha256=yX8aLY8dJSDML9ZJhnj9RzPbN8tH2xfcM4Gc6xZuwqQ,2596
|
59
|
-
sdg_hub-0.2.
|
60
|
-
sdg_hub-0.2.
|
61
|
-
sdg_hub-0.2.
|
62
|
-
sdg_hub-0.2.
|
63
|
-
sdg_hub-0.2.
|
64
|
+
sdg_hub-0.2.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
65
|
+
sdg_hub-0.2.1.dist-info/METADATA,sha256=0Si2PZotpwtUI2Pg2cc3uSZIJtS12jF4VInJSTyBngA,8606
|
66
|
+
sdg_hub-0.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
67
|
+
sdg_hub-0.2.1.dist-info/top_level.txt,sha256=TqI7d-HE1n6zkXFkU0nF3A1Ct0P0pBaqI675uFokhx4,8
|
68
|
+
sdg_hub-0.2.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|