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.
@@ -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
@@ -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
- 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
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 = 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,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
- 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
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
- 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
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())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opik_optimizer
3
- Version: 1.0.2
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=8gabJpXy_PWaVCovqLtQ5I-8QfRuouPpe0vl9iCOKGE,82184
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=k2T_1E8s4FkMEPVLUKmnv1g7C3QlF3wCnXDeK6FHLUY,27335
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=5VbYsFbRpdl-VehJ5g51IMnxgjoeRgGukh6EAdSEvi4,37923
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.2.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
47
- opik_optimizer-1.0.2.dist-info/METADATA,sha256=VViAp91O3NqOehRHzrrg020vQj_9NURshdy-RD5JhMM,6576
48
- opik_optimizer-1.0.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
49
- opik_optimizer-1.0.2.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
50
- opik_optimizer-1.0.2.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,,