Feat: implement novitaAI embedding and reranking. (#8250)

### What problem does this PR solve?

Close #8227

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
Kevin Hu 2025-06-13 15:42:17 +08:00 committed by GitHub
parent 6aa0b0819d
commit 65d5268439
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 13 additions and 0 deletions

View File

@ -45,6 +45,7 @@ from .embedding_model import (
HuggingFaceEmbed, HuggingFaceEmbed,
VolcEngineEmbed, VolcEngineEmbed,
GPUStackEmbed, GPUStackEmbed,
NovitaEmbed
) )
from .chat_model import ( from .chat_model import (
GptTurbo, GptTurbo,
@ -128,6 +129,7 @@ from .rerank_model import (
QWenRerank, QWenRerank,
GPUStackRerank, GPUStackRerank,
HuggingfaceRerank, HuggingfaceRerank,
NovitaRerank
) )
from .sequence2txt_model import ( from .sequence2txt_model import (
@ -180,6 +182,7 @@ EmbeddingModel = {
"HuggingFace": HuggingFaceEmbed, "HuggingFace": HuggingFaceEmbed,
"VolcEngine": VolcEngineEmbed, "VolcEngine": VolcEngineEmbed,
"GPUStack": GPUStackEmbed, "GPUStack": GPUStackEmbed,
"NovitaAI": NovitaEmbed
} }
CvModel = { CvModel = {
@ -267,6 +270,7 @@ RerankModel = {
"Tongyi-Qianwen": QWenRerank, "Tongyi-Qianwen": QWenRerank,
"GPUStack": GPUStackRerank, "GPUStack": GPUStackRerank,
"HuggingFace": HuggingfaceRerank, "HuggingFace": HuggingfaceRerank,
"NovitaAI": NovitaRerank
} }
Seq2txtModel = { Seq2txtModel = {

View File

@ -913,3 +913,8 @@ class GPUStackEmbed(OpenAIEmbed):
self.client = OpenAI(api_key=key, base_url=base_url) self.client = OpenAI(api_key=key, base_url=base_url)
self.model_name = model_name self.model_name = model_name
class NovitaEmbed(SILICONFLOWEmbed):
def __init__(self, key, model_name, base_url="https://api.novita.ai/v3/openai/embeddings"):
super().__init__(key, model_name, base_url)

View File

@ -626,3 +626,7 @@ class GPUStackRerank(Base):
raise ValueError( raise ValueError(
f"Error calling GPUStackRerank model {self.model_name}: {e.response.status_code} - {e.response.text}") f"Error calling GPUStackRerank model {self.model_name}: {e.response.status_code} - {e.response.text}")
class NovitaRerank(JinaRerank):
def __init__(self, key, model_name, base_url="https://api.novita.ai/v3/openai/rerank"):
super().__init__(key, model_name, base_url)