opik-optimizer 0.7.3__py3-none-any.whl → 0.7.5__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.
@@ -54,6 +54,16 @@ from opik_optimizer import task_evaluator
54
54
  from opik_optimizer.optimization_config.configs import MetricConfig, TaskConfig
55
55
  from opik_optimizer.optimization_config import mappers
56
56
 
57
+ def get_prompt(program):
58
+ """
59
+ Get the system prompt from the program
60
+ """
61
+ if hasattr(program, "react"):
62
+ instructions = program.react.signature.instructions
63
+ else:
64
+ instructions = program.signature.instructions
65
+
66
+ return instructions
57
67
 
58
68
  class MIPROv2(Teleprompter):
59
69
  def __init__(
@@ -547,7 +557,7 @@ class MIPROv2(Teleprompter):
547
557
  for l in demo:
548
558
  for example in l:
549
559
  examples.append(example.toDict())
550
- prompt = program.signature.instructions
560
+ prompt = get_prompt(program)
551
561
  experiment_config = {
552
562
  **self.experiment_config,
553
563
  **{"configuration": {
@@ -928,7 +938,7 @@ class MIPROv2(Teleprompter):
928
938
  for l in demo:
929
939
  for example in l:
930
940
  examples.append(example.toDict())
931
- prompt = highest_mean_program.signature.instructions
941
+ prompt = get_prompt(highest_mean_program)
932
942
  experiment_config = {
933
943
  **self.experiment_config,
934
944
  **{"configuration": {
@@ -196,6 +196,7 @@ class MiproOptimizer(BaseOptimizer):
196
196
  task_config: TaskConfig,
197
197
  num_candidates: int = 10,
198
198
  experiment_config: Optional[Dict] = None,
199
+ num_trials: Optional[int] = 3,
199
200
  **kwargs,
200
201
  ) -> OptimizationResult:
201
202
  self._opik_client = opik.Opik()
@@ -222,6 +223,7 @@ class MiproOptimizer(BaseOptimizer):
222
223
  num_candidates=num_candidates,
223
224
  experiment_config=experiment_config,
224
225
  optimization_id=optimization.id if optimization is not None else None,
226
+ num_trials=num_trials,
225
227
  **kwargs,
226
228
  )
227
229
  if optimization:
@@ -241,6 +243,7 @@ class MiproOptimizer(BaseOptimizer):
241
243
  num_candidates: int = 10,
242
244
  experiment_config: Optional[Dict] = None,
243
245
  optimization_id: Optional[str] = None,
246
+ num_trials: Optional[int] = 3,
244
247
  **kwargs,
245
248
  ) -> OptimizationResult:
246
249
  logger.info("Preparing MIPRO optimization...")
@@ -251,6 +254,7 @@ class MiproOptimizer(BaseOptimizer):
251
254
  num_candidates=num_candidates,
252
255
  experiment_config=experiment_config,
253
256
  optimization_id=optimization_id,
257
+ num_trials=num_trials,
254
258
  **kwargs,
255
259
  )
256
260
  logger.info("Starting MIPRO compilation...")
@@ -266,6 +270,7 @@ class MiproOptimizer(BaseOptimizer):
266
270
  num_candidates: int = 10,
267
271
  experiment_config: Optional[Dict] = None,
268
272
  optimization_id: Optional[str] = None,
273
+ num_trials: Optional[int] = 3,
269
274
  **kwargs,
270
275
  ) -> None:
271
276
  # FIXME: Intermediate values:
@@ -279,6 +284,7 @@ class MiproOptimizer(BaseOptimizer):
279
284
  self.input_key = input_key
280
285
  self.output_key = output_key
281
286
  self.prompt = prompt
287
+ self.num_trials = num_trials
282
288
 
283
289
  # Convert to values for MIPRO:
284
290
  if isinstance(dataset, str):
@@ -319,6 +325,7 @@ class MiproOptimizer(BaseOptimizer):
319
325
  "metric": metric.name,
320
326
  "num_threads": self.num_threads,
321
327
  "num_candidates": self.num_candidates,
328
+ "num_trails": self.num_trails,
322
329
  "dataset": dataset.name,
323
330
  },
324
331
  }
