Hi team,
We use the text2vec_openai
vectorizer with our Weaviate instance using the default OpenAI base urls directly. Over the past few months there have been multiple API outages/disruptions that have impacted our production workloads and we’d like to mitigate this going forward.
Are there any formal recommendations from Weaviate how to address this?
-
One option we explored is that through a proxy like Litellm we can define fallback embedding endpoints (same model, different provider, such as OpenAI → Azure OpenAI) and seemlessly handle disruptions or exceptions. However, calling Litellm requires passing in a header Authorization Bearer token such as demoed here: Embeddings - /embeddings | liteLLM which the current
text2vec_openai
doesn’t seem to support. -
Alternatively, could Weaviate provide the ability to define a backup vectorizer internally? Obviously it would be subject to some validation or understanding that both the primary and backup vectorizer would have to be the same exact model & configurations (dimensions, etc.).
The path of least resistance seem to be #1 for us. Would it be possible for Weaviate to expose a text2vec_openai
configuration so we can pass in optional headers to the vectorizer?
Secondarily, I understand from the discussion at What is the process for changing vectorizer model - #7 by DudaNogueira that the vectorizer configuration is not mutable. Assuming all we want to do is switch to a different provider but keep the exact same model (e.g. change base url and hopefully pass in optional headers as described above) is there a way we can do that without having to recreate an entire new collection from scratch and migrate?