Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 24 additions & 135 deletions src/gabriel/api.py

Large diffs are not rendered by default.

8 changes: 0 additions & 8 deletions src/gabriel/tasks/bucket.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ class BucketConfig:
model: str = "gpt-5-mini"
n_parallels: int = 650
use_dummy: bool = False
max_timeout: Optional[float] = None
additional_instructions: Optional[str] = None
differentiate: bool = False
n_terms_per_prompt: int = 250
Expand All @@ -40,7 +39,6 @@ class BucketConfig:
top_k_per_round: int = 1
raw_term_definitions: bool = True
reasoning_effort: Optional[str] = None
reasoning_summary: Optional[str] = None

def __post_init__(self) -> None:
if self.additional_instructions is not None:
Expand Down Expand Up @@ -247,11 +245,9 @@ def persist_state() -> None:
model=self.cfg.model,
save_path=os.path.join(self.cfg.save_dir, "bucket_generation.csv"),
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=True,
reset_files=reset_files,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
**kwargs,
)
if not isinstance(gen_df, pd.DataFrame):
Expand Down Expand Up @@ -336,11 +332,9 @@ def _vote_prompts(opts: List[str], selected: List[str], tag: str):
self.cfg.save_dir, f"vote_reduce{round_idx}.csv"
),
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=True,
reset_files=reset_files,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
**kwargs,
)
vote_map = dict(zip(vote_df.Identifier, vote_df.Response))
Expand Down Expand Up @@ -385,11 +379,9 @@ def _vote_prompts(opts: List[str], selected: List[str], tag: str):
self.cfg.save_dir, f"vote_final{loop_idx}.csv"
),
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=True,
reset_files=reset_files,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
**kwargs,
)
vote_map = dict(zip(vote_df.Identifier, vote_df.Response))
Expand Down
4 changes: 0 additions & 4 deletions src/gabriel/tasks/classify.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,9 @@ class ClassifyConfig:
min_frequency: float = 0.6
additional_instructions: Optional[str] = None
use_dummy: bool = False
max_timeout: Optional[float] = None
modality: str = "text"
n_attributes_per_run: int = 8
reasoning_effort: Optional[str] = None
reasoning_summary: Optional[str] = None
differentiate: bool = False
circle_first: Optional[bool] = None
search_context_size: str = "medium"
Expand Down Expand Up @@ -436,9 +434,7 @@ async def run(
json_mode=self.cfg.modality != "audio",
model=self.cfg.model,
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
print_example_prompt=True,
**kwargs,
)
Expand Down
10 changes: 2 additions & 8 deletions src/gabriel/tasks/codify.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,7 @@ class CodifyConfig:
debug_print: bool = False
use_dummy: bool = False
reasoning_effort: Optional[str] = None
reasoning_summary: Optional[str] = None
modality: str = "text"
json_mode: bool = True
max_timeout: Optional[float] = None
n_rounds: int = 2 # Total Codify passes including the initial run; set to 1 to skip completion sweeps
completion_classifier_instructions: Optional[str] = None
completion_max_rounds: InitVar[Optional[int]] = None
Expand Down Expand Up @@ -760,13 +757,11 @@ async def _gather_iteration(
n_parallels=self.cfg.n_parallels,
save_path=os.path.join(self.cfg.save_dir, self._iteration_file_name(iteration)),
reset_files=reset_files,
use_dummy=self.cfg.use_dummy,
json_mode=self.cfg.json_mode,
json_mode=True,
model=self.cfg.model,
max_timeout=self.cfg.max_timeout,
use_dummy=self.cfg.use_dummy,
print_example_prompt=True,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
prompt_images=prompt_images or None,
prompt_audio=prompt_audio or None,
prompt_pdfs=prompt_pdfs or None,
Expand Down Expand Up @@ -878,7 +873,6 @@ async def _classify_remaining(
modality=self.cfg.modality,
n_attributes_per_run=self.cfg.max_categories_per_call,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
)
classifier = Classify(classify_cfg)

Expand Down
4 changes: 0 additions & 4 deletions src/gabriel/tasks/compare.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,10 @@ class CompareConfig:
n_parallels: int = 650
n_runs: int = 1
use_dummy: bool = False
max_timeout: Optional[float] = None
differentiate: bool = True
additional_instructions: Optional[str] = None
modality: str = "text"
reasoning_effort: Optional[str] = None
reasoning_summary: Optional[str] = None
circle_first: Optional[bool] = None

def __post_init__(self) -> None:
Expand Down Expand Up @@ -204,11 +202,9 @@ async def run(
model=self.cfg.model,
save_path=csv_path,
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=self.cfg.modality != "audio",
reset_files=reset_files,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
**kwargs,
)
if not isinstance(df_resp_all, pd.DataFrame):
Expand Down
13 changes: 6 additions & 7 deletions src/gabriel/tasks/debias.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,6 @@ class DebiasConfig:
n_parallels: int = 650
measurement_kwargs: Dict[str, Any] = field(default_factory=dict)
removal_kwargs: Dict[str, Any] = field(default_factory=dict)
use_dummy: bool = False
robust_regression: bool = True
random_seed: int = 12345
verbose: bool = True
Expand Down Expand Up @@ -612,7 +611,7 @@ async def _run_measurement(
save_dir=save_dir,
model=kwargs.pop("model", default_model),
n_parallels=kwargs.pop("n_parallels", self.cfg.n_parallels),
use_dummy=kwargs.pop("use_dummy", self.cfg.use_dummy),
use_dummy=kwargs.pop("use_dummy", False),
**kwargs,
)
runner = Rate(cfg, template_path=template_path)
Expand All @@ -628,7 +627,7 @@ async def _run_measurement(
save_dir=save_dir,
model=kwargs.pop("model", default_model),
n_parallels=kwargs.pop("n_parallels", self.cfg.n_parallels),
use_dummy=kwargs.pop("use_dummy", self.cfg.use_dummy),
use_dummy=kwargs.pop("use_dummy", False),
**kwargs,
)
runner = Classify(cfg, template_path=template_path)
Expand All @@ -644,7 +643,7 @@ async def _run_measurement(
save_dir=save_dir,
model=kwargs.pop("model", default_model),
n_parallels=kwargs.pop("n_parallels", self.cfg.n_parallels),
use_dummy=kwargs.pop("use_dummy", self.cfg.use_dummy),
use_dummy=kwargs.pop("use_dummy", False),
**kwargs,
)
runner = Extract(cfg, template_path=template_path)
Expand All @@ -660,7 +659,7 @@ async def _run_measurement(
save_dir=save_dir,
model=kwargs.pop("model", default_model),
n_parallels=kwargs.pop("n_parallels", self.cfg.n_parallels),
use_dummy=kwargs.pop("use_dummy", self.cfg.use_dummy),
use_dummy=kwargs.pop("use_dummy", False),
**kwargs,
)
runner = Rank(cfg, template_path=template_path)
Expand Down Expand Up @@ -794,7 +793,7 @@ async def _prepare_codify_variants(
save_dir=save_dir,
model=kwargs.pop("model", self.cfg.model),
n_parallels=kwargs.pop("n_parallels", self.cfg.n_parallels),
use_dummy=kwargs.pop("use_dummy", self.cfg.use_dummy),
use_dummy=kwargs.pop("use_dummy", False),
**kwargs,
)
runner = Codify(cfg)
Expand Down Expand Up @@ -872,7 +871,7 @@ async def _prepare_paraphrase_variant(
save_dir=save_dir,
model=kwargs.pop("model", self.cfg.model),
n_parallels=kwargs.pop("n_parallels", self.cfg.n_parallels),
use_dummy=kwargs.pop("use_dummy", self.cfg.use_dummy),
use_dummy=kwargs.pop("use_dummy", False),
**kwargs,
)
runner = Paraphrase(cfg)
Expand Down
2 changes: 0 additions & 2 deletions src/gabriel/tasks/deduplicate.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class DeduplicateConfig:
n_parallels: int = 650
n_runs: int = 3
use_dummy: bool = False
max_timeout: Optional[float] = None
additional_instructions: Optional[str] = None
use_embeddings: bool = True
group_size: int = 500
Expand Down Expand Up @@ -182,7 +181,6 @@ async def _run_once(
model=self.cfg.model,
save_path=save_path,
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=True,
reset_files=reset_files,
**kwargs,
Expand Down
4 changes: 0 additions & 4 deletions src/gabriel/tasks/deidentify.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,9 @@ class DeidentifyConfig:
save_dir: str = "deidentify"
file_name: str = "deidentified.csv"
use_dummy: bool = False
max_timeout: Optional[float] = None
max_words_per_call: int = 7500
additional_instructions: Optional[str] = None
reasoning_effort: Optional[str] = None
reasoning_summary: Optional[str] = None
n_passes: int = 1
use_existing_mappings_only: bool = False

Expand Down Expand Up @@ -269,10 +267,8 @@ async def run(
model=self.cfg.model,
save_path=str(save_path),
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=True,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
reset_files=reset_files,
**kwargs,
)
Expand Down
14 changes: 1 addition & 13 deletions src/gabriel/tasks/discover.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ class DiscoverConfig:
top_k_per_round: int = 1
raw_term_definitions: bool = True
reasoning_effort: Optional[str] = None
reasoning_summary: Optional[str] = None
max_timeout: Optional[float] = None

def __post_init__(self) -> None:
if self.additional_instructions is not None:
Expand Down Expand Up @@ -201,8 +199,6 @@ async def run(
debug_print=False,
use_dummy=self.cfg.use_dummy,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
max_timeout=self.cfg.max_timeout,
)
coder = Codify(coder_cfg)
codify_df = await coder.run(
Expand Down Expand Up @@ -237,12 +233,10 @@ async def run(
model=self.cfg.model,
n_parallels=self.cfg.n_parallels,
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
differentiate=self.cfg.differentiate,
additional_instructions=self.cfg.additional_instructions,
modality=self.cfg.modality,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
)
cmp = Compare(cmp_cfg)
compare_df = await cmp.run(
Expand Down Expand Up @@ -287,8 +281,6 @@ async def run(
top_k_per_round=self.cfg.top_k_per_round,
raw_term_definitions=self.cfg.raw_term_definitions,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
max_timeout=self.cfg.max_timeout,
)
buck = Bucket(buck_cfg)
bucket_df = await buck.run(
Expand Down Expand Up @@ -318,11 +310,9 @@ async def run(
"use_dummy": self.cfg.use_dummy,
"modality": self.cfg.modality,
"reasoning_effort": self.cfg.reasoning_effort,
"reasoning_summary": self.cfg.reasoning_summary,
"n_attributes_per_run": 8,
"differentiate": True,
"additional_instructions": self.cfg.additional_instructions or "",
"max_timeout": self.cfg.max_timeout,
}

def swap_cs(text: str) -> str:
Expand Down Expand Up @@ -480,13 +470,11 @@ def derive_base_from_combined(
n_parallels=self.cfg.n_parallels,
n_runs=self.cfg.n_runs,
min_frequency=self.cfg.min_frequency,
additional_instructions=self.cfg.additional_instructions or "",
use_dummy=self.cfg.use_dummy,
additional_instructions=self.cfg.additional_instructions or "",
modality=self.cfg.modality,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
n_attributes_per_run=8,
max_timeout=self.cfg.max_timeout,
)
clf = Classify(clf_cfg)
classify_result = await clf.run(
Expand Down
4 changes: 0 additions & 4 deletions src/gabriel/tasks/extract.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,10 @@ class ExtractConfig:
n_parallels: int = 650
n_runs: int = 1
use_dummy: bool = False
max_timeout: Optional[float] = None
additional_instructions: Optional[str] = None
modality: str = "entity"
n_attributes_per_run: int = 8
reasoning_effort: Optional[str] = None
reasoning_summary: Optional[str] = None

def __post_init__(self) -> None:
if self.additional_instructions is not None:
Expand Down Expand Up @@ -306,11 +304,9 @@ async def run(
model=self.cfg.model,
save_path=csv_path,
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=self.cfg.modality != "audio",
reset_files=reset_files,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
**kwargs,
)
if not isinstance(df_resp_all, pd.DataFrame):
Expand Down
2 changes: 0 additions & 2 deletions src/gabriel/tasks/filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ class FilterConfig:
threshold: float = 0.5
additional_instructions: Optional[str] = None
use_dummy: bool = False
max_timeout: Optional[float] = None
fix_json_with_llm: bool = False
json_fix_timeout: Optional[float] = 60.0

Expand Down Expand Up @@ -113,7 +112,6 @@ async def run(
model=self.cfg.model,
save_path=save_path,
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=True,
reset_files=reset_files,
**kwargs,
Expand Down
5 changes: 0 additions & 5 deletions src/gabriel/tasks/ideate.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ class IdeateConfig:
use_dummy: bool = False
web_search: bool = False
reasoning_effort: Optional[str] = None
reasoning_summary: Optional[str] = None
use_seed_entities: bool = True
seed_num_entities: Optional[int] = None
seed_entities_per_generation: Optional[int] = None
Expand Down Expand Up @@ -305,7 +304,6 @@ async def _generate_reports(
reset_files=reset_files,
use_dummy=self.cfg.use_dummy,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
print_example_prompt=True,
)
kwargs.update(generation_kwargs)
Expand Down Expand Up @@ -357,7 +355,6 @@ async def _generate_seed_entities(
use_dummy=self.cfg.use_dummy,
deduplicate=self.cfg.seed_deduplicate,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
)
if self.cfg.seed_additional_instructions:
cfg_kwargs["instructions"] = (
Expand Down Expand Up @@ -616,7 +613,6 @@ async def _apply_rate(
n_parallels=self.cfg.n_parallels,
use_dummy=self.cfg.use_dummy,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
)
cfg_kwargs.update(config_updates)
existing_instruction = cfg_kwargs.get("additional_instructions")
Expand Down Expand Up @@ -661,7 +657,6 @@ async def _apply_rank(
n_parallels=self.cfg.n_parallels,
use_dummy=self.cfg.use_dummy,
reasoning_effort=self.cfg.reasoning_effort,
reasoning_summary=self.cfg.reasoning_summary,
recursive=recursive,
recursive_fraction=self.cfg.recursive_fraction,
recursive_min_remaining=self.cfg.recursive_min_remaining,
Expand Down
2 changes: 0 additions & 2 deletions src/gabriel/tasks/merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class MergeConfig:
n_parallels: int = 650
n_runs: int = 1
use_dummy: bool = False
max_timeout: Optional[float] = None
additional_instructions: Optional[str] = None
use_embeddings: bool = True
short_list_len: int = 16
Expand Down Expand Up @@ -337,7 +336,6 @@ def _parse_response(res: Any) -> Dict[str, str]:
model=self.cfg.model,
save_path=save_path,
use_dummy=self.cfg.use_dummy,
max_timeout=self.cfg.max_timeout,
json_mode=True,
reset_files=reset_files if attempt == 0 else False,
**kwargs,
Expand Down
Loading
Loading