Go: fix compilation (#14418)

### What problem does this PR solve?

Add methods to volcengine

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
Jin Hai
2026-04-28 13:21:05 +08:00
committed by GitHub
parent effc84a042
commit ae420f6358
5 changed files with 27 additions and 34 deletions

View File

@@ -76,12 +76,12 @@ type EmbeddingConfig struct {
// EmbeddingModel wraps a ModelDriver with embedding-specific configuration
type EmbeddingModel struct {
ModelDriver ModelDriver
ModelName string
ModelName *string
APIConfig *APIConfig
}
// NewEmbeddingModel creates a new EmbeddingModel
func NewEmbeddingModel(driver ModelDriver, modelName string, apiConfig *APIConfig) *EmbeddingModel {
func NewEmbeddingModel(driver ModelDriver, modelName *string, apiConfig *APIConfig) *EmbeddingModel {
return &EmbeddingModel{
ModelDriver: driver,
ModelName: modelName,
@@ -109,12 +109,12 @@ func (e *EmbeddingModel) EncodeQuery(modelName *string, query string, apiConfig
// RerankModel wraps a ModelDriver with rerank-specific configuration
type RerankModel struct {
ModelDriver ModelDriver
ModelName string
ModelName *string
APIConfig *APIConfig
}
// NewRerankModel creates a new RerankModel
func NewRerankModel(driver ModelDriver, modelName string, apiConfig *APIConfig) *RerankModel {
func NewRerankModel(driver ModelDriver, modelName *string, apiConfig *APIConfig) *RerankModel {
return &RerankModel{
ModelDriver: driver,
ModelName: modelName,
@@ -124,18 +124,18 @@ func NewRerankModel(driver ModelDriver, modelName string, apiConfig *APIConfig)
// Rerank calculates similarity between query and texts
func (r *RerankModel) Rerank(query string, texts []string, apiConfig *APIConfig) ([]float64, error) {
return r.ModelDriver.Rerank(&r.ModelName, query, texts, apiConfig)
return r.ModelDriver.Rerank(r.ModelName, query, texts, apiConfig)
}
// ChatModel wraps a ModelDriver with chat-specific configuration
type ChatModel struct {
ModelDriver ModelDriver
ModelName string
ModelName *string
APIConfig *APIConfig
}
// NewChatModel creates a new ChatModel
func NewChatModel(driver ModelDriver, modelName string, apiConfig *APIConfig) *ChatModel {
func NewChatModel(driver ModelDriver, modelName *string, apiConfig *APIConfig) *ChatModel {
return &ChatModel{
ModelDriver: driver,
ModelName: modelName,

View File

@@ -71,6 +71,21 @@ func (z *VolcEngine) EncodeToEmbedding(modelName *string, texts []string, apiCon
return nil, fmt.Errorf("not implemented")
}
// Encode encodes a list of texts into embeddings (convenience method)
func (z *VolcEngine) Encode(modelName *string, texts []string, apiConfig *APIConfig) ([][]float64, error) {
return nil, fmt.Errorf("%s, Encode not implemented", z.Name())
}
// EncodeQuery encodes a single query string into embedding (convenience method)
func (z *VolcEngine) EncodeQuery(modelName *string, query string, apiConfig *APIConfig) ([]float64, error) {
return nil, fmt.Errorf("%s, EncodeQuery not implemented", z.Name())
}
// Rerank calculates similarity scores between query and texts
func (z *VolcEngine) Rerank(modelName *string, query string, texts []string, apiConfig *APIConfig) ([]float64, error) {
return nil, fmt.Errorf("%s, Rerank not implemented", z.Name())
}
func (z *VolcEngine) ListModels(apiConfig *APIConfig) ([]string, error) {
return nil, fmt.Errorf("%s, no such method", z.Name())
}

View File

@@ -667,28 +667,6 @@ func (m *ModelProviderService) ChatToModel(providerName, instanceName, modelName
return nil, common.CodeServerError, errors.New("model is disabled")
}
func (m *ModelProviderService) ChatToModelByApiKey(providerName, modelName, apiKey, message string) (*string, common.ErrorCode, error) {
providerInfo := dao.GetModelProviderManager().FindProvider(providerName)
if providerInfo == nil {
return nil, common.CodeNotFound, errors.New("provider not found")
}
_, err := dao.GetModelProviderManager().GetModelByName(providerName, modelName)
if err != nil {
return nil, common.CodeNotFound, errors.New(fmt.Sprintf("provider %s model %s not found", providerName, modelName))
}
var apiConfig = &modelModule.APIConfig{}
apiConfig.ApiKey = &apiKey
var response *modelModule.ChatResponse
response, err = providerInfo.ModelDriver.Chat(&modelName, &message, apiConfig, nil)
if err != nil {
return nil, common.CodeServerError, err
}
return response.Answer, common.CodeSuccess, nil
}
// ChatWithMessagesToModelByApiKey sends multiple messages with roles and returns response
func (m *ModelProviderService) ChatWithMessagesToModelByApiKey(providerName, modelName, apiKey string, messages []modelModule.Message) (*string, common.ErrorCode, error) {
providerInfo := dao.GetModelProviderManager().FindProvider(providerName)
@@ -847,7 +825,7 @@ func (m *ModelProviderService) GetEmbeddingModel(tenantID, compositeModelName st
if err != nil {
return nil, err
}
return modelModule.NewEmbeddingModel(driver, modelName, apiConfig), nil
return modelModule.NewEmbeddingModel(driver, &modelName, apiConfig), nil
}
// GetRerankModel returns a RerankModel wrapper for the given tenant
@@ -856,7 +834,7 @@ func (m *ModelProviderService) GetRerankModel(tenantID, compositeModelName strin
if err != nil {
return nil, err
}
return modelModule.NewRerankModel(driver, modelName, apiConfig), nil
return modelModule.NewRerankModel(driver, &modelName, apiConfig), nil
}
// GetChatModel returns a ChatModel wrapper for the given tenant
@@ -865,7 +843,7 @@ func (m *ModelProviderService) GetChatModel(tenantID, compositeModelName string)
if err != nil {
return nil, err
}
return modelModule.NewChatModel(driver, modelName, apiConfig), nil
return modelModule.NewChatModel(driver, &modelName, apiConfig), nil
}
// getModelConfig returns the model driver, model name, and API config for a model

View File

@@ -136,7 +136,7 @@ func RerankByModel(
tsim = TokenSimilarity(keywords, insTw, qb)
// Get similarity scores from reranker model
modelSim, err := rerankModel.ModelDriver.Rerank(&rerankModel.ModelName, query, docs, rerankModel.APIConfig)
modelSim, err := rerankModel.ModelDriver.Rerank(rerankModel.ModelName, query, docs, rerankModel.APIConfig)
if err != nil {
logger.Error("RerankByModel: rerankModel.Rerank failed; falling back to token-only similarity", err)
// If model fails, fall back to token similarity only

View File

@@ -597,7 +597,7 @@ func (s *RetrievalService) Search(ctx context.Context, req *RetrievalSearchReque
// GetVector computes query vector and returns MatchDenseExpr for hybrid search
func (s *RetrievalService) GetVector(txt string, embModel *models.EmbeddingModel, topk int, similarity float64) (*types.MatchDenseExpr, error) {
vector, err := embModel.ModelDriver.EncodeQuery(&embModel.ModelName, txt, embModel.APIConfig)
vector, err := embModel.ModelDriver.EncodeQuery(embModel.ModelName, txt, embModel.APIConfig)
if err != nil {
return nil, err
}