opik-optimizer 0.7.8__py3-none-any.whl → 0.8.1__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/__init__.py +2 -0
- opik_optimizer/base_optimizer.py +6 -4
- opik_optimizer/data/hotpot-500.json +501 -1001
- opik_optimizer/datasets/__init__.py +27 -0
- opik_optimizer/datasets/ai2_arc.py +44 -0
- opik_optimizer/datasets/cnn_dailymail.py +40 -0
- opik_optimizer/datasets/election_questions.py +36 -0
- opik_optimizer/datasets/gsm8k.py +40 -0
- opik_optimizer/datasets/halu_eval.py +43 -0
- opik_optimizer/datasets/hotpot_qa.py +68 -0
- opik_optimizer/datasets/medhallu.py +39 -0
- opik_optimizer/datasets/rag_hallucinations.py +41 -0
- opik_optimizer/datasets/ragbench.py +40 -0
- opik_optimizer/datasets/tiny_test.py +57 -0
- opik_optimizer/datasets/truthful_qa.py +107 -0
- opik_optimizer/demo/datasets.py +53 -607
- opik_optimizer/evolutionary_optimizer/evolutionary_optimizer.py +3 -1
- opik_optimizer/few_shot_bayesian_optimizer/few_shot_bayesian_optimizer.py +90 -19
- opik_optimizer/logging_config.py +1 -1
- opik_optimizer/meta_prompt_optimizer.py +60 -14
- opik_optimizer/mipro_optimizer/mipro_optimizer.py +151 -13
- opik_optimizer/optimization_result.py +11 -0
- opik_optimizer/task_evaluator.py +6 -1
- opik_optimizer/utils.py +0 -52
- opik_optimizer-0.8.1.dist-info/METADATA +196 -0
- opik_optimizer-0.8.1.dist-info/RECORD +45 -0
- opik_optimizer-0.7.8.dist-info/METADATA +0 -174
- opik_optimizer-0.7.8.dist-info/RECORD +0 -33
- {opik_optimizer-0.7.8.dist-info → opik_optimizer-0.8.1.dist-info}/WHEEL +0 -0
- {opik_optimizer-0.7.8.dist-info → opik_optimizer-0.8.1.dist-info}/licenses/LICENSE +0 -0
- {opik_optimizer-0.7.8.dist-info → opik_optimizer-0.8.1.dist-info}/top_level.txt +0 -0
@@ -1,174 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: opik_optimizer
|
3
|
-
Version: 0.7.8
|
4
|
-
Summary: Agent optimization with Opik
|
5
|
-
Home-page: https://github.com/comet-ml/opik
|
6
|
-
Author: Comet ML
|
7
|
-
Author-email: support@comet.com
|
8
|
-
Classifier: Development Status :: 3 - Alpha
|
9
|
-
Classifier: Intended Audience :: Developers
|
10
|
-
Classifier: Programming Language :: Python :: 3
|
11
|
-
Classifier: Programming Language :: Python :: 3.10
|
12
|
-
Requires-Python: >=3.9,<3.13
|
13
|
-
Description-Content-Type: text/markdown
|
14
|
-
License-File: LICENSE
|
15
|
-
Requires-Dist: opik>=1.7.17
|
16
|
-
Requires-Dist: dspy<3,>=2.6.18
|
17
|
-
Requires-Dist: litellm
|
18
|
-
Requires-Dist: tqdm
|
19
|
-
Requires-Dist: datasets
|
20
|
-
Requires-Dist: optuna
|
21
|
-
Requires-Dist: pydantic
|
22
|
-
Requires-Dist: pandas
|
23
|
-
Requires-Dist: hf_xet
|
24
|
-
Requires-Dist: pyrate-limiter
|
25
|
-
Requires-Dist: deap>=1.4.3
|
26
|
-
Provides-Extra: dev
|
27
|
-
Requires-Dist: adalflow; extra == "dev"
|
28
|
-
Requires-Dist: pytest; extra == "dev"
|
29
|
-
Requires-Dist: pytest-conv; extra == "dev"
|
30
|
-
Dynamic: author
|
31
|
-
Dynamic: author-email
|
32
|
-
Dynamic: classifier
|
33
|
-
Dynamic: description
|
34
|
-
Dynamic: description-content-type
|
35
|
-
Dynamic: home-page
|
36
|
-
Dynamic: license-file
|
37
|
-
Dynamic: provides-extra
|
38
|
-
Dynamic: requires-dist
|
39
|
-
Dynamic: requires-python
|
40
|
-
Dynamic: summary
|
41
|
-
|
42
|
-
# Opik Optimizer
|
43
|
-
|
44
|
-
The Opik Opitmizer can refine your prompts to get better performance
|
45
|
-
from your LLMs. You can use a variety of algorithms, including:
|
46
|
-
|
47
|
-
* FewShotBayesianOptimizer
|
48
|
-
* MiproOptimizer
|
49
|
-
* MetaPromptOptimizer
|
50
|
-
|
51
|
-
## Quickstart
|
52
|
-
|
53
|
-
|
54
|
-
[Open Quickstart Notebook in Colab](https://colab.research.google.com/github/comet-ml/opik/blob/main/sdks/opik_optimizer/notebooks/OpikOptimizerIntro.ipynb)
|
55
|
-
|
56
|
-
|
57
|
-
## Setup
|
58
|
-
|
59
|
-
1. Configure Opik:
|
60
|
-
```bash
|
61
|
-
# Install Comet ML CLI
|
62
|
-
pip install opik
|
63
|
-
|
64
|
-
# Configure your API key
|
65
|
-
opik configure
|
66
|
-
# When prompted, enter your Opik API key
|
67
|
-
```
|
68
|
-
|
69
|
-
2. Set up your environment variables:
|
70
|
-
```bash
|
71
|
-
# OpenAI API key for LLM access
|
72
|
-
export OPENAI_API_KEY=your_openai_api_key
|
73
|
-
```
|
74
|
-
|
75
|
-
3. Install the package:
|
76
|
-
```bash
|
77
|
-
pip install opik-optimizer
|
78
|
-
```
|
79
|
-
|
80
|
-
You'll need:
|
81
|
-
|
82
|
-
1. An LLM model name
|
83
|
-
2. An Opik Dataset (or Opik Dataset name)
|
84
|
-
3. An Opik Metric (possibly a custom one)
|
85
|
-
4. A starting prompt (string)
|
86
|
-
|
87
|
-
## Example
|
88
|
-
|
89
|
-
We have prepared some sample datasets for testing:
|
90
|
-
|
91
|
-
* "tiny-test"
|
92
|
-
* "halu-eval-300"
|
93
|
-
* "hotpot-300"
|
94
|
-
|
95
|
-
You can see how to use those below:
|
96
|
-
|
97
|
-
```python
|
98
|
-
from opik.evaluation.metrics import LevenshteinRatio
|
99
|
-
from opik_optimizer import FewShotBayesianOptimizer
|
100
|
-
from opik_optimizer.demo import get_or_create_dataset
|
101
|
-
|
102
|
-
from opik_optimizer import (
|
103
|
-
MetricConfig,
|
104
|
-
TaskConfig,
|
105
|
-
from_dataset_field,
|
106
|
-
from_llm_response_text,
|
107
|
-
)
|
108
|
-
|
109
|
-
hot_pot_dataset = get_or_create_dataset("hotpot-300")
|
110
|
-
|
111
|
-
# For chat prompts instruction doesn't need to contain input parameters from dataset examples.
|
112
|
-
prompt_instruction = """
|
113
|
-
Answer the question.
|
114
|
-
"""
|
115
|
-
project_name = "optimize-few-shot-bayesian-hotpot"
|
116
|
-
|
117
|
-
optimizer = FewShotBayesianOptimizer(
|
118
|
-
model="gpt-4o-mini",
|
119
|
-
project_name=project_name,
|
120
|
-
min_examples=3,
|
121
|
-
max_examples=8,
|
122
|
-
n_threads=16,
|
123
|
-
seed=42,
|
124
|
-
)
|
125
|
-
|
126
|
-
metric_config = MetricConfig(
|
127
|
-
metric=LevenshteinRatio(project_name=project_name),
|
128
|
-
inputs={
|
129
|
-
"output": from_llm_response_text(),
|
130
|
-
"reference": from_dataset_field(name="answer"),
|
131
|
-
},
|
132
|
-
)
|
133
|
-
|
134
|
-
task_config = TaskConfig(
|
135
|
-
instruction_prompt=prompt_instruction,
|
136
|
-
input_dataset_fields=["question"],
|
137
|
-
output_dataset_field="answer",
|
138
|
-
use_chat_prompt=True,
|
139
|
-
)
|
140
|
-
|
141
|
-
result = optimizer.optimize_prompt(
|
142
|
-
dataset=hot_pot_dataset,
|
143
|
-
metric_config=metric_config,
|
144
|
-
task_config=task_config,
|
145
|
-
n_trials=10,
|
146
|
-
n_samples=150,
|
147
|
-
)
|
148
|
-
|
149
|
-
result.display()
|
150
|
-
```
|
151
|
-
|
152
|
-
More examples can be found in the `scripts` folder.
|
153
|
-
|
154
|
-
## Installation
|
155
|
-
|
156
|
-
```bash
|
157
|
-
pip install opik-optimizer
|
158
|
-
```
|
159
|
-
|
160
|
-
## Development
|
161
|
-
|
162
|
-
To use the Opik Optimizer from source:
|
163
|
-
|
164
|
-
```bash
|
165
|
-
git clone git clone git@github.com:comet-ml/opik
|
166
|
-
cd sdks/opik_optimizer
|
167
|
-
pip install -e .
|
168
|
-
```
|
169
|
-
|
170
|
-
## Requirements
|
171
|
-
|
172
|
-
- Python 3.10+ < 3.13
|
173
|
-
- Opik API key
|
174
|
-
- OpenAI API key (or other LLM provider)
|
@@ -1,33 +0,0 @@
|
|
1
|
-
opik_optimizer/__init__.py,sha256=Tbny_W_oUWKdf_33fM-nNTBqvQvarLfB8hMNd_goXT0,1245
|
2
|
-
opik_optimizer/_throttle.py,sha256=ztub8qlwz4u0GVA2TIoLig0D1Cs0hJ7_o_SnT_C7Nmk,1360
|
3
|
-
opik_optimizer/base_optimizer.py,sha256=f4gNX9j3Z3TGst8F0gm1nMHHpHKAlChmeCVAcTdTIR4,4883
|
4
|
-
opik_optimizer/cache_config.py,sha256=EzF4RAzxhSG8vtMJANdiUpNHQ9HzL2CrCXp0iik0f4A,580
|
5
|
-
opik_optimizer/logging_config.py,sha256=ELevhxtflYinTo-jVvyQYZbXG7FgAe_b5dPa9y5uLWw,2774
|
6
|
-
opik_optimizer/meta_prompt_optimizer.py,sha256=tCCDHDjUEjpuicN-766HbwODZHeAzZGTXGqoRl9Npvc,46992
|
7
|
-
opik_optimizer/optimization_result.py,sha256=9zdDV2MXeLYk7U8OqgMmSU-DdPV6qgYQWS2rtkO6Dzw,8693
|
8
|
-
opik_optimizer/task_evaluator.py,sha256=MafDMaLeW0_yGPrumLvYF0HzQUKrnpAlM_0N_TPG8tw,3695
|
9
|
-
opik_optimizer/utils.py,sha256=HivUsNzbt7BcuZeEvikdER1DaTPUFLJrpaVQ8raZYD8,3637
|
10
|
-
opik_optimizer/data/hotpot-500.json,sha256=ToYC9l3lebrOoeWFhELgp63XVFYWcS0HODlQO9g5V3c,101861
|
11
|
-
opik_optimizer/demo/__init__.py,sha256=KSpFYhzN7fTmLEsIaciRHwxcJDeAiX5NDmYLdPsfpT8,150
|
12
|
-
opik_optimizer/demo/cache.py,sha256=5WqK8rSiijzU6s4VHIjLuL1LR5i1yHtY-x5FZTduSus,3669
|
13
|
-
opik_optimizer/demo/datasets.py,sha256=-qmdeFk5X3CIcg9QX7nbGUAVo2khh0XGbmkHh8jgvSY,22633
|
14
|
-
opik_optimizer/evolutionary_optimizer/__init__.py,sha256=OQ2ART5g-7EVGOISvTGY-AbmEyyDFEJJCsmJBzGJIpw,57
|
15
|
-
opik_optimizer/evolutionary_optimizer/evolutionary_optimizer.py,sha256=652TAHa4U4C7_0_wBulDmizfVijqV9E3ngR38nLcpt4,76568
|
16
|
-
opik_optimizer/few_shot_bayesian_optimizer/__init__.py,sha256=VuH7FOROyGcjMPryejtZC-5Y0QHlVTFLTGUDgNqRAFw,113
|
17
|
-
opik_optimizer/few_shot_bayesian_optimizer/few_shot_bayesian_optimizer.py,sha256=nmf3mguehaIomiHPFnONvnxzJvvo15wMU-GLe_S0Gb0,15318
|
18
|
-
opik_optimizer/few_shot_bayesian_optimizer/prompt_parameter.py,sha256=EDsSIFAUOfiZKWLrOAaBDB7Exk7cmIs4ccI95kVa7JY,3118
|
19
|
-
opik_optimizer/few_shot_bayesian_optimizer/prompt_templates.py,sha256=HmvD-UeT3aKiiet5cUtULXe6iFPEOo6hxyDE0pH2LnQ,2424
|
20
|
-
opik_optimizer/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
-
opik_optimizer/mipro_optimizer/__init__.py,sha256=CF9TVXjOxTobDO1kAS8CD4eyLVzEozxjfgoKwIO6ZpU,44
|
22
|
-
opik_optimizer/mipro_optimizer/_lm.py,sha256=bcTy2Y5HjSaFQOATIpUaA86eIp3vKHaMuDI2_RvN2ww,16376
|
23
|
-
opik_optimizer/mipro_optimizer/_mipro_optimizer_v2.py,sha256=CiQWe39LCp-81SZmLyMybIw2lc_0RBKcxclLEuSXQgI,39757
|
24
|
-
opik_optimizer/mipro_optimizer/mipro_optimizer.py,sha256=WoBSFcgSdztwzNOkRRhxBW0aiR4B_ThxZRaebDgt_fA,15581
|
25
|
-
opik_optimizer/mipro_optimizer/utils.py,sha256=wG1koygXfm_pvtA1jR-YaU4NATPbJZoTI7LE7l7df7g,3273
|
26
|
-
opik_optimizer/optimization_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
|
-
opik_optimizer/optimization_config/configs.py,sha256=MYL9H2UAqeyGBlBGWbOZ-6Snto4ZMuXnypgvVuUSW1Y,1132
|
28
|
-
opik_optimizer/optimization_config/mappers.py,sha256=RXgTMxPzTQ1AHGke6Zca6rTcfCI7IkCKhQYciaEGSAo,1698
|
29
|
-
opik_optimizer-0.7.8.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
|
30
|
-
opik_optimizer-0.7.8.dist-info/METADATA,sha256=eYfFtFoEWgqLxVx2OYhmsXyHUOSjK6GArV8hvxdCgcs,3853
|
31
|
-
opik_optimizer-0.7.8.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
|
32
|
-
opik_optimizer-0.7.8.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
|
33
|
-
opik_optimizer-0.7.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|