image.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. from typing import Dict
  2. from langchain_google_genai import ChatGoogleGenerativeAI
  3. from common.config.tokenizer_manage_config import TokenizerManage
  4. from models_provider.base_model_provider import MaxKBBaseModel
  5. def custom_get_token_ids(text: str):
  6. tokenizer = TokenizerManage.get_tokenizer()
  7. return tokenizer.encode(text)
  8. class GeminiImage(MaxKBBaseModel, ChatGoogleGenerativeAI):
  9. @staticmethod
  10. def is_cache_model():
  11. return False
  12. @staticmethod
  13. def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
  14. optional_params = MaxKBBaseModel.filter_optional_params(model_kwargs)
  15. base_url = model_credential.get('base_url', "https://generativelanguage.googleapis.com")
  16. if base_url:
  17. optional_params.setdefault("model_kwargs", {})
  18. optional_params["model_kwargs"]["http_options"] = {"base_url": base_url}
  19. return GeminiImage(
  20. model=model_name,
  21. api_key=model_credential.get('api_key'),
  22. **optional_params,
  23. )