@@ -359,7 +366,7 @@ class MiproOptimizer(BaseOptimizer):
359
366
  trainset=self.trainset,
360
367
  provide_traceback=True,
361
368
  requires_permission_to_run=False,
362
- num_trials=3,
369
+ num_trials=self.num_trials,
363
370
  )
364
371
  self.best_programs = sorted(
365
372
  self.results.candidate_programs,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opik_optimizer
3
- Version: 0.7.3
3
+ Version: 0.7.5
4
4
  Summary: Agent optimization with Opik
5
5
  Home-page: https://github.com/comet-ml/opik
6
6
  Author: Comet ML
@@ -22,6 +22,7 @@ Requires-Dist: pydantic
22
22
  Requires-Dist: pandas
23
23
  Requires-Dist: hf_xet
24
24
  Requires-Dist: pyrate-limiter
25
+ Requires-Dist: deap>=1.4.3
25
26
  Provides-Extra: dev
26
27
  Requires-Dist: adalflow; extra == "dev"
27
28
  Requires-Dist: pytest; extra == "dev"
@@ -1,4 +1,4 @@
1
- opik_optimizer/__init__.py,sha256=x5QSFom-TtmmUNzqyYIJY2AujMJXbyhXs2oz44-4Af0,1121
1
+ opik_optimizer/__init__.py,sha256=Tbny_W_oUWKdf_33fM-nNTBqvQvarLfB8hMNd_goXT0,1245
2
2
  opik_optimizer/_throttle.py,sha256=ztub8qlwz4u0GVA2TIoLig0D1Cs0hJ7_o_SnT_C7Nmk,1360
3
3
  opik_optimizer/base_optimizer.py,sha256=f4gNX9j3Z3TGst8F0gm1nMHHpHKAlChmeCVAcTdTIR4,4883
4
4
  opik_optimizer/cache_config.py,sha256=EzF4RAzxhSG8vtMJANdiUpNHQ9HzL2CrCXp0iik0f4A,580
@@ -7,9 +7,12 @@ opik_optimizer/meta_prompt_optimizer.py,sha256=AoFskD01Mu9VbH-Ys4CUoqZk3Gn3iFrOz
7
7
  opik_optimizer/optimization_result.py,sha256=9zdDV2MXeLYk7U8OqgMmSU-DdPV6qgYQWS2rtkO6Dzw,8693
8
8
  opik_optimizer/task_evaluator.py,sha256=MafDMaLeW0_yGPrumLvYF0HzQUKrnpAlM_0N_TPG8tw,3695
9
9
  opik_optimizer/utils.py,sha256=HivUsNzbt7BcuZeEvikdER1DaTPUFLJrpaVQ8raZYD8,3637
10
+ opik_optimizer/data/hotpot-500.json,sha256=ToYC9l3lebrOoeWFhELgp63XVFYWcS0HODlQO9g5V3c,101861
10
11
  opik_optimizer/demo/__init__.py,sha256=KSpFYhzN7fTmLEsIaciRHwxcJDeAiX5NDmYLdPsfpT8,150
11
12
  opik_optimizer/demo/cache.py,sha256=5WqK8rSiijzU6s4VHIjLuL1LR5i1yHtY-x5FZTduSus,3669
12
- opik_optimizer/demo/datasets.py,sha256=hD6JZAQotEDQb4nK7dbnurquILqQsrFRF7nUwon_iXE,22930
13
+ opik_optimizer/demo/datasets.py,sha256=-qmdeFk5X3CIcg9QX7nbGUAVo2khh0XGbmkHh8jgvSY,22633
14
+ opik_optimizer/evolutionary_optimizer/__init__.py,sha256=OQ2ART5g-7EVGOISvTGY-AbmEyyDFEJJCsmJBzGJIpw,57
15
+ opik_optimizer/evolutionary_optimizer/evolutionary_optimizer.py,sha256=652TAHa4U4C7_0_wBulDmizfVijqV9E3ngR38nLcpt4,76568
13
16
  opik_optimizer/few_shot_bayesian_optimizer/__init__.py,sha256=VuH7FOROyGcjMPryejtZC-5Y0QHlVTFLTGUDgNqRAFw,113
14
17
  opik_optimizer/few_shot_bayesian_optimizer/few_shot_bayesian_optimizer.py,sha256=HIoIVDW9v0p2Y9B736DncXjJPPYoDfphgeSqiB4MIVM,15235
15
18
  opik_optimizer/few_shot_bayesian_optimizer/prompt_parameter.py,sha256=EDsSIFAUOfiZKWLrOAaBDB7Exk7cmIs4ccI95kVa7JY,3118
@@ -17,14 +20,14 @@ opik_optimizer/few_shot_bayesian_optimizer/prompt_templates.py,sha256=HmvD-UeT3a
17
20
  opik_optimizer/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
21
  opik_optimizer/mipro_optimizer/__init__.py,sha256=CF9TVXjOxTobDO1kAS8CD4eyLVzEozxjfgoKwIO6ZpU,44
19
22
  opik_optimizer/mipro_optimizer/_lm.py,sha256=bcTy2Y5HjSaFQOATIpUaA86eIp3vKHaMuDI2_RvN2ww,16376
20
- opik_optimizer/mipro_optimizer/_mipro_optimizer_v2.py,sha256=r8FKaqvtZq_R7FwGnXqp1foCLk7M7r6M-CMvWbJtP5c,39512
21
- opik_optimizer/mipro_optimizer/mipro_optimizer.py,sha256=5QS7OKqOMKe4CD_8W2FMD_qJNmulkvxmOT_YtJ3BllM,14755
23
+ opik_optimizer/mipro_optimizer/_mipro_optimizer_v2.py,sha256=CiQWe39LCp-81SZmLyMybIw2lc_0RBKcxclLEuSXQgI,39757
24
+ opik_optimizer/mipro_optimizer/mipro_optimizer.py,sha256=VCQ0V1U_3aEsCqBumu127QLUEjkPA-kRWZou1qtZ9gU,15044
22
25
  opik_optimizer/mipro_optimizer/utils.py,sha256=4et1JA1QInX3h6Is-_RqzliFwJqkm6tlA0X5CryG60I,3142
23
26
  opik_optimizer/optimization_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
27
  opik_optimizer/optimization_config/configs.py,sha256=MYL9H2UAqeyGBlBGWbOZ-6Snto4ZMuXnypgvVuUSW1Y,1132
25
28
  opik_optimizer/optimization_config/mappers.py,sha256=RXgTMxPzTQ1AHGke6Zca6rTcfCI7IkCKhQYciaEGSAo,1698
26
- opik_optimizer-0.7.3.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
27
- opik_optimizer-0.7.3.dist-info/METADATA,sha256=ng9ZwnuLM631y5mrK-DSi70r763Db51thVyE1QNuQlI,3826
28
- opik_optimizer-0.7.3.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
29
- opik_optimizer-0.7.3.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
30
- opik_optimizer-0.7.3.dist-info/RECORD,,
29
+ opik_optimizer-0.7.5.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
30
+ opik_optimizer-0.7.5.dist-info/METADATA,sha256=_1cqmztaDxXDGs0It8INn18IuQAVpWomu0bKITYkkBI,3853
31
+ opik_optimizer-0.7.5.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
32
+ opik_optimizer-0.7.5.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
33
+ opik_optimizer-0.7.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.7.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5