opik-optimizer 0.7.7__py3-none-any.whl → 0.7.8__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.
@@ -197,6 +197,8 @@ class MiproOptimizer(BaseOptimizer):
197
197
  num_candidates: int = 10,
198
198
  experiment_config: Optional[Dict] = None,
199
199
  num_trials: Optional[int] = 3,
200
+ n_samples: Optional[int] = 10,
201
+ auto: Optional[Literal["light", "medium", "heavy"]] = "light",
200
202
  **kwargs,
201
203
  ) -> OptimizationResult:
202
204
  self._opik_client = opik.Opik()
@@ -224,6 +226,8 @@ class MiproOptimizer(BaseOptimizer):
224
226
  experiment_config=experiment_config,
225
227
  optimization_id=optimization.id if optimization is not None else None,
226
228
  num_trials=num_trials,
229
+ n_samples=n_samples,
230
+ auto=auto,
227
231
  **kwargs,
228
232
  )
229
233
  if optimization:
@@ -244,6 +248,8 @@ class MiproOptimizer(BaseOptimizer):
244
248
  experiment_config: Optional[Dict] = None,
245
249
  optimization_id: Optional[str] = None,
246
250
  num_trials: Optional[int] = 3,
251
+ n_samples: Optional[int] = 10,
252
+ auto: Optional[Literal["light", "medium", "heavy"]] = "light",
247
253
  **kwargs,
248
254
  ) -> OptimizationResult:
249
255
  logger.info("Preparing MIPRO optimization...")
@@ -255,6 +261,8 @@ class MiproOptimizer(BaseOptimizer):
255
261
  experiment_config=experiment_config,
256
262
  optimization_id=optimization_id,
257
263
  num_trials=num_trials,
264
+ n_samples=n_samples,
265
+ auto=auto,
258
266
  **kwargs,
259
267
  )
260
268
  logger.info("Starting MIPRO compilation...")
@@ -271,7 +279,8 @@ class MiproOptimizer(BaseOptimizer):
271
279
  experiment_config: Optional[Dict] = None,
272
280
  optimization_id: Optional[str] = None,
273
281
  num_trials: Optional[int] = 3,
274
- auto: Optional[Literal["light", "medium", "heavy"]] = "medium",
282
+ n_samples: Optional[int] = 10,
283
+ auto: Optional[Literal["light", "medium", "heavy"]] = "light",
275
284
  **kwargs,
276
285
  ) -> None:
277
286
  # FIXME: Intermediate values:
@@ -286,6 +295,7 @@ class MiproOptimizer(BaseOptimizer):
286
295
  self.output_key = output_key
287
296
  self.prompt = prompt
288
297
  self.num_trials = num_trials
298
+ self.n_samples = n_samples
289
299
  self.auto = auto
290
300
 
291
301
  # Convert to values for MIPRO:
@@ -302,7 +312,7 @@ class MiproOptimizer(BaseOptimizer):
302
312
  if self.output_key not in row:
303
313
  raise Exception("row does not contain output_key: %r" % self.output_key)
304
314
 
305
- self.trainset = create_dspy_training_set(self.dataset, self.input_key)
315
+ self.trainset = create_dspy_training_set(self.dataset, self.input_key, self.n_samples)
306
316
  self.data_signature = create_dspy_signature(
307
317
  self.input_key, self.output_key, self.prompt
308
318
  )
@@ -327,7 +337,7 @@ class MiproOptimizer(BaseOptimizer):
327
337
  "metric": metric.name,
328
338
  "num_threads": self.num_threads,
329
339
  "num_candidates": self.num_candidates,
330
- "num_trails": self.num_trials,
340
+ "num_trials": self.num_trials,
331
341
  "dataset": dataset.name,
332
342
  },
333
343
  }
@@ -3,6 +3,7 @@ from typing import Any, Dict, List, Tuple, Union, Optional
3
3
  import uuid
