cohere#
__all__ = ['CohereEmbeddingDriver']module-attribute
Bases: BaseEmbeddingDriver “)
Attributes#
Name |
Type |
Description |
|---|---|---|
<a href="cohere.mdx#griptape.drivers.embedding.cohere.CohereEmbeddingDriver.api_key" title="api_key = field(kw_only=True, metadata={'serializable': False}) class-attribute instance-attribute (griptape.drivers.embedding.cohere.CohereEmbeddingDriver.api_key)"><code class="language-python">api_key</code></a> |
str |
Cohere API key.<br/> |
<a href="base_embedding_driver.mdx#griptape.drivers.embedding.base_embedding_driver.BaseEmbeddingDriver.model" title="model = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute (griptape.drivers.embedding.cohere.CohereEmbeddingDriver.model)"><code class="language-python">model</code></a> |
str |
Cohere model name.<br/> |
<a href="cohere.mdx#griptape.drivers.embedding.cohere.CohereEmbeddingDriver.client" title="client() (griptape.drivers.embedding.cohere.CohereEmbeddingDriver.client)"><code class="language-python">client</code></a> |
Client |
Custom cohere.Client.<br/> |
<a href="cohere.mdx#griptape.drivers.embedding.cohere.CohereEmbeddingDriver.tokenizer" title="tokenizer = field(default=Factory(lambda self: CohereTokenizer(model=self.model, client=self.client), takes_self=True), kw_only=True) class-attribute instance-attribute (griptape.drivers.embedding.cohere.CohereEmbeddingDriver.tokenizer)"><code class="language-python">tokenizer</code></a> |
<a href="../../tokenizers#griptape.tokenizers.CohereTokenizer" title="CohereTokenizer (griptape.tokenizers.CohereTokenizer)"><code class="language-python">CohereTokenizer</code></a> |
Custom CohereTokenizer.<br/> |
<a href="cohere.mdx#griptape.drivers.embedding.cohere.CohereEmbeddingDriver.input_type" title="input_type = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute (griptape.drivers.embedding.cohere.CohereEmbeddingDriver.input_type)"><code class="language-python">input_type</code></a> |
str |
Cohere embedding input type.<br/> |
Source Code in griptape/drivers/embedding/cohere_embedding_driver.py
@define
class CohereEmbeddingDriver(BaseEmbeddingDriver):
"""Cohere Embedding Driver.
Attributes:
api_key: Cohere API key.
model: Cohere model name.
client: Custom `cohere.Client`.
tokenizer: Custom `CohereTokenizer`.
input_type: Cohere embedding input type.
"""
DEFAULT_MODEL = "models/embedding-001"
api_key: str = field(kw_only=True, metadata={"serializable": False})
input_type: str = field(kw_only=True, metadata={"serializable": True})
_client: Optional[Client] = field(default=None, kw_only=True, alias="client", metadata={"serializable": False})
tokenizer: CohereTokenizer = field(
default=Factory(lambda self: CohereTokenizer(model=self.model, client=self.client), takes_self=True),
kw_only=True,
)
@lazy_property()
def client(self) -> Client:
return import_optional_dependency("cohere").Client(self.api_key)
def try_embed_chunk(self, chunk: str, **kwargs) -> list[float]:
result = self.client.embed(texts=[chunk], model=self.model, input_type=self.input_type)
if isinstance(result.embeddings, list):
return result.embeddings[0]
raise ValueError("Non-float embeddings are not supported.")
DEFAULT_MODEL = 'models/embedding-001'class-attribute instance-attribute_client = field(default=None, kw_only=True, alias='client', metadata={'serializable': False})class-attribute instance-attributeapi_key = field(kw_only=True, metadata={'serializable': False})class-attribute instance-attributeinput_type = field(kw_only=True, metadata={'serializable': True})class-attribute instance-attributetokenizer = field(default=Factory(lambda self: CohereTokenizer(model=self.model, client=self.client), takes_self=True), kw_only=True)class-attribute instance-attribute
client()#
Source Code in griptape/drivers/embedding/cohere_embedding_driver.py
@lazy_property()
def client(self) -> Client:
return import_optional_dependency("cohere").Client(self.api_key)
try_embed_chunk(chunk, **kwargs)#
Source Code in griptape/drivers/embedding/cohere_embedding_driver.py
def try_embed_chunk(self, chunk: str, **kwargs) -> list[float]:
result = self.client.embed(texts=[chunk], model=self.model, input_type=self.input_type)
if isinstance(result.embeddings, list):
return result.embeddings[0]
raise ValueError("Non-float embeddings are not supported.")