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.
@@ -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.0
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
- ### 🧱 Core Concepts
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
- #### Using Flows
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
- from sdg_hub import FlowRegistry, Flow
156
- from datasets import Dataset
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
- # Load the flow by name
159
- flow_name = "Advanced Document Grounded Question-Answer Generation Flow for Knowledge Tuning"
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=iB5DfB5V6YB5Wo4JmvS-txT42QtmGaWcWp3udRT7zCI,511
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=a9CcjA5n7JWmfTyeQPml14aW0tlYU9QLkSkskKWJT2o,9771
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=qAb-pzbI3EqjOVjU48Y63cR3Oly5ZjCkhdwkk1ltqTc,732
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=9n6pHKVmMD1wwEYdFs0kIz5TblmDxl5dtmbyLZHGivo,12005
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=0sx_chQIeuBcLH1fNMkkD0PxX5UeEv_pCBxYI0Byzi8,36884
40
- sdg_hub/core/flow/metadata.py,sha256=_IfFWtCukYoMMG2QWRganUl0uGQO_jxniIVBlVmutus,11487
41
- sdg_hub/core/flow/migration.py,sha256=g0Ug4ZrR_ssxJ-ESVP7ubkD0kql6aSChOuMmx-ZMn8A,7198
42
- sdg_hub/core/flow/registry.py,sha256=T2veU05h4Q9vb_6F_NYHnNuFZE21orWsx1-iGl0aoJk,9564
43
- sdg_hub/core/flow/validation.py,sha256=g0G7MH3bz7kcNsfRrlSi8iJZi8gqVcgODhHygVYtJVI,9185
44
- sdg_hub/core/utils/__init__.py,sha256=y_D7HcRxw7FXShw5USQpCt-5h4VXOFFvMOMN3_oALiw,279
45
- sdg_hub/core/utils/datautils.py,sha256=qKK2HXAqI4t-O-9RMu2DdaQVZwTnJj-W7-Hc5o1iqZw,379
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=RrWr2jaandGgLkJiBLFPPA1g6B6vmL98-qXPozqjHKQ,6286
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.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
60
- sdg_hub-0.2.0.dist-info/METADATA,sha256=APjsGUk94_tQRVlncgVxkEOTSOpHY25SOMmOO1lt0P0,8464
61
- sdg_hub-0.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
62
- sdg_hub-0.2.0.dist-info/top_level.txt,sha256=TqI7d-HE1n6zkXFkU0nF3A1Ct0P0pBaqI675uFokhx4,8
63
- sdg_hub-0.2.0.dist-info/RECORD,,
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,,