diff --git a/src/codeweaver/providers/config/types.py b/src/codeweaver/providers/config/types.py index e9dabe9c..6b5adbbd 100644 --- a/src/codeweaver/providers/config/types.py +++ b/src/codeweaver/providers/config/types.py @@ -134,7 +134,8 @@ class DocumentRepr: async def serialize_for_upsert(self, texts: list[str]) -> list[Document]: """Serialize the document representations for Qdrant upsert.""" await asyncio.sleep(ZERO) - avg_length = int(sum(len(text.strip()) for text in texts) / len(texts)) if texts else 0 + # Optimization: sum(map(len, map(str.strip, texts))) is significantly faster than a generator comprehension + avg_length = int(sum(map(len, map(str.strip, texts))) / len(texts)) if texts else 0 options = await self.options.serialize_for_upsert(avg_length) return [Document(text=text, model=self.model, options=options) for text in texts]