opik-optimizer 0.7.7__tar.gz → 0.7.8__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.
- {opik_optimizer-0.7.7/src/opik_optimizer.egg-info → opik_optimizer-0.7.8}/PKG-INFO +1 -1
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/setup.py +1 -1
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/mipro_optimizer/mipro_optimizer.py +13 -3
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/mipro_optimizer/utils.py +8 -1
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8/src/opik_optimizer.egg-info}/PKG-INFO +1 -1
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/LICENSE +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/README.md +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/setup.cfg +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/__init__.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/_throttle.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/base_optimizer.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/cache_config.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/data/hotpot-500.json +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/demo/__init__.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/demo/cache.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/demo/datasets.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/evolutionary_optimizer/__init__.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/evolutionary_optimizer/evolutionary_optimizer.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/few_shot_bayesian_optimizer/__init__.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/few_shot_bayesian_optimizer/few_shot_bayesian_optimizer.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/few_shot_bayesian_optimizer/prompt_parameter.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/few_shot_bayesian_optimizer/prompt_templates.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/integrations/__init__.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/logging_config.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/meta_prompt_optimizer.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/mipro_optimizer/__init__.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/mipro_optimizer/_lm.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/mipro_optimizer/_mipro_optimizer_v2.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/optimization_config/__init__.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/optimization_config/configs.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/optimization_config/mappers.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/optimization_result.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/task_evaluator.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/utils.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer.egg-info/SOURCES.txt +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer.egg-info/dependency_links.txt +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer.egg-info/requires.txt +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer.egg-info/top_level.txt +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/tests/test_base_optimizer.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/tests/test_example.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/tests/test_few_shot_bayesian_optimizer.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/tests/test_mappers.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/tests/test_optimization_dsl.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/tests/test_optimization_result.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/tests/test_task_evaluator.py +0 -0
- {opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/tests/test_utils.py +0 -0
{opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/mipro_optimizer/mipro_optimizer.py
RENAMED
@@ -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
|
-
|
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
|
-
"
|
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(
|
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"
|
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
|
{opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/evolutionary_optimizer/__init__.py
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
|
{opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/mipro_optimizer/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/optimization_config/__init__.py
RENAMED
File without changes
|
{opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/optimization_config/configs.py
RENAMED
File without changes
|
{opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer/optimization_config/mappers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{opik_optimizer-0.7.7 → opik_optimizer-0.7.8}/src/opik_optimizer.egg-info/dependency_links.txt
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
|