opik-optimizer 2.1.0__tar.gz → 2.1.2__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.
Files changed (93) hide show
  1. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/PKG-INFO +2 -2
  2. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/pyproject.toml +2 -2
  3. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/__init__.py +2 -0
  4. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/base_optimizer.py +2 -0
  5. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/gepa_optimizer/gepa_optimizer.py +3 -3
  6. opik_optimizer-2.1.2/src/opik_optimizer/hierarchical_reflective_optimizer/__init__.py +5 -0
  7. opik_optimizer-2.1.2/src/opik_optimizer/hierarchical_reflective_optimizer/hierarchical_reflective_optimizer.py +718 -0
  8. opik_optimizer-2.1.2/src/opik_optimizer/hierarchical_reflective_optimizer/hierarchical_root_cause_analyzer.py +355 -0
  9. opik_optimizer-2.1.2/src/opik_optimizer/hierarchical_reflective_optimizer/prompts.py +91 -0
  10. opik_optimizer-2.1.2/src/opik_optimizer/hierarchical_reflective_optimizer/reporting.py +679 -0
  11. opik_optimizer-2.1.2/src/opik_optimizer/hierarchical_reflective_optimizer/types.py +49 -0
  12. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer.egg-info/PKG-INFO +2 -2
  13. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer.egg-info/SOURCES.txt +6 -0
  14. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer.egg-info/requires.txt +1 -1
  15. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/LICENSE +0 -0
  16. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/README.md +0 -0
  17. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/setup.cfg +0 -0
  18. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/setup.py +0 -0
  19. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/_throttle.py +0 -0
  20. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/cache_config.py +0 -0
  21. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/data/context7_eval.jsonl +0 -0
  22. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/data/hotpot-500.json +0 -0
  23. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/__init__.py +0 -0
  24. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/ai2_arc.py +0 -0
  25. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/cnn_dailymail.py +0 -0
  26. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/context7_eval.py +0 -0
  27. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/election_questions.py +0 -0
  28. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/gsm8k.py +0 -0
  29. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/halu_eval.py +0 -0
  30. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/hotpot_qa.py +0 -0
  31. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/medhallu.py +0 -0
  32. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/rag_hallucinations.py +0 -0
  33. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/ragbench.py +0 -0
  34. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/tiny_test.py +0 -0
  35. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/datasets/truthful_qa.py +0 -0
  36. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/demo/__init__.py +0 -0
  37. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/demo/cache.py +0 -0
  38. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/demo/datasets.py +0 -0
  39. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/__init__.py +0 -0
  40. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/crossover_ops.py +0 -0
  41. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/evaluation_ops.py +0 -0
  42. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/evolutionary_optimizer.py +0 -0
  43. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/helpers.py +0 -0
  44. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/llm_support.py +0 -0
  45. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/mcp.py +0 -0
  46. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/mutation_ops.py +0 -0
  47. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/population_ops.py +0 -0
  48. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/prompts.py +0 -0
  49. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/reporting.py +0 -0
  50. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/evolutionary_optimizer/style_ops.py +0 -0
  51. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/few_shot_bayesian_optimizer/__init__.py +0 -0
  52. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/few_shot_bayesian_optimizer/few_shot_bayesian_optimizer.py +0 -0
  53. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/few_shot_bayesian_optimizer/reporting.py +0 -0
  54. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/gepa_optimizer/__init__.py +0 -0
  55. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/gepa_optimizer/adapter.py +0 -0
  56. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/gepa_optimizer/reporting.py +0 -0
  57. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/logging_config.py +0 -0
  58. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mcp_utils/__init__.py +0 -0
  59. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mcp_utils/mcp.py +0 -0
  60. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mcp_utils/mcp_second_pass.py +0 -0
  61. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mcp_utils/mcp_simulator.py +0 -0
  62. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mcp_utils/mcp_workflow.py +0 -0
  63. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/meta_prompt_optimizer/__init__.py +0 -0
  64. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/meta_prompt_optimizer/meta_prompt_optimizer.py +0 -0
  65. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/meta_prompt_optimizer/reporting.py +0 -0
  66. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mipro_optimizer/__init__.py +0 -0
  67. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mipro_optimizer/_lm.py +0 -0
  68. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mipro_optimizer/_mipro_optimizer_v2.py +0 -0
  69. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mipro_optimizer/mipro_optimizer.py +0 -0
  70. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/mipro_optimizer/utils.py +0 -0
  71. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/optimizable_agent.py +0 -0
  72. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/optimization_config/__init__.py +0 -0
  73. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/optimization_config/chat_prompt.py +0 -0
  74. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/optimization_config/configs.py +0 -0
  75. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/optimization_config/mappers.py +0 -0
  76. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/optimization_result.py +0 -0
  77. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/parameter_optimizer/__init__.py +0 -0
  78. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/parameter_optimizer/parameter_optimizer.py +0 -0
  79. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/parameter_optimizer/parameter_search_space.py +0 -0
  80. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/parameter_optimizer/parameter_spec.py +0 -0
  81. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/parameter_optimizer/search_space_types.py +0 -0
  82. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/parameter_optimizer/sensitivity_analysis.py +0 -0
  83. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/py.typed +0 -0
  84. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/reporting_utils.py +0 -0
  85. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/task_evaluator.py +0 -0
  86. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/utils/__init__.py +0 -0
  87. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/utils/colbert.py +0 -0
  88. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/utils/core.py +0 -0
  89. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/utils/dataset_utils.py +0 -0
  90. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer/utils/prompt_segments.py +0 -0
  91. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer.egg-info/dependency_links.txt +0 -0
  92. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/src/opik_optimizer.egg-info/top_level.txt +0 -0
  93. {opik_optimizer-2.1.0 → opik_optimizer-2.1.2}/tests/test_setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opik_optimizer
