Skip to content

Commit 30fe49d

Browse files
Refactor provider imports and add consensus defaults
Centralizes imports of get_default_api_url and validate_base_url in provider modules, removing repeated inline imports. Adds named fallback constants for consensus proportion and entropy in consensus.py for improved clarity and maintainability.
1 parent 506fac6 commit 30fe49d

10 files changed

Lines changed: 17 additions & 38 deletions

File tree

python/mllmcelltype/consensus.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323
from .url_utils import resolve_provider_base_url
2424
from .utils import clean_annotation, load_api_key, normalize_annotation_for_comparison
2525

26+
# Default fallback values when metrics cannot be parsed from LLM response
27+
# Low consensus proportion ensures discussion will happen
28+
DEFAULT_FALLBACK_CONSENSUS_PROPORTION = 0.25
29+
# High entropy indicates high uncertainty
30+
DEFAULT_FALLBACK_ENTROPY = 2.0
31+
2632

2733
def _get_api_key(provider: str, api_keys: Optional[dict[str, str]] = None) -> Optional[str]:
2834
"""Get API key for a specific provider.
@@ -575,8 +581,8 @@ def process_controversial_clusters(
575581

576582
# Use default values if parsing failed
577583
if cp_value is None or h_value is None:
578-
cp_value = cp_value or 0.25 # Low consensus to ensure discussion happens
579-
h_value = h_value or 2.0 # High entropy to indicate uncertainty
584+
cp_value = cp_value or DEFAULT_FALLBACK_CONSENSUS_PROPORTION
585+
h_value = h_value or DEFAULT_FALLBACK_ENTROPY
580586
write_log(
581587
f"Could not fully parse LLM consensus response, using defaults: CP={cp_value:.2f}, H={h_value:.2f}",
582588
level="warning",

python/mllmcelltype/providers/anthropic.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from ..logger import write_log
10+
from ..url_utils import get_default_api_url, validate_base_url
1011

1112

1213
# Model alias mapping: user-friendly names -> official API model IDs
@@ -93,15 +94,11 @@ def process_anthropic(
9394

9495
# Determine API URL
9596
if base_url:
96-
from ..url_utils import validate_base_url
97-
9897
if not validate_base_url(base_url):
9998
raise ValueError(f"Invalid base URL: {base_url}")
10099
url = base_url
101100
write_log(f"Using custom base URL: {url}")
102101
else:
103-
from ..url_utils import get_default_api_url
104-
105102
url = get_default_api_url("anthropic")
106103
write_log(f"Using default URL: {url}")
107104

python/mllmcelltype/providers/deepseek.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from urllib3.util.retry import Retry
99

1010
from ..logger import write_log
11+
from ..url_utils import get_default_api_url, validate_base_url
1112

1213

1314
def process_deepseek(
@@ -35,15 +36,11 @@ def process_deepseek(
3536

3637
# Use custom URL or default URL
3738
if base_url:
38-
from ..url_utils import validate_base_url
39-
4039
if not validate_base_url(base_url):
4140
raise ValueError(f"Invalid base URL: {base_url}")
4241
url = base_url
4342
write_log(f"Using custom base URL: {url}")
4443
else:
45-
from ..url_utils import get_default_api_url
46-
4744
url = get_default_api_url("deepseek")
4845
write_log(f"Using default URL: {url}")
4946

python/mllmcelltype/providers/grok.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from ..logger import write_log
10+
from ..url_utils import get_default_api_url, validate_base_url
1011

1112

1213
def process_grok(
@@ -34,15 +35,11 @@ def process_grok(
3435

3536
# Use custom URL or default URL
3637
if base_url:
37-
from ..url_utils import validate_base_url
38-
3938
if not validate_base_url(base_url):
4039
raise ValueError(f"Invalid base URL: {base_url}")
4140
url = base_url
4241
write_log(f"Using custom base URL: {url}")
4342
else:
44-
from ..url_utils import get_default_api_url
45-
4643
url = get_default_api_url("grok")
4744
write_log(f"Using default URL: {url}")
4845

python/mllmcelltype/providers/minimax.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from ..logger import write_log
10+
from ..url_utils import get_default_api_url, validate_base_url
1011

1112

1213
def process_minimax(
@@ -34,15 +35,11 @@ def process_minimax(
3435

3536
# Use custom URL or default URL
3637
if base_url:
37-
from ..url_utils import validate_base_url
38-
3938
if not validate_base_url(base_url):
4039
raise ValueError(f"Invalid base URL: {base_url}")
4140
url = base_url
4241
write_log(f"Using custom base URL: {url}")
4342
else:
44-
from ..url_utils import get_default_api_url
45-
4643
url = get_default_api_url("minimax")
4744
write_log(f"Using default URL: {url}")
4845

python/mllmcelltype/providers/openai.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from ..logger import write_log
10+
from ..url_utils import get_default_api_url, validate_base_url
1011

1112

1213
def process_openai(
@@ -34,15 +35,11 @@ def process_openai(
3435

3536
# Use custom URL or default URL
3637
if base_url:
37-
from ..url_utils import validate_base_url
38-
3938
if not validate_base_url(base_url):
4039
raise ValueError(f"Invalid base URL: {base_url}")
4140
url = base_url
4241
write_log(f"Using custom base URL: {url}")
4342
else:
44-
from ..url_utils import get_default_api_url
45-
4643
url = get_default_api_url("openai")
4744
write_log(f"Using default URL: {url}")
4845

python/mllmcelltype/providers/openrouter.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from ..logger import write_log
10+
from ..url_utils import get_default_api_url, validate_base_url
1011

1112

1213
def process_openrouter(
@@ -34,15 +35,11 @@ def process_openrouter(
3435

3536
# Use custom URL or default URL
3637
if base_url:
37-
from ..url_utils import validate_base_url
38-
3938
if not validate_base_url(base_url):
4039
raise ValueError(f"Invalid base URL: {base_url}")
4140
url = base_url
4241
write_log(f"Using custom base URL: {url}")
4342
else:
44-
from ..url_utils import get_default_api_url
45-
4643
url = get_default_api_url("openrouter")
4744
write_log(f"Using default URL: {url}")
4845

python/mllmcelltype/providers/qwen.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from ..logger import write_log
10+
from ..url_utils import get_working_qwen_endpoint, validate_base_url
1011

1112

1213
def process_qwen(
@@ -33,15 +34,11 @@ def process_qwen(
3334

3435
# Use custom URL or smart selection
3536
if base_url:
36-
from ..url_utils import validate_base_url
37-
3837
if not validate_base_url(base_url):
3938
raise ValueError(f"Invalid base URL: {base_url}")
4039
url = base_url
4140
write_log(f"Using custom base URL: {url}")
4241
else:
43-
from ..url_utils import get_working_qwen_endpoint
44-
4542
url = get_working_qwen_endpoint(api_key)
4643
write_log(f"Using smart-selected endpoint: {url}")
4744

python/mllmcelltype/providers/stepfun.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from ..logger import write_log
10+
from ..url_utils import get_default_api_url, validate_base_url
1011

1112

1213
def process_stepfun(
@@ -34,15 +35,11 @@ def process_stepfun(
3435

3536
# Use custom URL or default URL
3637
if base_url:
37-
from ..url_utils import validate_base_url
38-
3938
if not validate_base_url(base_url):
4039
raise ValueError(f"Invalid base URL: {base_url}")
4140
url = base_url
4241
write_log(f"Using custom base URL: {url}")
4342
else:
44-
from ..url_utils import get_default_api_url
45-
4643
url = get_default_api_url("stepfun")
4744
write_log(f"Using default URL: {url}")
4845

python/mllmcelltype/providers/zhipu.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from ..logger import write_log
10+
from ..url_utils import get_default_api_url, validate_base_url
1011

1112

1213
def process_zhipu(
@@ -34,15 +35,11 @@ def process_zhipu(
3435

3536
# Use custom URL or default URL
3637
if base_url:
37-
from ..url_utils import validate_base_url
38-
3938
if not validate_base_url(base_url):
4039
raise ValueError(f"Invalid base URL: {base_url}")
4140
url = base_url
4241
write_log(f"Using custom base URL: {url}")
4342
else:
44-
from ..url_utils import get_default_api_url
45-
4643
url = get_default_api_url("zhipu")
4744
write_log(f"Using default URL: {url}")
4845

0 commit comments

Comments
 (0)