Parcourir la source

feat: add info logs for Ollama embedding calls

Log start/end of embedding requests with model, input size,
vector dimension, and elapsed time, plus batch timing.
何文松 il y a 1 mois
Parent
commit
66dfa792f7

+ 12 - 4
backend/graph-service/src/main/java/com/lingyue/graph/service/OllamaEmbeddingService.java

@@ -46,6 +46,9 @@ public class OllamaEmbeddingService {
         }
 
         try {
+            long startTime = System.currentTimeMillis();
+            log.info("调用 Ollama 向量化: model={}, textLength={}", embeddingModel, text.length());
+
             // 构建请求体
             Map<String, Object> request = new HashMap<>();
             request.put("model", embeddingModel);
@@ -73,7 +76,9 @@ public class OllamaEmbeddingService {
                 vector[i] = embeddingList.get(i).floatValue();
             }
 
-            log.debug("文本向量化完成,维度: {}", vector.length);
+            long elapsedMs = System.currentTimeMillis() - startTime;
+            log.info("Ollama 向量化完成: model={}, dim={}, elapsedMs={}",
+                    embeddingModel, vector.length, elapsedMs);
             return vector;
 
         } catch (Exception e) {
@@ -145,7 +150,9 @@ public class OllamaEmbeddingService {
         for (int batchStart = 0; batchStart < chunks.size(); batchStart += batchSize) {
             int batchEnd = Math.min(batchStart + batchSize, chunks.size());
             List<TextChunk> batch = chunks.subList(batchStart, batchEnd);
-            log.info("向量化批次开始: batch={}-{}, total={}", batchStart + 1, batchEnd, chunks.size());
+            long batchStartTime = System.currentTimeMillis();
+            log.info("向量化批次开始: batch={}-{}, batchSize={}, total={}",
+                    batchStart + 1, batchEnd, batch.size(), chunks.size());
 
             for (TextChunk chunk : batch) {
                 try {
@@ -159,8 +166,9 @@ public class OllamaEmbeddingService {
                 }
             }
 
-            log.info("向量化批次完成: processed={}/{} (成功: {}, 失败: {})",
-                    processed + failed, chunks.size(), processed, failed);
+            long batchElapsedMs = System.currentTimeMillis() - batchStartTime;
+            log.info("向量化批次完成: processed={}/{} (成功: {}, 失败: {}, elapsedMs={})",
+                    processed + failed, chunks.size(), processed, failed, batchElapsedMs);
         }
 
         log.info("批量向量化完成,成功 {}/{} 块", embeddings.size(), chunks.size());