Skip to content

[ML] VoyageAI Integration - Clean Version#137519

Closed
fzowl wants to merge 41 commits intoelastic:mainfrom
voyage-ai:voyageai-integration-v2
Closed

[ML] VoyageAI Integration - Clean Version#137519
fzowl wants to merge 41 commits intoelastic:mainfrom
voyage-ai:voyageai-integration-v2

Conversation

@fzowl
Copy link
Contributor

@fzowl fzowl commented Nov 3, 2025

Summary

This PR contains the cleaned up VoyageAI integration with the following improvements:

Testing:

  • All tests compile successfully
  • Text embeddings functionality verified
  • Multimodal embeddings support added
  • Rerank functionality included

@elasticsearchmachine elasticsearchmachine added v9.3.0 external-contributor Pull request authored by a developer outside the Elasticsearch team needs:triage Requires assignment of a team area label labels Nov 3, 2025
@fzowl fzowl force-pushed the voyageai-integration-v2 branch 3 times, most recently from c480404 to 3c2400a Compare November 3, 2025 13:59
- Add text, multimodal, and contextual embeddings support
- Add rerank functionality
- All code in services/voyageai directory
- Includes comprehensive test coverage
- Removed 3 files from external/voyageai directory
- Removed 3 files from external/http/sender directory
- All VoyageAI code now in services/voyageai directory only
@fzowl fzowl force-pushed the voyageai-integration-v2 branch from 3c2400a to c2e11ea Compare November 3, 2025 14:00
- Add text, multimodal, and contextual embeddings support
- Add rerank functionality
- All code in services/voyageai directory
- Includes comprehensive test coverage
- Removed test-voyageai-e2e.sh script
- All VoyageAI code now properly organized in services/voyageai only
@fzowl fzowl force-pushed the voyageai-integration-v2 branch from 370aba7 to 72f6dd3 Compare November 3, 2025 14:13
fzowl and others added 3 commits November 3, 2025 15:22
- Add text, multimodal, and contextual embeddings support
- Add rerank functionality
- All code in services/voyageai directory
- Includes comprehensive test coverage
- Removed test-voyageai-e2e.sh script
- Deleted ALL voyageai files from external directory (22 files)
- All VoyageAI code now properly organized in services/voyageai only
* Fix irregular spaces

* Update analysis-keyword-repeat-tokenfilter.md

* Update search-suggesters.md

* Update search-profile.md
@elasticsearchmachine elasticsearchmachine added Team:ML Meta label for the ML team and removed needs:triage Requires assignment of a team area label labels Nov 5, 2025
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/ml-core (Team:ML)

@davidkyle davidkyle self-assigned this Nov 5, 2025
@davidkyle davidkyle requested review from DonalEvans and removed request for davidkyle November 13, 2025 13:36
@fzowl
Copy link
Contributor Author

fzowl commented Nov 24, 2025

@DonalEvans @jonathan-buttner Can you please take a look?

@DonalEvans
Copy link
Contributor

Can you please take a look?

I will try to get to this PR this week, but I have a lot on my plate right now with other large PRs to review. Thank you for your patience.

@DonalEvans
Copy link
Contributor

@fzowl Hi, sorry for taking so long to get to this, I've been out sick recently.

Before I review these changes thoroughly, I have some concerns related to the multimodal model support being added in this PR. We recently added a new task type to the inference API, embedding, which is intended to support both multimodal and non-multimodal models. Rather than adding support for Voyage's multimodal embedding models to the text_embedding task, I think it would be better to keep text_embedding only supporting non-multimodal models and add an integration for the embedding task type to the VoyageAI service in order to support multimodal models.

We don't currently have any integrations that support the embedding task type since it's brand new, but I plan to create one for the JinaAI service very soon which can be used as a template for other integrations. Once that's done, it should be relatively straightforward to implement the equivalent support for VoyageAI.

One other broad concern I have about the approach in this PR is that using the model name to determine the request format may be brittle and difficult to maintain. Can we guarantee that for a given model name prefix the behaviour will always be consistent? Might it be better to allow the user to explicitly set something in the service settings to indicate the type of model being used rather than trying to infer it ourselves?

@fzowl
Copy link
Contributor Author

fzowl commented Dec 13, 2025

@DonalEvans Thanks for your reply! I probably will close this PR and open a new one (even cleaner, less commits) and follow the suggested way.

Regarding your concern about the approach to determine the request format: yes, the model name determines the request format, so at a high level, this should be fine. We can work on a better condition ie. model name contains substring (ie. 'multimodal'), or list the text embedding models, list the multimodal models, ie.

@fzowl
Copy link
Contributor Author

fzowl commented Dec 19, 2025

@DonalEvans I'm closing this PR in favor of #139812 Can you please take a look?

@fzowl fzowl closed this Dec 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

>enhancement external-contributor Pull request authored by a developer outside the Elasticsearch team :ml Machine learning Team:ML Meta label for the ML team v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants