image.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from typing import Dict
  2. from urllib.parse import urlparse, ParseResult
  3. from models_provider.base_model_provider import MaxKBBaseModel
  4. from models_provider.impl.base_chat_open_ai import BaseChatOpenAI
  5. def get_base_url(url: str):
  6. parse = urlparse(url)
  7. result_url = ParseResult(scheme=parse.scheme, netloc=parse.netloc, path=parse.path, params='',
  8. query='',
  9. fragment='').geturl()
  10. return result_url[:-1] if result_url.endswith("/") else result_url
  11. class OllamaImage(MaxKBBaseModel, BaseChatOpenAI):
  12. @staticmethod
  13. def is_cache_model():
  14. return False
  15. @staticmethod
  16. def new_instance(model_type, model_name, model_credential: Dict[str, object], **model_kwargs):
  17. api_base = model_credential.get('api_base', '')
  18. base_url = get_base_url(api_base)
  19. base_url = base_url if base_url.endswith('/v1') else (base_url + '/v1')
  20. optional_params = MaxKBBaseModel.filter_optional_params(model_kwargs)
  21. return OllamaImage(
  22. model_name=model_name,
  23. openai_api_base=base_url,
  24. openai_api_key=model_credential.get('api_key'),
  25. # stream_options={"include_usage": True},
  26. streaming=True,
  27. stream_usage=True,
  28. **optional_params,
  29. )