(self, vector1: List[float], vector2: List[float])
| 546 | return [embedding if embedding is not None else [0.0] * self.dimensions for embedding in results] |
| 547 | |
| 548 | def cosine_similarity(self, vector1: List[float], vector2: List[float]) -> float: |
| 549 | dot_product = sum(a * b for a, b in zip(vector1, vector2)) |
| 550 | norm1 = sum(a * a for a in vector1) ** 0.5 |
| 551 | norm2 = sum(b * b for b in vector2) ** 0.5 |
| 552 | |
| 553 | if norm1 == 0 or norm2 == 0: |
| 554 | return 0.0 |
| 555 | |
| 556 | return dot_product / (norm1 * norm2) |
| 557 | |
| 558 | |
| 559 | _default_service: Optional[EmbeddingService] = None |
no outgoing calls
no test coverage detected