From e06126482c2f634cfc4772c87c3afd27cc7405cd Mon Sep 17 00:00:00 2001 From: ArcueId <1340332267@qq.com> Date: Sun, 28 Dec 2025 10:15:58 +0800 Subject: [PATCH] =?UTF-8?q?perf(rag):=20=E4=BC=98=E5=8C=96=E5=B5=8C?= =?UTF-8?q?=E5=85=A5=E6=9C=8D=E5=8A=A1=E6=80=A7=E8=83=BD=E5=B9=B6=E6=94=B9?= =?UTF-8?q?=E8=BF=9B=E6=89=B9=E5=A4=84=E7=90=86=E5=A4=A7=E5=B0=8F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化本地嵌入服务(Ollama)性能,移除不必要的延迟 - 改进批处理大小配置,使用动态获取替代硬编码 - 保持云端服务的限流逻辑不变 --- backend/app/services/rag/embeddings.py | 3 ++- backend/app/services/rag/indexer.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/app/services/rag/embeddings.py b/backend/app/services/rag/embeddings.py index c51e7f4..9682f9c 100644 --- a/backend/app/services/rag/embeddings.py +++ b/backend/app/services/rag/embeddings.py @@ -767,7 +767,8 @@ class EmbeddingService: logger.warning(f"Progress callback error: {e}") # 添加小延迟避免限流 - await asyncio.sleep(0.1) + if self.provider not in ["ollama"]: + await asyncio.sleep(0.1) # 本地不延时 # 确保没有 None return [e if e is not None else [0.0] * self.dimension for e in embeddings] diff --git a/backend/app/services/rag/indexer.py b/backend/app/services/rag/indexer.py index bdb15ed..997a311 100644 --- a/backend/app/services/rag/indexer.py +++ b/backend/app/services/rag/indexer.py @@ -1290,7 +1290,7 @@ class CodeIndexer: # 批量嵌入(带进度回调和取消检查) embeddings = await self.embedding_service.embed_batch( texts, - batch_size=50, + batch_size=getattr(self.embedding_service, 'batch_size', 50), progress_callback=embedding_progress_callback, cancel_check=cancel_check, )