Coverage for intelligence_toolkit/AI/openai_embedder.py: 100%
14 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-16 13:41 -0300
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-16 13:41 -0300
1# Copyright (c) 2024 Microsoft Corporation. All rights reserved.
2# Licensed under the MIT license. See LICENSE file in the project.
3#
5from intelligence_toolkit.AI.base_embedder import BaseEmbedder
6from intelligence_toolkit.AI.client import OpenAIClient
7from intelligence_toolkit.AI.defaults import DEFAULT_CONCURRENT_COROUTINES
8from intelligence_toolkit.AI.openai_configuration import OpenAIConfiguration
9from intelligence_toolkit.helpers.constants import CACHE_PATH
12class OpenAIEmbedder(BaseEmbedder):
13 def __init__(
14 self,
15 configuration: OpenAIConfiguration,
16 db_name: str = "embeddings",
17 db_path=CACHE_PATH,
18 concurrent_coroutines: int | None = DEFAULT_CONCURRENT_COROUTINES,
19 ):
20 super().__init__(
21 db_name, db_path, configuration.max_tokens, concurrent_coroutines
22 )
23 self.configuration = configuration
24 self.openai_client = OpenAIClient(configuration)
26 def _generate_embedding(self, text: str) -> list[float]:
27 return self.openai_client.generate_embedding(
28 text, model=self.configuration.embedding_model
29 )
31 async def _generate_embedding_async(self, text: str) -> list[float]:
32 return await self.openai_client.generate_embedding_async(
33 text, model=self.configuration.embedding_model
34 )