4
4
  import dspy
5
5
  import re
6
+ import random
6
7
 
7
8
  from dspy.signatures.signature import make_signature
8
9
 
@@ -78,11 +79,17 @@ def opik_metric_to_dspy(metric, output):
78
79
  return opik_metric_score_wrapper
79
80
 
80
81
 
81
- def create_dspy_training_set(data: list[dict], input: str) -> list[dspy.Example]:
82
+ def create_dspy_training_set(
83
+ data: list[dict], input: str, n_samples: Optional[int] = None
84
+ ) -> list[dspy.Example]:
82
85
  """
83
86
  Turn a list of dicts into a list of dspy Examples
84
87
  """
85
88
  output = []
89
+
90
+ if n_samples is not None:
91
+ data = random.sample(data, n_samples)
92
+
86
93
  for example in data:
87
94
  example_obj = dspy.Example(
88
95
  **example, dspy_uuid=str(uuid.uuid4()), dspy_split="train"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opik_optimizer
3
- Version: 0.7.7
3
+ Version: 0.7.8
4
4
  Summary: Agent optimization with Opik
5
5
  Home-page: https://github.com/comet-ml/opik
6
6
  Author: Comet ML
@@ -21,13 +21,13 @@ opik_optimizer/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
21
21
  opik_optimizer/mipro_optimizer/__init__.py,sha256=CF9TVXjOxTobDO1kAS8CD4eyLVzEozxjfgoKwIO6ZpU,44
22
22
  opik_optimizer/mipro_optimizer/_lm.py,sha256=bcTy2Y5HjSaFQOATIpUaA86eIp3vKHaMuDI2_RvN2ww,16376
23
23
  opik_optimizer/mipro_optimizer/_mipro_optimizer_v2.py,sha256=CiQWe39LCp-81SZmLyMybIw2lc_0RBKcxclLEuSXQgI,39757
24
- opik_optimizer/mipro_optimizer/mipro_optimizer.py,sha256=WysLWLV62Pbn60gEguJLVFOiKLeoNL5iwZMqeeCHmJ0,15152
25
- opik_optimizer/mipro_optimizer/utils.py,sha256=4et1JA1QInX3h6Is-_RqzliFwJqkm6tlA0X5CryG60I,3142
24
+ opik_optimizer/mipro_optimizer/mipro_optimizer.py,sha256=WoBSFcgSdztwzNOkRRhxBW0aiR4B_ThxZRaebDgt_fA,15581
25
+ opik_optimizer/mipro_optimizer/utils.py,sha256=wG1koygXfm_pvtA1jR-YaU4NATPbJZoTI7LE7l7df7g,3273
26
26
  opik_optimizer/optimization_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  opik_optimizer/optimization_config/configs.py,sha256=MYL9H2UAqeyGBlBGWbOZ-6Snto4ZMuXnypgvVuUSW1Y,1132
28
28
  opik_optimizer/optimization_config/mappers.py,sha256=RXgTMxPzTQ1AHGke6Zca6rTcfCI7IkCKhQYciaEGSAo,1698
29
- opik_optimizer-0.7.7.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
30
- opik_optimizer-0.7.7.dist-info/METADATA,sha256=Lc9cVV_TEqZtbI8nKISrYuLzm9Ip-y9SgC7JlwTWuSk,3853
31
- opik_optimizer-0.7.7.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
32
- opik_optimizer-0.7.7.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
33
- opik_optimizer-0.7.7.dist-info/RECORD,,
29
+ opik_optimizer-0.7.8.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
30
+ opik_optimizer-0.7.8.dist-info/METADATA,sha256=eYfFtFoEWgqLxVx2OYhmsXyHUOSjK6GArV8hvxdCgcs,3853
31
+ opik_optimizer-0.7.8.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
32
+ opik_optimizer-0.7.8.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
33
+ opik_optimizer-0.7.8.dist-info/RECORD,,