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.
@@ -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 = DEFAULT_NUM_THREADS,
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
- num_threads: Number of threads for parallel evaluation
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
- self.num_threads = num_threads
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 = 12,
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
- num_threads: Number of threads for parallel evaluation
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
- self.num_threads = num_threads
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())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opik_optimizer
3
- Version: 1.0.3
3
+ Version: 1.0.4
4
4
  Summary: Agent optimization with Opik
5
5
  Home-page: https://github.com/comet-ml/opik
6
6
  Author: Comet ML
@@ -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=cHtNwVTUfc8ZwIAHKLN0NClrpNewHhCt6B953XiSKzg,7499
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=fVYHE_kD8uw02DffGps-Inrm_jWO2QLQioUyeAdnIkU,82401
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=3UbVUnE3_ccjxFj-9Pst4YijaF6--VL-tBq1nzTIDwk,38140
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.3.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
47
- opik_optimizer-1.0.3.dist-info/METADATA,sha256=Hlhp8y844aXihCnKiWMRos6-AdyEiuaczrnzHkMtV9E,6576
48
- opik_optimizer-1.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
49
- opik_optimizer-1.0.3.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
50
- opik_optimizer-1.0.3.dist-info/RECORD,,
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,,