Bases: BaseEmbedder[CohereEmbeddingResponse]
Cohere Embedder
model max_dimensions
embed-english-v3.0 1024
embed-multilingual-v3.0 1024
embed-english-light-v3.0 384
embed-multilingual-light-v3.0 384
embed-english-v2.0 4096
embed-english-light-v2.0 1024
embed-multilingual-v2.0 768
Example:
import os
from mirascope.cohere import CohereEmbedder
os.environ["CO_API_KEY"] = "YOUR_COHERE_API_KEY"
cohere_embedder = CohereEmbedder()
response = cohere_embedder.embed(["your text to embed"])
print(response)
Source code in mirascope/cohere/embedders.py
| class CohereEmbedder(BaseEmbedder[CohereEmbeddingResponse]):
"""Cohere Embedder
model max_dimensions
embed-english-v3.0 1024
embed-multilingual-v3.0 1024
embed-english-light-v3.0 384
embed-multilingual-light-v3.0 384
embed-english-v2.0 4096
embed-english-light-v2.0 1024
embed-multilingual-v2.0 768
Example:
```python
import os
from mirascope.cohere import CohereEmbedder
os.environ["CO_API_KEY"] = "YOUR_COHERE_API_KEY"
cohere_embedder = CohereEmbedder()
response = cohere_embedder.embed(["your text to embed"])
print(response)
```
"""
dimensions: Optional[int] = 1024
embedding_params: ClassVar[CohereEmbeddingParams] = CohereEmbeddingParams(
model="embed-english-v3.0"
)
def embed(self, inputs: list[str]) -> CohereEmbeddingResponse:
"""Call the embedder with multiple inputs"""
co = Client(api_key=self.api_key, base_url=self.base_url)
embedding_type = (
self.embedding_params.embedding_types[0]
if self.embedding_params.embedding_types
else None
)
start_time = datetime.datetime.now().timestamp() * 1000
embed = co.embed
if self.embedding_params.logfire:
embed = self.embedding_params.logfire(
co.embed, "cohere", response_type=CohereEmbeddingResponse
) # pragma: no cover
response = embed(texts=inputs, **self.embedding_params.kwargs())
return CohereEmbeddingResponse(
response=response,
start_time=start_time,
end_time=datetime.datetime.now().timestamp() * 1000,
embedding_type=embedding_type,
)
async def embed_async(self, inputs: list[str]) -> CohereEmbeddingResponse:
"""Asynchronously call the embedder with multiple inputs"""
co = AsyncClient(api_key=self.api_key, base_url=self.base_url)
embedding_type = (
self.embedding_params.embedding_types[0]
if self.embedding_params.embedding_types
else None
)
start_time = datetime.datetime.now().timestamp() * 1000
embed = co.embed
if self.embedding_params.logfire_async:
embed = self.embedding_params.logfire_async(
co.embed,
"cohere",
response_type=None, # note: no content to extract, so we set to `None`
) # pragma: no cover
response = await embed(texts=inputs, **self.embedding_params.kwargs())
return CohereEmbeddingResponse(
response=response,
start_time=start_time,
end_time=datetime.datetime.now().timestamp() * 1000,
embedding_type=embedding_type,
)
def __call__(
self, input: list[str]
) -> Optional[Union[list[list[float]], list[list[int]]]]:
"""Call the embedder with a input
Chroma expects parameter to be `input`.
"""
response = self.embed(input)
embeddings = response.embeddings
return embeddings
|
__call__(input)
Call the embedder with a input
Chroma expects parameter to be input
.
Source code in mirascope/cohere/embedders.py
| def __call__(
self, input: list[str]
) -> Optional[Union[list[list[float]], list[list[int]]]]:
"""Call the embedder with a input
Chroma expects parameter to be `input`.
"""
response = self.embed(input)
embeddings = response.embeddings
return embeddings
|
embed(inputs)
Call the embedder with multiple inputs
Source code in mirascope/cohere/embedders.py
| def embed(self, inputs: list[str]) -> CohereEmbeddingResponse:
"""Call the embedder with multiple inputs"""
co = Client(api_key=self.api_key, base_url=self.base_url)
embedding_type = (
self.embedding_params.embedding_types[0]
if self.embedding_params.embedding_types
else None
)
start_time = datetime.datetime.now().timestamp() * 1000
embed = co.embed
if self.embedding_params.logfire:
embed = self.embedding_params.logfire(
co.embed, "cohere", response_type=CohereEmbeddingResponse
) # pragma: no cover
response = embed(texts=inputs, **self.embedding_params.kwargs())
return CohereEmbeddingResponse(
response=response,
start_time=start_time,
end_time=datetime.datetime.now().timestamp() * 1000,
embedding_type=embedding_type,
)
|
embed_async(inputs)
async
Asynchronously call the embedder with multiple inputs
Source code in mirascope/cohere/embedders.py
| async def embed_async(self, inputs: list[str]) -> CohereEmbeddingResponse:
"""Asynchronously call the embedder with multiple inputs"""
co = AsyncClient(api_key=self.api_key, base_url=self.base_url)
embedding_type = (
self.embedding_params.embedding_types[0]
if self.embedding_params.embedding_types
else None
)
start_time = datetime.datetime.now().timestamp() * 1000
embed = co.embed
if self.embedding_params.logfire_async:
embed = self.embedding_params.logfire_async(
co.embed,
"cohere",
response_type=None, # note: no content to extract, so we set to `None`
) # pragma: no cover
response = await embed(texts=inputs, **self.embedding_params.kwargs())
return CohereEmbeddingResponse(
response=response,
start_time=start_time,
end_time=datetime.datetime.now().timestamp() * 1000,
embedding_type=embedding_type,
)
|