opik-optimizer 1.0.3__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 +7 -3
- opik_optimizer/meta_prompt_optimizer/meta_prompt_optimizer.py +7 -3
- opik_optimizer/optimization_result.py +7 -1
- {opik_optimizer-1.0.3.dist-info → opik_optimizer-1.0.4.dist-info}/METADATA +1 -1
- {opik_optimizer-1.0.3.dist-info → opik_optimizer-1.0.4.dist-info}/RECORD +8 -8
- {opik_optimizer-1.0.3.dist-info → opik_optimizer-1.0.4.dist-info}/WHEEL +0 -0
- {opik_optimizer-1.0.3.dist-info → opik_optimizer-1.0.4.dist-info}/licenses/LICENSE +0 -0
- {opik_optimizer-1.0.3.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
|
@@ -145,7 +146,10 @@ Return ONLY this descriptive string, with no preamble or extra formatting.
|
|
145
146
|
self.mutation_rate = mutation_rate
|
146
147
|
self.crossover_rate = crossover_rate
|
147
148
|
self.tournament_size = tournament_size
|
148
|
-
|
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
|
149
153
|
self.elitism_size = elitism_size
|
150
154
|
self.adaptive_mutation = adaptive_mutation
|
151
155
|
self.enable_moo = enable_moo
|
@@ -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,7 +97,7 @@ 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
|
@@ -111,7 +112,10 @@ class MetaPromptOptimizer(BaseOptimizer):
|
|
111
112
|
self.reasoning_model = reasoning_model if reasoning_model is not None else model
|
112
113
|
self.rounds = rounds
|
113
114
|
self.num_prompts_per_round = num_prompts_per_round
|
114
|
-
|
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
|
115
119
|
self.dataset: Optional[Dataset] = None
|
116
120
|
self._opik_client = opik_client.get_client_cached()
|
117
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
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
|