@@ -61,6 +61,7 @@ Status EmbeddingService::denseEmbedDocuments(
6161 std::string openai_key = " " ;
6262 std::string jinaai_key = " " ;
6363 std::string voyageai_key = " " ;
64+ std::string mixedbreadai_key = " " ;
6465 // Inject 3rd party service key based on their model name.
6566 if (server::CommonUtil::StartsWith (model_name, " openai/" )) {
6667 if (headers.find (OPENAI_KEY_HEADER) == headers.end ()) {
@@ -77,6 +78,11 @@ Status EmbeddingService::denseEmbedDocuments(
7778 return Status (INVALID_PAYLOAD, " Missing VoyageAI API key." );
7879 }
7980 voyageai_key = headers[VOYAGEAI_KEY_HEADER];
81+ } else if (server::CommonUtil::StartsWith (model_name, " mixedbreadai/" )) {
82+ if (headers.find (MIXEDBREADAI_KEY_HEADER) == headers.end ()) {
83+ return Status (INVALID_PAYLOAD, " Missing mixedbread ai API key." );
84+ }
85+ mixedbreadai_key = headers[MIXEDBREADAI_KEY_HEADER];
8086 }
8187
8288 // Constructing documents list from attr_column_container
@@ -85,7 +91,7 @@ Status EmbeddingService::denseEmbedDocuments(
8591 // Assuming attr_column_container[idx] returns a string or can be converted to string
8692 requestBody->documents ->push_back (oatpp::String (std::get<std::string>(attr_column_container[idx]).c_str ()));
8793 }
88- auto response = m_client->denseEmbedDocuments (" /v1/embeddings" , openai_key, jinaai_key, voyageai_key, requestBody);
94+ auto response = m_client->denseEmbedDocuments (" /v1/embeddings" , openai_key, jinaai_key, voyageai_key, mixedbreadai_key, requestBody);
8995 auto responseBody = response->readBodyToString ();
9096 // std::cout << "Embedding response: " << responseBody->c_str() << std::endl;
9197 vectordb::Json json;
@@ -136,6 +142,7 @@ Status EmbeddingService::denseEmbedQuery(
136142 std::string openai_key = " " ;
137143 std::string jinaai_key = " " ;
138144 std::string voyageai_key = " " ;
145+ std::string mixedbreadai_key = " " ;
139146 // Inject 3rd party service key based on their model name.
140147 if (server::CommonUtil::StartsWith (model_name, " openai/" )) {
141148 if (headers.find (OPENAI_KEY_HEADER) == headers.end ()) {
@@ -152,9 +159,14 @@ Status EmbeddingService::denseEmbedQuery(
152159 return Status (INVALID_PAYLOAD, " Missing VoyageAI API key." );
153160 }
154161 voyageai_key = headers[VOYAGEAI_KEY_HEADER];
162+ } else if (server::CommonUtil::StartsWith (model_name, " mixedbreadai/" )) {
163+ if (headers.find (MIXEDBREADAI_KEY_HEADER) == headers.end ()) {
164+ return Status (INVALID_PAYLOAD, " Missing mixedbread ai API key." );
165+ }
166+ mixedbreadai_key = headers[MIXEDBREADAI_KEY_HEADER];
155167 }
156168
157- auto response = m_client->denseEmbedDocuments (" /v1/embeddings" , openai_key, jinaai_key, voyageai_key, requestBody);
169+ auto response = m_client->denseEmbedDocuments (" /v1/embeddings" , openai_key, jinaai_key, voyageai_key, mixedbreadai_key, requestBody);
158170 auto responseBody = response->readBodyToString ();
159171 // std::cout << "Embedding response: " << responseBody->c_str() << std::endl;
160172 vectordb::Json json;
0 commit comments