Stabilize modal rendering and sequential Gemini flow
build-push / docker (push) Successful in 4m13s

This commit is contained in:
AI Assistant
2026-03-16 12:45:12 +09:00
parent 82cead950e
commit c0830b5fde
7 changed files with 145 additions and 125 deletions
+15 -4
View File
@@ -337,14 +337,25 @@ func (a *App) searchMedia(c *gin.Context) {
}
if geminiErr != nil && len(recommended) == 0 {
warning := geminiErr.Error()
fallback := services.BuildFallbackRecommendations(scored, 20, "")
a.debug("search fallback summary", summarizeRecommendationResults(fallback, time.Since(started), warning))
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "Gemini Vision fallback to ranked results", "progress": 90, "message": warning})
c.JSON(http.StatusOK, gin.H{"results": fallback, "warning": warning, "queries": queryVariants})
if strings.Contains(warning, "gemini api key is not configured") {
fallback := services.BuildFallbackRecommendations(scored, 20, "")
a.debug("search fallback summary", summarizeRecommendationResults(fallback, time.Since(started), warning))
c.JSON(http.StatusOK, gin.H{"results": fallback, "warning": warning, "queries": queryVariants})
return
}
a.debug("search fallback summary", summarizeRecommendationResults([]services.AIRecommendation{}, time.Since(started), warning))
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "Gemini Vision returned no usable results", "progress": 90, "message": warning})
c.JSON(http.StatusOK, gin.H{"results": []services.AIRecommendation{}, "warning": warning, "queries": queryVariants})
return
}
merged := services.MergeRecommendations(recommended, scored, 20)
if len(merged) == 0 && len(recommended) > 0 {
warning := "Gemini가 대부분의 후보를 부정적으로 평가해 표시할 결과가 없습니다."
a.debug("search fallback summary", summarizeRecommendationResults([]services.AIRecommendation{}, time.Since(started), warning))
c.JSON(http.StatusOK, gin.H{"results": []services.AIRecommendation{}, "warning": warning, "queries": queryVariants})
return
}
merged = services.RandomizeTopRecommendations(merged, 8)
warning := ""
if geminiErr != nil {