Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Fallback options for remote embedding services #1757

Open
joel-odlund opened this issue May 27, 2024 · 2 comments
Open

Feature Request: Fallback options for remote embedding services #1757

joel-odlund opened this issue May 27, 2024 · 2 comments

Comments

@joel-odlund
Copy link

joel-odlund commented May 27, 2024

Description

When using an external embedding service such as OpenAI, Typesense becomes sensitive to outages in the external service.

Steps to reproduce

Configure Typesense to use OpenAI. Disable the OpenAI token. Try searching.

Desired Behavior

It would be nice if Typesense could provide some fallback logic, for example

  • using a secondary embedding provider
  • ignoring the embedding field if needed and use the other provided fields without failure

Actual Behavior

Typesense returns an HTTP error when OpenAI is not available.

@Ku3mi41
Copy link

Ku3mi41 commented May 28, 2024

If you set up embedding, then you expect that it will always be filled.

  • if you simply skip this stage, the embedding will never be filled in at all
  • if you use a different model, there will be embedding from a different model that does not match the one used for requests

@joel-odlund
Copy link
Author

joel-odlund commented May 28, 2024

If you set up embedding, then you expect that it will always be filled.

  • if you simply skip this stage, the embedding will never be filled in at all

Yes, if the embedding is unavailable at search time, it could be an option to fall back to using the other fields in the search, i.e. keyword search fields.

  • if you use a different model, there will be embedding from a different model that does not match the one used for requests

What I had in mind was to have fallback embeddings indexed along with the main embeddings, if you want to have a fallback available. It is already possible to have multiple embedding fields and models at the same time, I believe, but if any model is unavailable the search fails.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants