opik-optimizer 1.0.2__py3-none-any.whl → 1.0.4__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.
- opik_optimizer/evolutionary_optimizer/evolutionary_optimizer.py +13 -3
- opik_optimizer/few_shot_bayesian_optimizer/few_shot_bayesian_optimizer.py +6 -0
- opik_optimizer/meta_prompt_optimizer/meta_prompt_optimizer.py +13 -3
- opik_optimizer/optimization_result.py +7 -1
- {opik_optimizer-1.0.2.dist-info → opik_optimizer-1.0.4.dist-info}/METADATA +1 -1
- {opik_optimizer-1.0.2.dist-info → opik_optimizer-1.0.4.dist-info}/RECORD +9 -9
- {opik_optimizer-1.0.2.dist-info → opik_optimizer-1.0.4.dist-info}/WHEEL +0 -0
- {opik_optimizer-1.0.2.dist-info → opik_optimizer-1.0.4.dist-info}/licenses/LICENSE +0 -0
- {opik_optimizer-1.0.2.dist-info → opik_optimizer-1.0.4.dist-info}/top_level.txt +0 -0
@@ -102,7 +102,7 @@ Return ONLY this descriptive string, with no preamble or extra formatting.
|
|
102
102
|
mutation_rate: float = DEFAULT_MUTATION_RATE,
|
103
103
|
crossover_rate: float = DEFAULT_CROSSOVER_RATE,
|
104
104
|
tournament_size: int = DEFAULT_TOURNAMENT_SIZE,
|
105
|
-
num_threads: int =
|
105
|
+
num_threads: Optional[int] = None,
|
106
106
|
elitism_size: int = DEFAULT_ELITISM_SIZE,
|
107
107
|
adaptive_mutation: bool = DEFAULT_ADAPTIVE_MUTATION,
|
108
108
|
enable_moo: bool = DEFAULT_ENABLE_MOO,
|
@@ -111,6 +111,7 @@ Return ONLY this descriptive string, with no preamble or extra formatting.
|
|
111
111
|
output_style_guidance: Optional[str] = None,
|
112
112
|
infer_output_style: bool = False,
|
113
113
|
verbose: int = 1,
|
114
|
+
n_threads: int = DEFAULT_NUM_THREADS,
|
114
115
|
**model_kwargs: Any,
|
115
116
|
) -> None:
|
116
117
|
"""
|
@@ -121,7 +122,7 @@ Return ONLY this descriptive string, with no preamble or extra formatting.
|
|
121
122
|
mutation_rate: Mutation rate for genetic operations
|
122
123
|
crossover_rate: Crossover rate for genetic operations
|
123
124
|
tournament_size: Tournament size for selection
|
124
|
-
|
125
|
+
n_threads: Number of threads for parallel evaluation
|
125
126
|
elitism_size: Number of elitism prompts
|
126
127
|
adaptive_mutation: Whether to use adaptive mutation
|
127
128
|
enable_moo: Whether to enable multi-objective optimization - When enable optimizes for both the supplied metric and the length of the prompt
|
@@ -133,13 +134,22 @@ Return ONLY this descriptive string, with no preamble or extra formatting.
|
|
133
134
|
**model_kwargs: Additional model parameters
|
134
135
|
"""
|
135
136
|
# Initialize base class first
|
137
|
+
if "project_name" in model_kwargs:
|
138
|
+
print(
|
139
|
+
"Removing `project_name` from constructor; it now belongs in the ChatPrompt()"
|
140
|
+
)
|
141
|
+
del model_kwargs["project_name"]
|
142
|
+
|
136
143
|
super().__init__(model=model, verbose=verbose, **model_kwargs)
|
137
144
|
self.population_size = population_size
|
138
145
|
self.num_generations = num_generations
|
139
146
|
self.mutation_rate = mutation_rate
|
140
147
|
self.crossover_rate = crossover_rate
|
141
148
|
self.tournament_size = tournament_size
|
142
|
-
|
149
|
+
if num_threads is not None:
|
150
|
+
print("num_threads is deprecated; use n_threads instead")
|
151
|
+
n_threads = num_threads
|
152
|
+
self.num_threads = n_threads
|
143
153
|
self.elitism_size = elitism_size
|
144
154
|
self.adaptive_mutation = adaptive_mutation
|
145
155
|
self.enable_moo = enable_moo
|
@@ -93,6 +93,12 @@ class FewShotBayesianOptimizer(base_optimizer.BaseOptimizer):
|
|
93
93
|
verbose: Controls internal logging/progress bars (0=off, 1=on).
|
94
94
|
**model_kwargs: Additional model parameters
|
95
95
|
"""
|
96
|
+
if "project_name" in model_kwargs:
|
97
|
+
print(
|
98
|
+
"Removing `project_name` from constructor; it now belongs in the ChatPrompt()"
|
99
|
+
)
|
100
|
+
del model_kwargs["project_name"]
|
101
|
+
|
96
102
|
super().__init__(model, verbose, **model_kwargs)
|
97
103
|
self.min_examples = min_examples
|
98
104
|
self.max_examples = max_examples
|
@@ -85,9 +85,10 @@ class MetaPromptOptimizer(BaseOptimizer):
|
|
85
85
|
reasoning_model: Optional[str] = None,
|
86
86
|
rounds: int = DEFAULT_ROUNDS,
|
87
87
|
num_prompts_per_round: int = DEFAULT_PROMPTS_PER_ROUND,
|
88
|
-
num_threads: int =
|
88
|
+
num_threads: Optional[int] = None,
|
89
89
|
verbose: int = 1,
|
90
90
|
enable_context: bool = True,
|
91
|
+
n_threads: int = 12,
|
91
92
|
**model_kwargs: Any,
|
92
93
|
) -> None:
|
93
94
|
"""
|
@@ -96,16 +97,25 @@ class MetaPromptOptimizer(BaseOptimizer):
|
|
96
97
|
reasoning_model: The model to use for reasoning and prompt generation
|
97
98
|
rounds: Number of optimization rounds
|
98
99
|
num_prompts_per_round: Number of prompts to generate per round
|
99
|
-
|
100
|
+
n_threads: Number of threads for parallel evaluation
|
100
101
|
verbose: Controls internal logging/progress bars (0=off, 1=on).
|
101
102
|
enable_context: Whether to include task-specific context (metrics, examples) in the reasoning prompt.
|
102
103
|
**model_kwargs: Additional model parameters
|
103
104
|
"""
|
105
|
+
if "project_name" in model_kwargs:
|
106
|
+
print(
|
107
|
+
"Removing `project_name` from constructor; it now belongs in the ChatPrompt()"
|
108
|
+
)
|
109
|
+
del model_kwargs["project_name"]
|
110
|
+
|
104
111
|
super().__init__(model=model, verbose=verbose, **model_kwargs)
|
105
112
|
self.reasoning_model = reasoning_model if reasoning_model is not None else model
|
106
113
|
self.rounds = rounds
|
107
114
|
self.num_prompts_per_round = num_prompts_per_round
|
108
|
-
|
115
|
+
if num_threads is not None:
|
116
|
+
print("num_threads is deprecated; use n_threads instead")
|
117
|
+
n_threads = num_threads
|
118
|
+
self.num_threads = n_threads
|
109
119
|
self.dataset: Optional[Dataset] = None
|
110
120
|
self._opik_client = opik_client.get_client_cached()
|
111
121
|
self.llm_call_counter = 0
|
@@ -5,7 +5,7 @@ from typing import Any, Dict, List, Optional
|
|
5
5
|
import pydantic
|
6
6
|
import rich
|
7
7
|
|
8
|
-
from .reporting_utils import get_console, get_link_text
|
8
|
+
from .reporting_utils import get_console, get_link_text, get_optimization_run_url_by_id
|
9
9
|
|
10
10
|
|
11
11
|
class OptimizationResult(pydantic.BaseModel):
|
@@ -35,6 +35,11 @@ class OptimizationResult(pydantic.BaseModel):
|
|
35
35
|
|
36
36
|
model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
|
37
37
|
|
38
|
+
def get_run_link(self) -> str:
|
39
|
+
return get_optimization_run_url_by_id(
|
40
|
+
optimization_id=self.optimization_id, dataset_id=self.dataset_id
|
41
|
+
)
|
42
|
+
|
38
43
|
def model_dump(self, *kargs: Any, **kwargs: Any) -> Dict[str, Any]:
|
39
44
|
return super().model_dump(*kargs, **kwargs)
|
40
45
|
|
@@ -200,3 +205,4 @@ class OptimizationResult(pydantic.BaseModel):
|
|
200
205
|
"""
|
201
206
|
console = get_console()
|
202
207
|
console.print(self)
|
208
|
+
print("Optimization run link:", self.get_run_link())
|
@@ -4,7 +4,7 @@ opik_optimizer/base_optimizer.py,sha256=-hFlV7i9gLSR0-ODlUo-_YzNOSBUzxuw52DcCQF7
|
|
4
4
|
opik_optimizer/cache_config.py,sha256=Xd3NdUsL7bLQWoNe3pESqH4nHucU1iNTSGp-RqbwDog,599
|
5
5
|
opik_optimizer/logging_config.py,sha256=kUGr4K1mpfprA7AiJrl9evnJAgzEEw9Jkddo58okCWo,2809
|
6
6
|
opik_optimizer/optimizable_agent.py,sha256=BVSUdrx6nu-2Sh5rSBQq7Op3u_zYwTp8cj2eCBu0Ay4,6019
|
7
|
-
opik_optimizer/optimization_result.py,sha256=
|
7
|
+
opik_optimizer/optimization_result.py,sha256=sLW0TzcawBHEV6c174czLbu_kN7EHA5R9bDuZWDNRXE,7762
|
8
8
|
opik_optimizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
opik_optimizer/reporting_utils.py,sha256=rutmDk5ATH7lbWvgaiZENWav1WzsIdN0U-xrVXpn4s0,6840
|
10
10
|
opik_optimizer/task_evaluator.py,sha256=sOTpvF58owOxY2jfFIgWLdvMoXR-B1_Cpqlx8AgaG40,4322
|
@@ -26,13 +26,13 @@ opik_optimizer/demo/__init__.py,sha256=KSpFYhzN7fTmLEsIaciRHwxcJDeAiX5NDmYLdPsfp
|
|
26
26
|
opik_optimizer/demo/cache.py,sha256=CwjdmVjokVxmPXvgfOutZK8e0sV-PIUz3ou6ODXZBts,3738
|
27
27
|
opik_optimizer/demo/datasets.py,sha256=idod4NYHw1IbxhA8c0XVFD_pGpMZagNGNZuEYDTbbMM,2357
|
28
28
|
opik_optimizer/evolutionary_optimizer/__init__.py,sha256=bDa6FZR9Y_a5z337I4EtvaB69jB542P4dbruhYPHCEU,95
|
29
|
-
opik_optimizer/evolutionary_optimizer/evolutionary_optimizer.py,sha256=
|
29
|
+
opik_optimizer/evolutionary_optimizer/evolutionary_optimizer.py,sha256=E34ddJ-xm9BmnqomSkL5glurBl05PUxzS0_vO51-41U,82580
|
30
30
|
opik_optimizer/evolutionary_optimizer/reporting.py,sha256=wxzaUYS-gl5wt9msdIIIY-L7oLZE-OTrjeKf11arf_g,11364
|
31
31
|
opik_optimizer/few_shot_bayesian_optimizer/__init__.py,sha256=VuH7FOROyGcjMPryejtZC-5Y0QHlVTFLTGUDgNqRAFw,113
|
32
|
-
opik_optimizer/few_shot_bayesian_optimizer/few_shot_bayesian_optimizer.py,sha256=
|
32
|
+
opik_optimizer/few_shot_bayesian_optimizer/few_shot_bayesian_optimizer.py,sha256=kFx34JPR61JUi4lJs_kWfuozbgNGkb1CqYjQik1r9oE,27552
|
33
33
|
opik_optimizer/few_shot_bayesian_optimizer/reporting.py,sha256=z6jI52uAg232TVc3b6uxbNzNlntkDcunvprZq0hEJvs,6036
|
34
34
|
opik_optimizer/meta_prompt_optimizer/__init__.py,sha256=syiN2_fMm5iZDQezZCHYe-ZiGOIPlBkLt49Sa1kuR70,97
|
35
|
-
opik_optimizer/meta_prompt_optimizer/meta_prompt_optimizer.py,sha256=
|
35
|
+
opik_optimizer/meta_prompt_optimizer/meta_prompt_optimizer.py,sha256=3llumRjK00CSl8IHosyFrRStRcbB8ewcxmd6cTJIDws,38319
|
36
36
|
opik_optimizer/meta_prompt_optimizer/reporting.py,sha256=wGFmnwV7Ys0kzyrz2BJwArVymoCBWObJBvKfxLhlVwY,7456
|
37
37
|
opik_optimizer/mipro_optimizer/__init__.py,sha256=7sMq9OSWyjITqK7sVtkO9fhG1w6KRE8bN7V52CKaGvo,94
|
38
38
|
opik_optimizer/mipro_optimizer/_lm.py,sha256=bSxQZtWg5zzqIK_FERV7v4PkDouTXP3Fw5fVgBVoKPQ,16748
|
@@ -43,8 +43,8 @@ opik_optimizer/optimization_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
43
43
|
opik_optimizer/optimization_config/chat_prompt.py,sha256=h2C1qtcgDc3nyEcjxUz6zotHydcnQi6vuNYqfO8OsA0,6268
|
44
44
|
opik_optimizer/optimization_config/configs.py,sha256=fY6td3_hX7c6CYWtOINZE7NWtzVdsTxx4isootHZ-lE,419
|
45
45
|
opik_optimizer/optimization_config/mappers.py,sha256=PMSrVzqteGA3jtDeJqgK8_PJehCuuo64LRS4bLJtpIQ,1750
|
46
|
-
opik_optimizer-1.0.
|
47
|
-
opik_optimizer-1.0.
|
48
|
-
opik_optimizer-1.0.
|
49
|
-
opik_optimizer-1.0.
|
50
|
-
opik_optimizer-1.0.
|
46
|
+
opik_optimizer-1.0.4.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
|
47
|
+
opik_optimizer-1.0.4.dist-info/METADATA,sha256=8gWfwWDsujzQFPwECKCbOKsEq2xmVs-rtPwXrQFcMXo,6576
|
48
|
+
opik_optimizer-1.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
49
|
+
opik_optimizer-1.0.4.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
|
50
|
+
opik_optimizer-1.0.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|