From d0a87530ec72b67f0a2506bbd83134122e696a8b Mon Sep 17 00:00:00 2001 From: Sergey Gonchar Date: Thu, 13 Feb 2025 18:30:44 +0100 Subject: [PATCH] Add model constants file and standardize model name usage --- skllm/llm/anthropic/completion.py | 3 ++- skllm/llm/gpt/clients/openai/completion.py | 5 +++-- skllm/llm/gpt/clients/openai/embedding.py | 5 +++-- skllm/llm/gpt/completion.py | 3 ++- skllm/llm/gpt/embedding.py | 6 ++++-- skllm/llm/gpt/mixin.py | 11 ++--------- skllm/model_constants.py | 10 ++++++++++ skllm/models/anthropic/classification/few_shot.py | 15 ++++++++------- .../models/anthropic/classification/zero_shot.py | 13 +++++++------ skllm/models/anthropic/tagging/ner.py | 5 +++-- skllm/models/anthropic/text2text/summarization.py | 5 +++-- skllm/models/anthropic/text2text/translation.py | 5 +++-- skllm/models/gpt/classification/few_shot.py | 15 ++++++++------- skllm/models/gpt/classification/tunable.py | 9 +++++---- skllm/models/gpt/classification/zero_shot.py | 13 +++++++------ skllm/models/gpt/tagging/ner.py | 5 +++-- skllm/models/gpt/text2text/summarization.py | 5 +++-- skllm/models/gpt/text2text/translation.py | 5 +++-- skllm/models/gpt/text2text/tunable.py | 5 +++-- skllm/models/gpt/vectorization.py | 5 +++-- skllm/models/vertex/classification/tunable.py | 5 +++-- skllm/models/vertex/classification/zero_shot.py | 9 +++++---- skllm/models/vertex/text2text/tunable.py | 5 +++-- 23 files changed, 96 insertions(+), 71 deletions(-) create mode 100644 skllm/model_constants.py diff --git a/skllm/llm/anthropic/completion.py b/skllm/llm/anthropic/completion.py index 52132ed..410e45c 100644 --- a/skllm/llm/anthropic/completion.py +++ b/skllm/llm/anthropic/completion.py @@ -1,12 +1,13 @@ from typing import Dict, List, Optional from skllm.llm.anthropic.credentials import set_credentials from skllm.utils import retry +from model_constants import ANTHROPIC_CLAUDE_MODEL @retry(max_retries=3) def get_chat_completion( messages: List[Dict], key: str, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, max_tokens: int = 1000, temperature: float = 0.0, system: Optional[str] = None, diff --git a/skllm/llm/gpt/clients/openai/completion.py b/skllm/llm/gpt/clients/openai/completion.py index 779c0f2..344af81 100644 --- a/skllm/llm/gpt/clients/openai/completion.py +++ b/skllm/llm/gpt/clients/openai/completion.py @@ -5,6 +5,7 @@ set_credentials, ) from skllm.utils import retry +from model_constants import OPENAI_GPT_MODEL @retry(max_retries=3) @@ -12,7 +13,7 @@ def get_chat_completion( messages: dict, key: str, org: str, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, api="openai", json_response=False, ): @@ -27,7 +28,7 @@ def get_chat_completion( org : str The OPEN AI organization ID to use. model : str, optional - The OPEN AI model to use. Defaults to "gpt-3.5-turbo". + The OPEN AI model to use. max_retries : int, optional The maximum number of retries to use. Defaults to 3. api : str diff --git a/skllm/llm/gpt/clients/openai/embedding.py b/skllm/llm/gpt/clients/openai/embedding.py index f1907b9..1835eb3 100644 --- a/skllm/llm/gpt/clients/openai/embedding.py +++ b/skllm/llm/gpt/clients/openai/embedding.py @@ -2,6 +2,7 @@ from skllm.utils import retry import openai from openai import OpenAI +from model_constants import OPENAI_EMBEDDING_MODEL @retry(max_retries=3) @@ -9,7 +10,7 @@ def get_embedding( text: str, key: str, org: str, - model: str = "text-embedding-ada-002", + model: str = OPENAI_EMBEDDING_MODEL, api: str = "openai" ): """ @@ -24,7 +25,7 @@ def get_embedding( org : str The OPEN AI organization ID to use. model : str, optional - The model to use. Defaults to "text-embedding-ada-002". + The model to use. max_retries : int, optional The maximum number of retries to use. Defaults to 3. api: str, optional diff --git a/skllm/llm/gpt/completion.py b/skllm/llm/gpt/completion.py index f115766..339b647 100644 --- a/skllm/llm/gpt/completion.py +++ b/skllm/llm/gpt/completion.py @@ -7,13 +7,14 @@ ) from skllm.llm.gpt.utils import split_to_api_and_model from skllm.config import SKLLMConfig as _Config +from model_constants import OPENAI_GPT_MODEL def get_chat_completion( messages: dict, openai_key: str = None, openai_org: str = None, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, json_response: bool = False, ): """Gets a chat completion from the OpenAI compatible API.""" diff --git a/skllm/llm/gpt/embedding.py b/skllm/llm/gpt/embedding.py index a4bb45f..4e69c48 100644 --- a/skllm/llm/gpt/embedding.py +++ b/skllm/llm/gpt/embedding.py @@ -1,11 +1,13 @@ from skllm.llm.gpt.clients.openai.embedding import get_embedding as _oai_get_embedding from skllm.llm.gpt.utils import split_to_api_and_model +from model_constants import OPENAI_EMBEDDING_MODEL + def get_embedding( text: str, key: str, org: str, - model: str = "text-embedding-ada-002", + model: str = OPENAI_EMBEDDING_MODEL, ): """ Encodes a string and return the embedding for a string. @@ -19,7 +21,7 @@ def get_embedding( org : str The OPEN AI organization ID to use. model : str, optional - The model to use. Defaults to "text-embedding-ada-002". + The model to use. Returns ------- diff --git a/skllm/llm/gpt/mixin.py b/skllm/llm/gpt/mixin.py index 823e4b0..424e12e 100644 --- a/skllm/llm/gpt/mixin.py +++ b/skllm/llm/gpt/mixin.py @@ -21,6 +21,7 @@ import numpy as np from tqdm import tqdm import json +from model_constants import OPENAI_GPT_TUNABLE_MODEL def construct_message(role: str, content: str) -> dict: @@ -219,24 +220,16 @@ def _get_embeddings(self, text: np.ndarray) -> List[List[float]]: # for now this works only with OpenAI class GPTTunableMixin(BaseTunableMixin): - _supported_tunable_models = [ - "gpt-3.5-turbo-0125", - "gpt-3.5-turbo", - "gpt-4o-mini-2024-07-18", - "gpt-4o-mini", - ] - def _build_label(self, label: str): return json.dumps({"label": label}) def _set_hyperparameters(self, base_model: str, n_epochs: int, custom_suffix: str): - self.base_model = base_model + self.base_model = OPENAI_GPT_TUNABLE_MODEL self.n_epochs = n_epochs self.custom_suffix = custom_suffix if base_model not in self._supported_tunable_models: raise ValueError( f"Model {base_model} is not supported. Supported models are" - f" {self._supported_tunable_models}" ) def _tune(self, X, y): diff --git a/skllm/model_constants.py b/skllm/model_constants.py new file mode 100644 index 0000000..0f05bd9 --- /dev/null +++ b/skllm/model_constants.py @@ -0,0 +1,10 @@ +# OpenAI models +OPENAI_GPT_MODEL = "gpt-3.5-turbo" +OPENAI_GPT_TUNABLE_MODEL = "gpt-3.5-turbo-0613" +OPENAI_EMBEDDING_MODEL = "text-embedding-ada-002" + +# Anthropic (Claude) models +ANTHROPIC_CLAUDE_MODEL = "claude-3-haiku-20240307" + +# Vertex AI models +VERTEX_DEFAULT_MODEL = "text-bison@002" diff --git a/skllm/models/anthropic/classification/few_shot.py b/skllm/models/anthropic/classification/few_shot.py index 19b4691..f50e967 100644 --- a/skllm/models/anthropic/classification/few_shot.py +++ b/skllm/models/anthropic/classification/few_shot.py @@ -9,6 +9,7 @@ from skllm.models._base.vectorizer import BaseVectorizer from skllm.memory.base import IndexConstructor from typing import Optional +from model_constants import ANTHROPIC_CLAUDE_MODEL, OPENAI_EMBEDDING_MODEL class FewShotClaudeClassifier(BaseFewShotClassifier, ClaudeClassifierMixin, SingleLabelMixin): @@ -16,7 +17,7 @@ class FewShotClaudeClassifier(BaseFewShotClassifier, ClaudeClassifierMixin, Sing def __init__( self, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, key: Optional[str] = None, @@ -28,7 +29,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "claude-3-haiku-20240307" + model to use default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies prompt_template : Optional[str], optional @@ -52,7 +53,7 @@ class MultiLabelFewShotClaudeClassifier( def __init__( self, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, default_label: str = "Random", max_labels: Optional[int] = 5, prompt_template: Optional[str] = None, @@ -65,7 +66,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "claude-3-haiku-20240307" + model to use default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies max_labels : Optional[int], optional @@ -95,7 +96,7 @@ class DynamicFewShotClaudeClassifier( def __init__( self, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, key: Optional[str] = None, @@ -112,7 +113,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "claude-3-haiku-20240307" + model to use default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies prompt_template : Optional[str], optional @@ -129,7 +130,7 @@ def __init__( metric used for similarity search, by default "euclidean" """ if vectorizer is None: - vectorizer = GPTVectorizer(model="text-embedding-ada-002", key=key) + vectorizer = GPTVectorizer(model=OPENAI_EMBEDDING_MODEL, key=key) super().__init__( model=model, default_label=default_label, diff --git a/skllm/models/anthropic/classification/zero_shot.py b/skllm/models/anthropic/classification/zero_shot.py index 94272bd..fce6eee 100644 --- a/skllm/models/anthropic/classification/zero_shot.py +++ b/skllm/models/anthropic/classification/zero_shot.py @@ -6,6 +6,7 @@ ) from skllm.llm.anthropic.mixin import ClaudeClassifierMixin as _ClaudeClassifierMixin from typing import Optional +from model_constants import ANTHROPIC_CLAUDE_MODEL class ZeroShotClaudeClassifier( @@ -15,7 +16,7 @@ class ZeroShotClaudeClassifier( def __init__( self, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, key: Optional[str] = None, @@ -27,7 +28,7 @@ def __init__( Parameters ---------- model : str, optional - Model to use, by default "claude-3-haiku-20240307". + Model to use default_label : str, optional Default label for failed predictions; if "Random", selects randomly based on class frequencies, defaults to "Random". prompt_template : Optional[str], optional @@ -51,7 +52,7 @@ class CoTClaudeClassifier( def __init__( self, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, key: Optional[str] = None, @@ -63,7 +64,7 @@ def __init__( Parameters ---------- model : str, optional - Model to use, by default "claude-3-haiku-20240307". + Model to use. default_label : str, optional Default label for failed predictions; if "Random", selects randomly based on class frequencies, defaults to "Random". prompt_template : Optional[str], optional @@ -87,7 +88,7 @@ class MultiLabelZeroShotClaudeClassifier( def __init__( self, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, default_label: str = "Random", max_labels: Optional[int] = 5, prompt_template: Optional[str] = None, @@ -100,7 +101,7 @@ def __init__( Parameters ---------- model : str, optional - Model to use, by default "claude-3-haiku-20240307". + Model to use. default_label : str, optional Default label for failed predictions; if "Random", selects randomly based on class frequencies, defaults to "Random". max_labels : Optional[int], optional diff --git a/skllm/models/anthropic/tagging/ner.py b/skllm/models/anthropic/tagging/ner.py index 86afc7b..c039ab4 100644 --- a/skllm/models/anthropic/tagging/ner.py +++ b/skllm/models/anthropic/tagging/ner.py @@ -1,6 +1,7 @@ from skllm.models._base.tagger import ExplainableNER as _ExplainableNER from skllm.llm.anthropic.mixin import ClaudeTextCompletionMixin as _ClaudeTextCompletionMixin from typing import Optional, Dict +from model_constants import ANTHROPIC_CLAUDE_MODEL class AnthropicExplainableNER(_ExplainableNER, _ClaudeTextCompletionMixin): @@ -11,7 +12,7 @@ def __init__( entities: Dict[str, str], display_predictions: bool = False, sparse_output: bool = True, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, key: Optional[str] = None, num_workers: int = 1, ) -> None: @@ -27,7 +28,7 @@ def __init__( sparse_output : bool, optional whether to generate a sparse representation of the predictions, by default True model : str, optional - model to use, by default "claude-3-haiku-20240307" + model to use key : Optional[str], optional estimator-specific API key; if None, retrieved from the global config num_workers : int, optional diff --git a/skllm/models/anthropic/text2text/summarization.py b/skllm/models/anthropic/text2text/summarization.py index 161d1f4..c95bc9a 100644 --- a/skllm/models/anthropic/text2text/summarization.py +++ b/skllm/models/anthropic/text2text/summarization.py @@ -1,6 +1,7 @@ from skllm.models._base.text2text import BaseSummarizer as _BaseSummarizer from skllm.llm.anthropic.mixin import ClaudeTextCompletionMixin as _ClaudeTextCompletionMixin from typing import Optional +from model_constants import ANTHROPIC_CLAUDE_MODEL class ClaudeSummarizer(_BaseSummarizer, _ClaudeTextCompletionMixin): @@ -8,7 +9,7 @@ class ClaudeSummarizer(_BaseSummarizer, _ClaudeTextCompletionMixin): def __init__( self, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, key: Optional[str] = None, max_words: int = 15, focus: Optional[str] = None, @@ -19,7 +20,7 @@ def __init__( Parameters ---------- model : str, optional - Model to use, by default "claude-3-haiku-20240307" + Model to use key : Optional[str], optional Estimator-specific API key; if None, retrieved from global config max_words : int, optional diff --git a/skllm/models/anthropic/text2text/translation.py b/skllm/models/anthropic/text2text/translation.py index 57174e9..20a44c4 100644 --- a/skllm/models/anthropic/text2text/translation.py +++ b/skllm/models/anthropic/text2text/translation.py @@ -1,6 +1,7 @@ from skllm.models._base.text2text import BaseTranslator as _BaseTranslator from skllm.llm.anthropic.mixin import ClaudeTextCompletionMixin as _ClaudeTextCompletionMixin from typing import Optional +from model_constants import ANTHROPIC_CLAUDE_MODEL class ClaudeTranslator(_BaseTranslator, _ClaudeTextCompletionMixin): @@ -10,7 +11,7 @@ class ClaudeTranslator(_BaseTranslator, _ClaudeTextCompletionMixin): def __init__( self, - model: str = "claude-3-haiku-20240307", + model: str = ANTHROPIC_CLAUDE_MODEL, key: Optional[str] = None, output_language: str = "English", ) -> None: @@ -20,7 +21,7 @@ def __init__( Parameters ---------- model : str, optional - Model to use, by default "claude-3-haiku-20240307" + Model to use key : Optional[str], optional Estimator-specific API key; if None, retrieved from global config output_language : str, optional diff --git a/skllm/models/gpt/classification/few_shot.py b/skllm/models/gpt/classification/few_shot.py index b7dcd8b..227fc68 100644 --- a/skllm/models/gpt/classification/few_shot.py +++ b/skllm/models/gpt/classification/few_shot.py @@ -9,12 +9,13 @@ from skllm.models._base.vectorizer import BaseVectorizer from skllm.memory.base import IndexConstructor from typing import Optional +from model_constants import OPENAI_GPT_MODEL, OPENAI_EMBEDDING_MODEL class FewShotGPTClassifier(BaseFewShotClassifier, GPTClassifierMixin, SingleLabelMixin): def __init__( self, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, key: Optional[str] = None, @@ -27,7 +28,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "gpt-3.5-turbo" + model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" prompt_template : Optional[str], optional @@ -51,7 +52,7 @@ class MultiLabelFewShotGPTClassifier( ): def __init__( self, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, default_label: str = "Random", max_labels: Optional[int] = 5, prompt_template: Optional[str] = None, @@ -65,7 +66,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "gpt-3.5-turbo" + model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" max_labels : Optional[int], optional @@ -92,7 +93,7 @@ class DynamicFewShotGPTClassifier( ): def __init__( self, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, key: Optional[str] = None, @@ -110,7 +111,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "gpt-3.5-turbo" + model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" prompt_template : Optional[str], optional @@ -129,7 +130,7 @@ def __init__( metric used for similarity search, by default "euclidean" """ if vectorizer is None: - vectorizer = GPTVectorizer(model="text-embedding-ada-002", key=key, org=org) + vectorizer = GPTVectorizer(model=OPENAI_EMBEDDING_MODEL, key=key, org=org) super().__init__( model=model, default_label=default_label, diff --git a/skllm/models/gpt/classification/tunable.py b/skllm/models/gpt/classification/tunable.py index 912a788..0e20a7a 100644 --- a/skllm/models/gpt/classification/tunable.py +++ b/skllm/models/gpt/classification/tunable.py @@ -8,6 +8,7 @@ MultiLabelMixin as _MultiLabelMixin, ) from typing import Optional +from model_constants import OPENAI_GPT_TUNABLE_MODEL class _TunableClassifier(_BaseTunableClassifier, _GPTClassifierMixin, _GPTTunableMixin): @@ -17,7 +18,7 @@ class _TunableClassifier(_BaseTunableClassifier, _GPTClassifierMixin, _GPTTunabl class GPTClassifier(_TunableClassifier, _SingleLabelMixin): def __init__( self, - base_model: str = "gpt-3.5-turbo-0613", + base_model: str = OPENAI_GPT_TUNABLE_MODEL, default_label: str = "Random", key: Optional[str] = None, org: Optional[str] = None, @@ -31,7 +32,7 @@ def __init__( Parameters ---------- base_model : str, optional - base model to use, by default "gpt-3.5-turbo-0613" + base model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" key : Optional[str], optional @@ -55,7 +56,7 @@ def __init__( class MultiLabelGPTClassifier(_TunableClassifier, _MultiLabelMixin): def __init__( self, - base_model: str = "gpt-3.5-turbo-0613", + base_model: str = OPENAI_GPT_TUNABLE_MODEL, default_label: str = "Random", key: Optional[str] = None, org: Optional[str] = None, @@ -70,7 +71,7 @@ def __init__( Parameters ---------- base_model : str, optional - base model to use, by default "gpt-3.5-turbo-0613" + base model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" key : Optional[str], optional diff --git a/skllm/models/gpt/classification/zero_shot.py b/skllm/models/gpt/classification/zero_shot.py index 1c2382b..627587c 100644 --- a/skllm/models/gpt/classification/zero_shot.py +++ b/skllm/models/gpt/classification/zero_shot.py @@ -6,6 +6,7 @@ ) from skllm.llm.gpt.mixin import GPTClassifierMixin as _GPTClassifierMixin from typing import Optional +from model_constants import OPENAI_GPT_MODEL class ZeroShotGPTClassifier( @@ -13,7 +14,7 @@ class ZeroShotGPTClassifier( ): def __init__( self, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, key: Optional[str] = None, @@ -26,7 +27,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "gpt-3.5-turbo" + model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" prompt_template : Optional[str], optional @@ -48,7 +49,7 @@ def __init__( class CoTGPTClassifier(_BaseCoTClassifier, _GPTClassifierMixin, _SingleLabelMixin): def __init__( self, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, key: Optional[str] = None, @@ -61,7 +62,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "gpt-3.5-turbo" + model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" prompt_template : Optional[str], optional @@ -85,7 +86,7 @@ class MultiLabelZeroShotGPTClassifier( ): def __init__( self, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, default_label: str = "Random", max_labels: Optional[int] = 5, prompt_template: Optional[str] = None, @@ -99,7 +100,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "gpt-3.5-turbo" + model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" max_labels : Optional[int], optional diff --git a/skllm/models/gpt/tagging/ner.py b/skllm/models/gpt/tagging/ner.py index 98857a8..9276ec0 100644 --- a/skllm/models/gpt/tagging/ner.py +++ b/skllm/models/gpt/tagging/ner.py @@ -1,6 +1,7 @@ from skllm.models._base.tagger import ExplainableNER as _ExplainableNER from skllm.llm.gpt.mixin import GPTTextCompletionMixin as _GPTTextCompletionMixin from typing import Optional, Dict +from model_constants import OPENAI_GPT_MODEL class GPTExplainableNER(_ExplainableNER, _GPTTextCompletionMixin): @@ -9,7 +10,7 @@ def __init__( entities: Dict[str, str], display_predictions: bool = False, sparse_output: bool = True, - model: str = "gpt-4o", + model: str = OPENAI_GPT_MODEL, key: Optional[str] = None, org: Optional[str] = None, num_workers: int = 1, @@ -26,7 +27,7 @@ def __init__( sparse_output : bool, optional whether to generate a sparse representation of the predictions, by default True model : str, optional - model to use, by default "gpt-4o" + model to use. key : Optional[str], optional estimator-specific API key; if None, retrieved from the global config, by default None org : Optional[str], optional diff --git a/skllm/models/gpt/text2text/summarization.py b/skllm/models/gpt/text2text/summarization.py index 9138013..6d61f0b 100644 --- a/skllm/models/gpt/text2text/summarization.py +++ b/skllm/models/gpt/text2text/summarization.py @@ -1,12 +1,13 @@ from skllm.models._base.text2text import BaseSummarizer as _BaseSummarizer from skllm.llm.gpt.mixin import GPTTextCompletionMixin as _GPTTextCompletionMixin from typing import Optional +from model_constants import OPENAI_GPT_MODEL class GPTSummarizer(_BaseSummarizer, _GPTTextCompletionMixin): def __init__( self, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, key: Optional[str] = None, org: Optional[str] = None, max_words: int = 15, @@ -18,7 +19,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "gpt-3.5-turbo" + model to use. key : Optional[str], optional estimator-specific API key; if None, retrieved from the global config, by default None org : Optional[str], optional diff --git a/skllm/models/gpt/text2text/translation.py b/skllm/models/gpt/text2text/translation.py index 1ccd9f7..01c3348 100644 --- a/skllm/models/gpt/text2text/translation.py +++ b/skllm/models/gpt/text2text/translation.py @@ -1,6 +1,7 @@ from skllm.models._base.text2text import BaseTranslator as _BaseTranslator from skllm.llm.gpt.mixin import GPTTextCompletionMixin as _GPTTextCompletionMixin from typing import Optional +from model_constants import OPENAI_GPT_MODEL class GPTTranslator(_BaseTranslator, _GPTTextCompletionMixin): @@ -8,7 +9,7 @@ class GPTTranslator(_BaseTranslator, _GPTTextCompletionMixin): def __init__( self, - model: str = "gpt-3.5-turbo", + model: str = OPENAI_GPT_MODEL, key: Optional[str] = None, org: Optional[str] = None, output_language: str = "English", @@ -19,7 +20,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "gpt-3.5-turbo" + model to use. key : Optional[str], optional estimator-specific API key; if None, retrieved from the global config, by default None org : Optional[str], optional diff --git a/skllm/models/gpt/text2text/tunable.py b/skllm/models/gpt/text2text/tunable.py index fd64696..c5d5903 100644 --- a/skllm/models/gpt/text2text/tunable.py +++ b/skllm/models/gpt/text2text/tunable.py @@ -6,6 +6,7 @@ BaseTunableText2TextModel as _BaseTunableText2TextModel, ) from typing import Optional +from model_constants import OPENAI_GPT_TUNABLE_MODEL class TunableGPTText2Text( @@ -13,7 +14,7 @@ class TunableGPTText2Text( ): def __init__( self, - base_model: str = "gpt-3.5-turbo-0613", + base_model: str = OPENAI_GPT_TUNABLE_MODEL, key: Optional[str] = None, org: Optional[str] = None, n_epochs: Optional[int] = None, @@ -25,7 +26,7 @@ def __init__( Parameters ---------- base_model : str, optional - base model to use, by default "gpt-3.5-turbo-0613" + base model to use. key : Optional[str], optional estimator-specific API key; if None, retrieved from the global config, by default None org : Optional[str], optional diff --git a/skllm/models/gpt/vectorization.py b/skllm/models/gpt/vectorization.py index 30d803a..76ff72a 100644 --- a/skllm/models/gpt/vectorization.py +++ b/skllm/models/gpt/vectorization.py @@ -1,12 +1,13 @@ from skllm.models._base.vectorizer import BaseVectorizer as _BaseVectorizer from skllm.llm.gpt.mixin import GPTEmbeddingMixin as _GPTEmbeddingMixin from typing import Optional +from model_constants import OPENAI_EMBEDDING_MODEL class GPTVectorizer(_BaseVectorizer, _GPTEmbeddingMixin): def __init__( self, - model: str = "text-embedding-3-small", + model: str = OPENAI_EMBEDDING_MODEL, batch_size: int = 1, key: Optional[str] = None, org: Optional[str] = None, @@ -17,7 +18,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "text-embedding-ada-002" + model to use. batch_size : int, optional number of samples per request, by default 1 key : Optional[str], optional diff --git a/skllm/models/vertex/classification/tunable.py b/skllm/models/vertex/classification/tunable.py index c14d88f..737b36b 100644 --- a/skllm/models/vertex/classification/tunable.py +++ b/skllm/models/vertex/classification/tunable.py @@ -8,6 +8,7 @@ VertexTunableMixin as _VertexTunableMixin, ) from typing import Optional +from model_constants import TEXT_BISON_MODEL class _TunableClassifier( @@ -19,7 +20,7 @@ class _TunableClassifier( class VertexClassifier(_TunableClassifier, _SingleLabelMixin): def __init__( self, - base_model: str = "text-bison@002", + base_model: str = TEXT_BISON_MODEL, n_update_steps: int = 1, default_label: str = "Random", ): @@ -29,7 +30,7 @@ def __init__( Parameters ---------- base_model : str, optional - base model to use, by default "text-bison@002" + base model to use. n_update_steps : int, optional number of epochs, by default 1 default_label : str, optional diff --git a/skllm/models/vertex/classification/zero_shot.py b/skllm/models/vertex/classification/zero_shot.py index ea84d27..1db5fef 100644 --- a/skllm/models/vertex/classification/zero_shot.py +++ b/skllm/models/vertex/classification/zero_shot.py @@ -5,6 +5,7 @@ MultiLabelMixin as _MultiLabelMixin, ) from typing import Optional +from model_constants import TEXT_BISON_MODEL class ZeroShotVertexClassifier( @@ -12,7 +13,7 @@ class ZeroShotVertexClassifier( ): def __init__( self, - model: str = "text-bison@002", + model: str = TEXT_BISON_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, **kwargs, @@ -23,7 +24,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "text-bison@002" + model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" prompt_template : Optional[str], optional @@ -42,7 +43,7 @@ class MultiLabelZeroShotVertexClassifier( ): def __init__( self, - model: str = "text-bison@002", + model: str = TEXT_BISON_MODEL, default_label: str = "Random", prompt_template: Optional[str] = None, max_labels: Optional[int] = 5, @@ -54,7 +55,7 @@ def __init__( Parameters ---------- model : str, optional - model to use, by default "text-bison@002" + model to use. default_label : str, optional default label for failed prediction; if "Random" -> selects randomly based on class frequencies, by default "Random" prompt_template : Optional[str], optional diff --git a/skllm/models/vertex/text2text/tunable.py b/skllm/models/vertex/text2text/tunable.py index 9abcb55..8a636b9 100644 --- a/skllm/models/vertex/text2text/tunable.py +++ b/skllm/models/vertex/text2text/tunable.py @@ -5,6 +5,7 @@ from skllm.models._base.text2text import ( BaseTunableText2TextModel as _BaseTunableText2TextModel, ) +from model_constants import TEXT_BISON_MODEL class TunableVertexText2Text( @@ -12,7 +13,7 @@ class TunableVertexText2Text( ): def __init__( self, - base_model: str = "text-bison@002", + base_model: str = TEXT_BISON_MODEL, n_update_steps: int = 1, ): """ @@ -21,7 +22,7 @@ def __init__( Parameters ---------- base_model : str, optional - base model to use, by default "text-bison@002" + base model to use. n_update_steps : int, optional number of epochs, by default 1 """