scaleway.py 1.1 KB

12345678910111213141516171819202122232425262728
  1. from typing import Any
  2. from huggingface_hub.inference._common import RequestParameters, _as_dict
  3. from ._common import BaseConversationalTask, InferenceProviderMapping, TaskProviderHelper, filter_none
  4. class ScalewayConversationalTask(BaseConversationalTask):
  5. def __init__(self):
  6. super().__init__(provider="scaleway", base_url="https://api.scaleway.ai")
  7. class ScalewayFeatureExtractionTask(TaskProviderHelper):
  8. def __init__(self):
  9. super().__init__(provider="scaleway", base_url="https://api.scaleway.ai", task="feature-extraction")
  10. def _prepare_route(self, mapped_model: str, api_key: str) -> str:
  11. return "/v1/embeddings"
  12. def _prepare_payload_as_dict(
  13. self, inputs: Any, parameters: dict, provider_mapping_info: InferenceProviderMapping
  14. ) -> dict | None:
  15. parameters = filter_none(parameters)
  16. return {"input": inputs, "model": provider_mapping_info.provider_id, **parameters}
  17. def get_response(self, response: bytes | dict, request_params: RequestParameters | None = None) -> Any:
  18. embeddings = _as_dict(response)["data"]
  19. return [embedding["embedding"] for embedding in embeddings]