diff --git a/internal/handler/initialization.go b/internal/handler/initialization.go index 083676b9..1904dfc7 100644 --- a/internal/handler/initialization.go +++ b/internal/handler/initialization.go @@ -556,11 +556,7 @@ func (h *InitializationHandler) CheckOllamaModels(c *gin.Context) { // 检查每个模型是否存在 for _, modelName := range req.Models { - checkModelName := modelName - if !strings.Contains(modelName, ":") { - checkModelName = modelName + ":latest" - } - available, err := h.ollamaService.IsModelAvailable(ctx, checkModelName) + available, err := h.ollamaService.IsModelAvailable(ctx, modelName) if err != nil { logger.ErrorWithFields(ctx, err, map[string]interface{}{ "model_name": modelName, diff --git a/internal/models/utils/ollama/ollama.go b/internal/models/utils/ollama/ollama.go index 76b88ced..bce1e299 100644 --- a/internal/models/utils/ollama/ollama.go +++ b/internal/models/utils/ollama/ollama.go @@ -107,9 +107,14 @@ func (s *OllamaService) IsModelAvailable(ctx context.Context, modelName string) return false, fmt.Errorf("failed to get model list: %w", err) } + // If no version is specified for the model, add ":latest" by default + checkModelName := modelName + if !strings.Contains(modelName, ":") { + checkModelName = modelName + ":latest" + } // Check if model is in the list for _, model := range listResp.Models { - if model.Name == modelName { + if model.Name == checkModelName { return true, nil } }