3
- Version: 2.1.0
3
+ Version: 2.1.2
4
4
  Summary: Agent optimization with Opik
5
5
  Home-page: https://github.com/comet-ml/opik
6
6
  Author: Comet ML
@@ -18,7 +18,7 @@ Requires-Dist: dspy<3
18
18
  Requires-Dist: gepa>=0.0.7
19
19
  Requires-Dist: ujson
20
20
  Requires-Dist: hf_xet
21
- Requires-Dist: litellm
21
+ Requires-Dist: litellm<=1.75.6
22
22
  Requires-Dist: mcp>=1.0.0
23
23
  Requires-Dist: opik>=1.7.17
24
24
  Requires-Dist: optuna
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "opik_optimizer"
3
- version = "2.1.0"
3
+ version = "2.1.2"
4
4
  description = "Agent optimization with Opik"
5
5
  authors = [
6
6
  {name = "Comet ML", email = "support@comet.com"}
@@ -16,7 +16,7 @@ dependencies = [
16
16
  "gepa>=0.0.7",
17
17
  "ujson",
18
18
  "hf_xet",
19
- "litellm",
19
+ "litellm<=1.75.6",
20
20
  "mcp>=1.0.0",
21
21
  "opik>=1.7.17",
22
22
  "optuna",
@@ -16,6 +16,7 @@ from .gepa_optimizer import GepaOptimizer
16
16
  from .logging_config import setup_logging
17
17
  from .meta_prompt_optimizer import MetaPromptOptimizer
18
18
  from .mipro_optimizer import MiproOptimizer
19
+ from .hierarchical_reflective_optimizer import HierarchicalReflectiveOptimizer
19
20
  from .optimization_config.configs import TaskConfig
20
21
  from .optimization_result import OptimizationResult
21
22
  from .parameter_optimizer import (
@@ -40,6 +41,7 @@ __all__ = [
40
41
  "MetaPromptOptimizer",
41
42
  "MiproOptimizer",
42
43
  "EvolutionaryOptimizer",
44
+ "HierarchicalReflectiveOptimizer",
43
45
  "ParameterOptimizer",
44
46
  "OptimizationResult",
45
47
  "OptimizableAgent",
@@ -280,6 +280,7 @@ class BaseOptimizer(ABC):
280
280
  agent_config["project_name"] = getattr(prompt, "project_name", None)
281
281
  agent_config["model"] = getattr(prompt, "model", None) or self.model
282
282
  agent_config["tools"] = self._serialize_tools(prompt)
283
+ agent_config["optimizer"] = self.__class__.__name__
283
284
  return self._drop_none(agent_config)
284
285
 
285
286
  def get_optimizer_metadata(self) -> dict[str, Any]:
@@ -341,6 +342,7 @@ class BaseOptimizer(ABC):
341
342
  "metric": getattr(metric, "__name__", str(metric)),
342
343
  "dataset": getattr(dataset, "name", None),
343
344
  "dataset_id": dataset_id,
345
+ "optimizer": self.__class__.__name__,
344
346
  "optimizer_metadata": self._build_optimizer_metadata(),
345
347
  "tool_signatures": self._summarize_tool_signatures(prompt),
346
348
  "configuration": {
@@ -253,7 +253,7 @@ class GepaOptimizer(BaseOptimizer):
253
253
  opt_id = None
254
254
 
255
255
  gepa_reporting.display_header(
256
- algorithm="GEPA",
256
+ algorithm=self.__class__.__name__,
257
257
  optimization_id=opt_id,
258
258
  dataset_id=getattr(dataset, "id", None),
259
259
  verbose=self.verbose,
@@ -264,7 +264,7 @@ class GepaOptimizer(BaseOptimizer):
264
264
  _display_config(
265
265
  messages=prompt.get_messages(),
266
266
  optimizer_config={
267
- "optimizer": "GEPA",
267
+ "optimizer": self.__class__.__name__,
268
268
  "model": self.model,
269
269
  "reflection_model": self.reflection_model,
270
270
  "max_metric_calls": max_metric_calls,
@@ -422,7 +422,7 @@ class GepaOptimizer(BaseOptimizer):
422
422
  "system_prompt": candidate_prompt,
423
423
  "gepa_score": val_scores[idx] if idx < len(val_scores) else None,
424
424
  "opik_score": score,
425
- "source": "GEPA",
425
+ "source": self.__class__.__name__,
426
426
  }
427
427
  )
428
428
  history.append(
@@ -0,0 +1,5 @@
1
+ from .hierarchical_reflective_optimizer import HierarchicalReflectiveOptimizer
2
+
3
+ __all__ = [
4
+ "HierarchicalReflectiveOptimizer",
5
+ ]