opik-optimizer 1.0.4__py3-none-any.whl → 1.0.6__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 +5 -5
- opik_optimizer/optimizable_agent.py +2 -1
- opik_optimizer/utils.py +8 -1
- {opik_optimizer-1.0.4.dist-info → opik_optimizer-1.0.6.dist-info}/METADATA +4 -3
- {opik_optimizer-1.0.4.dist-info → opik_optimizer-1.0.6.dist-info}/RECORD +8 -8
- {opik_optimizer-1.0.4.dist-info → opik_optimizer-1.0.6.dist-info}/WHEEL +0 -0
- {opik_optimizer-1.0.4.dist-info → opik_optimizer-1.0.6.dist-info}/licenses/LICENSE +0 -0
- {opik_optimizer-1.0.4.dist-info → opik_optimizer-1.0.6.dist-info}/top_level.txt +0 -0
@@ -1533,26 +1533,26 @@ Return only the new prompt list object.
|
|
1533
1533
|
"""
|
1534
1534
|
total_items = len(dataset.get_items())
|
1535
1535
|
|
1536
|
+
new_prompt = prompt.copy()
|
1537
|
+
new_prompt.set_messages(messages)
|
1538
|
+
|
1536
1539
|
experiment_config = experiment_config or {}
|
1537
1540
|
experiment_config["project_name"] = self.agent_class.project_name
|
1538
1541
|
experiment_config = {
|
1539
1542
|
**experiment_config,
|
1540
1543
|
"optimizer": self.__class__.__name__,
|
1541
1544
|
"agent_class": self.agent_class.__name__,
|
1542
|
-
"agent_config":
|
1545
|
+
"agent_config": new_prompt.to_dict(),
|
1543
1546
|
"metric": metric.__name__,
|
1544
1547
|
"dataset": dataset.name,
|
1545
1548
|
"configuration": {
|
1546
|
-
"prompt":
|
1549
|
+
"prompt": new_prompt.get_messages(),
|
1547
1550
|
"n_samples_for_eval": (
|
1548
1551
|
len(dataset_item_ids) if dataset_item_ids is not None else n_samples
|
1549
1552
|
),
|
1550
1553
|
"total_dataset_items": total_items,
|
1551
1554
|
},
|
1552
1555
|
}
|
1553
|
-
|
1554
|
-
new_prompt = prompt.copy()
|
1555
|
-
new_prompt.set_messages(messages)
|
1556
1556
|
try:
|
1557
1557
|
agent = self.agent_class(new_prompt)
|
1558
1558
|
except Exception:
|
@@ -58,7 +58,8 @@ class OptimizableAgent:
|
|
58
58
|
def init_llm(self) -> None:
|
59
59
|
"""Initialize the LLM with the appropriate callbacks."""
|
60
60
|
# Litellm bug requires this (maybe problematic if multi-threaded)
|
61
|
-
|
61
|
+
if "OPIK_PROJECT_NAME" not in os.environ:
|
62
|
+
os.environ["OPIK_PROJECT_NAME"] = str(self.project_name)
|
62
63
|
self.opik_logger = OpikLogger()
|
63
64
|
litellm.callbacks = [self.opik_logger]
|
64
65
|
|
opik_optimizer/utils.py
CHANGED
@@ -257,7 +257,14 @@ def ensure_ending_slash(url: str) -> str:
|
|
257
257
|
return url.rstrip("/") + "/"
|
258
258
|
|
259
259
|
|
260
|
-
def get_optimization_run_url_by_id(
|
260
|
+
def get_optimization_run_url_by_id(
|
261
|
+
dataset_id: Optional[str], optimization_id: Optional[str]
|
262
|
+
) -> str:
|
263
|
+
if dataset_id is None or optimization_id is None:
|
264
|
+
raise ValueError(
|
265
|
+
"Cannot create a new run link without a dataset_id and optimization_id."
|
266
|
+
)
|
267
|
+
|
261
268
|
opik_config = opik.config.get_from_user_inputs()
|
262
269
|
url_override = opik_config.url_override
|
263
270
|
encoded_opik_url = base64.b64encode(url_override.encode("utf-8")).decode("utf-8")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: opik_optimizer
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.6
|
4
4
|
Summary: Agent optimization with Opik
|
5
5
|
Home-page: https://github.com/comet-ml/opik
|
6
6
|
Author: Comet ML
|
@@ -119,19 +119,20 @@ from opik_optimizer.datasets import hotpot_300
|
|
119
119
|
# Load a sample dataset
|
120
120
|
hot_pot_dataset = hotpot_300()
|
121
121
|
|
122
|
+
project_name = "optimize-few-shot-bayesian-hotpot" # For Comet logging
|
123
|
+
|
122
124
|
# Define the instruction for your chat prompt.
|
123
125
|
# Input parameters from dataset examples will be interpolated into the full prompt.
|
124
126
|
prompt = ChatPrompt(
|
127
|
+
project_name=project_name,
|
125
128
|
messages=[
|
126
129
|
{"role": "system", "content": "You are a helpful assistant."},
|
127
130
|
{"role": "user", "content": "{question}"}
|
128
131
|
]
|
129
132
|
)
|
130
|
-
project_name = "optimize-few-shot-bayesian-hotpot" # For Comet logging
|
131
133
|
|
132
134
|
optimizer = FewShotBayesianOptimizer(
|
133
135
|
model="gpt-4o-mini", # LiteLLM name to use for generation and optimization
|
134
|
-
project_name=project_name, # Associates the run with a Comet project
|
135
136
|
min_examples=3, # Min few-shot examples
|
136
137
|
max_examples=8, # Max few-shot examples
|
137
138
|
n_threads=16, # Parallel threads for evaluation
|
@@ -3,12 +3,12 @@ opik_optimizer/_throttle.py,sha256=ijZ-8nPSzLnUwNeKjejom5QFMHP80JR_hmpB2b20q4E,1
|
|
3
3
|
opik_optimizer/base_optimizer.py,sha256=-hFlV7i9gLSR0-ODlUo-_YzNOSBUzxuw52DcCQF7TXQ,6137
|
4
4
|
opik_optimizer/cache_config.py,sha256=Xd3NdUsL7bLQWoNe3pESqH4nHucU1iNTSGp-RqbwDog,599
|
5
5
|
opik_optimizer/logging_config.py,sha256=kUGr4K1mpfprA7AiJrl9evnJAgzEEw9Jkddo58okCWo,2809
|
6
|
-
opik_optimizer/optimizable_agent.py,sha256=
|
6
|
+
opik_optimizer/optimizable_agent.py,sha256=4-ZlZh0RDPhWjeGfYDGb-J5ivG_zxZ2Ns30Le2Hv0DU,6073
|
7
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
|
11
|
-
opik_optimizer/utils.py,sha256=
|
11
|
+
opik_optimizer/utils.py,sha256=0lHYqleN2OfOZ5WVqQsfglbCPQpjMxjZUWTueM9Tql4,10591
|
12
12
|
opik_optimizer/data/hotpot-500.json,sha256=YXxCtuvYvxSu5u0y4559a6b1qwgAYsWzT_SUKv_21ew,76862
|
13
13
|
opik_optimizer/datasets/__init__.py,sha256=V4LVDOaRjwzaYvhdQ3V6CAwFaeKnxyTV1lp_ES9Z31E,691
|
14
14
|
opik_optimizer/datasets/ai2_arc.py,sha256=vIxb8qlCAxx4_cz2P7SIqS7flquj--7XVUaDmy12UfY,1440
|
@@ -26,7 +26,7 @@ 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=OfTf__Sd_1dX9XF2IUabR1xEQz6QONrYCj8lXT39F4c,82588
|
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
|
@@ -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.6.dist-info/licenses/LICENSE,sha256=dTRSwwCHdWeSjzodvnivYqcwi8x3Qfr21yv65QUWWBE,1062
|
47
|
+
opik_optimizer-1.0.6.dist-info/METADATA,sha256=YsDfS17TWVCxQVZGSMxvINRQQPpgzfifWQND-lJd96c,6535
|
48
|
+
opik_optimizer-1.0.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
49
|
+
opik_optimizer-1.0.6.dist-info/top_level.txt,sha256=ondOlpq6_yFckqpxoAHSfzZS2N-JfgmA-QQhOJfz7m0,15
|
50
|
+
opik_optimizer-1.0.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|