RecaptchaLLM / src /config.py
chris1nexus
Add gemini
d52dc83
import os
from adapter import *
HF_TOKEN = os.getenv("HUGGINGFACEHUB_API_TOKEN")
PRIVATE_DATASET_REPO = "Chris1/recaptcha_datasets"
PROMPT_TYPES = {
"Binary per tile (yes/no)": 1,
"Multiclass per tile (class name)": 2,
}
MODEL_PROVIDERS = [
"Manual",
BaseAdapter.OPENAI,
BaseAdapter.ANTHROPIC,
BaseAdapter.GEMINI,
BaseAdapter.MISTRAL,
BaseAdapter.GROK,
]
MISTRAL_MODELS = ['mistral-medium-latest']
GROK_MODELS = [
'grok-4-0709',
'grok-4-fast-reasoning'
]
ANTHROPIC_MODELS = [
'claude-4-opus-20250514',
'claude-opus-4-1-20250805',
'claude-opus-4-5-20251101',
'claude-sonnet-4-5-20250929',
'claude-haiku-4-5-20251001',
'claude-4-sonnet-20250514']
GEMINI_MODELS = [
'gemini-1.0-pro',
'gemini-1.5-pro',
'gemini-1.5-flash',
'gemini-1.5-pro-002',
'gemini-2.0-flash',
'gemini-2.0-flash-lite',
'gemini-2.5-flash',
'gemini-2.5-pro',
'gemini-3-pro-preview'
]
OPENAI_MODELS = [
'gpt-4o-2024-11-20',
'gpt-4o-mini-2024-07-18',
'gpt-4.5-preview-2025-02-27',
'gpt-4.1-2025-04-14',
'gpt-5.1',
'gpt-5-2025-08-07',
'gpt-5-mini-2025-08-07',
'gpt-5-nano-2025-08-07'
]
MODEL_PROVIDERS = {
BaseAdapter.OPENAI : OPENAI_MODELS ,
BaseAdapter.ANTHROPIC : ANTHROPIC_MODELS,
BaseAdapter.GEMINI : GEMINI_MODELS,
BaseAdapter.MISTRAL : MISTRAL_MODELS,
BaseAdapter.GROK : GROK_MODELS,
#BaseAdapter.COHERE : [],
#BaseAdapter.TOGETHER : []
}
MODEL_ADAPTERS = {
BaseAdapter.OPENAI : OPENAI_MODELS ,
BaseAdapter.ANTHROPIC : ANTHROPIC_MODELS,
BaseAdapter.GEMINI : GEMINI_MODELS,
BaseAdapter.MISTRAL : MISTRAL_MODELS,
BaseAdapter.GROK : GROK_MODELS,
#BaseAdapter.COHERE : [],
#BaseAdapter.TOGETHER : []
}
# -----------------------------
# Prompt Builders & Parsers
# -----------------------------
def build_prompt_3(category: str) -> str:
return (
"Select the images which are of the category '" + category + "' "
"from left to right, top to bottom, indexed 1 to 9. "
"Return only the valid numbers separated by spaces or commas."
)
def build_prompt_1(category: str) -> str:
return "Is the object in the image a '" + category + "'? Answer with yes or no only."
def build_prompt_2(categories: List[str]) -> str:
cats = ", ".join(categories)
return (
"Predict the category of the provided image among the set of categories: "
+ cats + ". Return exactly and only the class name."
)