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-attribute

  • api_key = field(kw_only=True, metadata={'serializable': False}) class-attribute instance-attribute

  • input_type = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

  • tokenizer = 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.")