Bases: BaseEmbeddingDriver
VoyageAI Embedding Driver.
Attributes:
Name |
Type |
Description |
model |
str
|
VoyageAI embedding model name. Defaults to voyage-large-2 .
|
api_key |
Optional[str]
|
API key to pass directly. Defaults to VOYAGE_API_KEY environment variable.
|
tokenizer |
VoyageAiTokenizer
|
Optionally provide custom VoyageAiTokenizer .
|
client |
Any
|
Optionally provide custom VoyageAI Client .
|
input_type |
str
|
VoyageAI input type. Defaults to document .
|
Source code in griptape/drivers/embedding/voyageai_embedding_driver.py
| @define
class VoyageAiEmbeddingDriver(BaseEmbeddingDriver):
"""VoyageAI Embedding Driver.
Attributes:
model: VoyageAI embedding model name. Defaults to `voyage-large-2`.
api_key: API key to pass directly. Defaults to `VOYAGE_API_KEY` environment variable.
tokenizer: Optionally provide custom `VoyageAiTokenizer`.
client: Optionally provide custom VoyageAI `Client`.
input_type: VoyageAI input type. Defaults to `document`.
"""
DEFAULT_MODEL = "voyage-large-2"
model: str = field(default=DEFAULT_MODEL, kw_only=True, metadata={"serializable": True})
api_key: Optional[str] = field(default=None, kw_only=True, metadata={"serializable": False})
tokenizer: VoyageAiTokenizer = field(
default=Factory(lambda self: VoyageAiTokenizer(model=self.model, api_key=self.api_key), takes_self=True),
kw_only=True,
)
input_type: str = field(default="document", kw_only=True, metadata={"serializable": True})
_client: Client = field(default=None, kw_only=True, alias="client", metadata={"serializable": False})
@lazy_property()
def client(self) -> Any:
return import_optional_dependency("voyageai").Client(api_key=self.api_key)
def try_embed_chunk(self, chunk: str) -> list[float]:
return self.client.embed([chunk], model=self.model, input_type=self.input_type).embeddings[0]
|
DEFAULT_MODEL = 'voyage-large-2'
class-attribute
instance-attribute
api_key: Optional[str] = field(default=None, kw_only=True, metadata={'serializable': False})
class-attribute
instance-attribute
model: str = field(default=DEFAULT_MODEL, kw_only=True, metadata={'serializable': True})
class-attribute
instance-attribute
tokenizer: VoyageAiTokenizer = field(default=Factory(lambda self: VoyageAiTokenizer(model=self.model, api_key=self.api_key), takes_self=True), kw_only=True)
class-attribute
instance-attribute
client()
Source code in griptape/drivers/embedding/voyageai_embedding_driver.py
| @lazy_property()
def client(self) -> Any:
return import_optional_dependency("voyageai").Client(api_key=self.api_key)
|
try_embed_chunk(chunk)
Source code in griptape/drivers/embedding/voyageai_embedding_driver.py
| def try_embed_chunk(self, chunk: str) -> list[float]:
return self.client.embed([chunk], model=self.model, input_type=self.input_type).embeddings[0]
|