Base configuration class for large language models
| 19 | # from langchain_community.llms import Tongyi, VLLM |
| 20 | |
| 21 | class LLMConfig(BaseModel): |
| 22 | """Base configuration class for large language models""" |
| 23 | model_id: Optional[int] = None |
| 24 | model_type: str # Model type: openai/tongyi/vllm etc. |
| 25 | model_name: str # Specific model name |
| 26 | api_key: Optional[str] = None |
| 27 | api_base_url: Optional[str] = None |
| 28 | additional_params: Dict[str, Any] = {} |
| 29 | |
| 30 | class Config: |
| 31 | frozen = True |
| 32 | |
| 33 | def __hash__(self): |
| 34 | if hasattr(self, 'additional_params') and isinstance(self.additional_params, dict): |
| 35 | hashable_params = frozenset((k, tuple(v) if isinstance(v, (list, dict)) else v) |
| 36 | for k, v in self.additional_params.items()) |
| 37 | else: |
| 38 | hashable_params = None |
| 39 | |
| 40 | return hash(( |
| 41 | self.model_id, |
| 42 | self.model_type, |
| 43 | self.model_name, |
| 44 | self.api_key, |
| 45 | self.api_base_url, |
| 46 | hashable_params |
| 47 | )) |
| 48 | |
| 49 | |
| 50 | class BaseLLM(ABC): |
no outgoing calls
no test coverage detected