llama-index
44 строки · 1.2 Кб
1import os2from typing import Optional, Union3
4WATSONX_MODELS = {5"google/flan-t5-xxl": 4096,6"google/flan-ul2": 4096,7"bigscience/mt0-xxl": 4096,8"eleutherai/gpt-neox-20b": 8192,9"bigcode/starcoder": 8192,10"meta-llama/llama-2-70b-chat": 4096,11"ibm/mpt-7b-instruct2": 2048,12"ibm/granite-13b-instruct-v1": 8192,13"ibm/granite-13b-chat-v1": 8192,14}
15
16
17def watsonx_model_to_context_size(model_id: str) -> Union[int, None]:18"""Calculate the maximum number of tokens possible to generate for a model.19
20Args:
21model_id: The model name we want to know the context size for.
22
23Returns:
24The maximum context size
25"""
26token_limit = WATSONX_MODELS.get(model_id, None)27
28if token_limit is None:29raise ValueError(f"Model name {model_id} not found in {WATSONX_MODELS.keys()}")30
31return token_limit32
33
34def get_from_param_or_env_without_error(35param: Optional[str] = None,36env_key: Optional[str] = None,37) -> Union[str, None]:38"""Get a value from a param or an environment variable without error."""39if param is not None:40return param41elif env_key and env_key in os.environ and os.environ[env_key]:42return os.environ[env_key]43else:44return None45