diff --git a/pydantic_ai_slim/pydantic_ai/__init__.py b/pydantic_ai_slim/pydantic_ai/__init__.py index ec0137f856..b1ec5e1ecd 100644 --- a/pydantic_ai_slim/pydantic_ai/__init__.py +++ b/pydantic_ai_slim/pydantic_ai/__init__.py @@ -18,6 +18,9 @@ WebSearchTool, WebSearchUserLocation, ) +from .embeddings import ( + Embedder, +) from .exceptions import ( AgentRunError, ApprovalRequired, @@ -121,6 +124,8 @@ 'UserPromptNode', 'capture_run_messages', 'InstrumentationSettings', + # embeddings + 'Embedder', # exceptions 'AgentRunError', 'CallDeferred', diff --git a/pydantic_ai_slim/pydantic_ai/embeddings/__init__.py b/pydantic_ai_slim/pydantic_ai/embeddings/__init__.py new file mode 100644 index 0000000000..bf0e88f048 --- /dev/null +++ b/pydantic_ai_slim/pydantic_ai/embeddings/__init__.py @@ -0,0 +1,158 @@ +from collections.abc import Callable, Iterator, Sequence +from contextlib import contextmanager +from contextvars import ContextVar +from dataclasses import dataclass +from typing import Any, Literal, get_args, overload + +from typing_extensions import TypeAliasType + +from pydantic_ai import _utils +from pydantic_ai.embeddings.base import EmbeddingModel +from pydantic_ai.embeddings.settings import EmbeddingSettings, merge_embedding_settings +from pydantic_ai.exceptions import UserError +from pydantic_ai.models import OpenAIChatCompatibleProvider +from pydantic_ai.models.instrumented import InstrumentationSettings +from pydantic_ai.providers import Provider, infer_provider + +__all__ = [ + 'Embedder', + 'EmbeddingModel', + 'EmbeddingSettings', + 'merge_embedding_settings', + 'KnownEmbeddingModelName', + 'OpenAIEmbeddingsCompatibleProvider', + 'infer_model', +] + +KnownEmbeddingModelName = TypeAliasType( + 'KnownEmbeddingModelName', + Literal[ + 'openai:text-embedding-ada-002', + 'openai:text-embedding-3-small', + 'openai:text-embedding-3-largecohere:embed-v4.0', + ], +) +"""Known model names that can be used with the `model` parameter of [`Embedder`][pydantic_ai.embeddings.Embedder]. + +`KnownEmbeddingModelName` is provided as a concise way to specify an embedding model. +""" + +# For now, we assume that every chat completions-compatible provider also supports the embeddings endpoint. +OpenAIEmbeddingsCompatibleProvider = OpenAIChatCompatibleProvider + + +def infer_model( + model: EmbeddingModel | KnownEmbeddingModelName | str, + *, + provider_factory: Callable[[str], Provider[Any]] = infer_provider, +) -> EmbeddingModel: + """Infer the model from the name.""" + if isinstance(model, EmbeddingModel): + return model + + try: + provider_name, model_name = model.split(':', maxsplit=1) + except ValueError as e: + raise ValueError('You must provide a provider prefix when specifying an embedding model name') from e + + provider = provider_factory(provider_name) + + model_kind = provider_name + if model_kind.startswith('gateway/'): + from ..providers.gateway import normalize_gateway_provider + + model_kind = normalize_gateway_provider(model_kind) + + if model_kind in get_args(OpenAIEmbeddingsCompatibleProvider.__value__): + model_kind = 'openai' + + if model_kind == 'openai': + from .openai import OpenAIEmbeddingModel + + return OpenAIEmbeddingModel(model_name, provider=provider) + elif model_kind == 'cohere': + from .cohere import CohereEmbeddingModel + + return CohereEmbeddingModel(model_name, provider=provider) + else: + raise UserError(f'Unknown embeddings model: {model}') # pragma: no cover + + +@dataclass(init=False) +class Embedder: + """TODO: Docstring.""" + + instrument: InstrumentationSettings | bool | None + """Options to automatically instrument with OpenTelemetry.""" + + def __init__( + self, + model: EmbeddingModel | KnownEmbeddingModelName | str, + *, + settings: EmbeddingSettings | None = None, + defer_model_check: bool = True, + # TODO: Figure out instrumentation later.. + instrument: InstrumentationSettings | bool | None = None, + ) -> None: + self._model = model if defer_model_check else infer_model(model) + self._settings = settings + self._instrument = instrument + + self._override_model: ContextVar[EmbeddingModel | None] = ContextVar('_override_model', default=None) + + @property + def model(self) -> EmbeddingModel | KnownEmbeddingModelName | str: + return self._model + + @contextmanager + def override( + self, + *, + model: EmbeddingModel | KnownEmbeddingModelName | str | _utils.Unset = _utils.UNSET, + ) -> Iterator[None]: + if _utils.is_set(model): + model_token = self._override_model.set(infer_model(model)) + else: + model_token = None + + try: + yield + finally: + if model_token is not None: + self._override_model.reset(model_token) + + @overload + async def embed(self, documents: str, *, settings: EmbeddingSettings | None = None) -> list[float]: + pass + + @overload + async def embed(self, documents: Sequence[str], *, settings: EmbeddingSettings | None = None) -> list[list[float]]: + pass + + async def embed( + self, documents: str | Sequence[str], *, settings: EmbeddingSettings | None = None + ) -> list[float] | list[list[float]]: + model = self._get_model() + settings = merge_embedding_settings(self._settings, settings) + return await model.embed(documents, settings=settings) + + def _get_model(self) -> EmbeddingModel: + """Create a model configured for this agent. + + Returns: + The embedding model to use + """ + model_: EmbeddingModel + if some_model := self._override_model.get(): + model_ = some_model + else: + model_ = self._model = infer_model(self.model) + + # TODO: Port the instrumentation logic from Model once we settle on an embeddings API + # instrument = self.instrument + # if instrument is None: + # instrument = Agent._instrument_default + # + # return instrument_model(model_, instrument) + + return model_ diff --git a/pydantic_ai_slim/pydantic_ai/embeddings/base.py b/pydantic_ai_slim/pydantic_ai/embeddings/base.py new file mode 100644 index 0000000000..7109949d59 --- /dev/null +++ b/pydantic_ai_slim/pydantic_ai/embeddings/base.py @@ -0,0 +1,72 @@ +from abc import ABC, abstractmethod +from collections.abc import Sequence +from typing import overload + +from pydantic_ai.embeddings.settings import EmbeddingSettings, merge_embedding_settings + + +class EmbeddingModel(ABC): + """Abstract class for a model.""" + + _settings: EmbeddingSettings | None = None + + def __init__( + self, + *, + settings: EmbeddingSettings | None = None, + ) -> None: + """Initialize the model with optional settings and profile. + + Args: + settings: Model-specific settings that will be used as defaults for this model. + profile: The model profile to use. + """ + self._settings = settings + + @property + def settings(self) -> EmbeddingSettings | None: + """Get the model settings.""" + return self._settings + + @property + def base_url(self) -> str | None: + """The base URL for the provider API, if available.""" + return None + + @property + @abstractmethod + def model_name(self) -> str: + """The model name.""" + raise NotImplementedError() + + @property + @abstractmethod + def system(self) -> str: + """The embedding model provider.""" + raise NotImplementedError() + + @overload + async def embed(self, documents: str, *, settings: EmbeddingSettings | None = None) -> list[float]: + pass + + @overload + async def embed(self, documents: Sequence[str], *, settings: EmbeddingSettings | None = None) -> list[list[float]]: + pass + + @abstractmethod + async def embed( + self, documents: str | Sequence[str], *, settings: EmbeddingSettings | None = None + ) -> list[float] | list[list[float]]: + raise NotImplementedError + + def prepare_embed( + self, documents: str | Sequence[str], settings: EmbeddingSettings | None = None + ) -> tuple[Sequence[str], bool, EmbeddingSettings]: + """Prepare the documents and settings for the embedding.""" + is_single_document = isinstance(documents, str) + if is_single_document: + documents = [documents] + + settings = merge_embedding_settings(self._settings, settings) or {} + + return documents, is_single_document, settings diff --git a/pydantic_ai_slim/pydantic_ai/embeddings/cohere.py b/pydantic_ai_slim/pydantic_ai/embeddings/cohere.py new file mode 100644 index 0000000000..1820e12d78 --- /dev/null +++ b/pydantic_ai_slim/pydantic_ai/embeddings/cohere.py @@ -0,0 +1,128 @@ +from collections.abc import Sequence +from dataclasses import dataclass, field +from typing import Any, Literal, cast, overload + +from pydantic_ai.embeddings.base import EmbeddingModel +from pydantic_ai.embeddings.settings import EmbeddingSettings +from pydantic_ai.providers import Provider, infer_provider + +try: + from cohere import AsyncClientV2 + from cohere.core.request_options import RequestOptions + from cohere.types.embed_input_type import EmbedInputType +except ImportError as _import_error: + raise ImportError( + 'Please install `cohere` to use the Cohere embeddings model, ' + 'you can use the `cohere` optional group — `pip install "pydantic-ai-slim[cohere]"`' + ) from _import_error + +LatestCohereEmbeddingModelNames = Literal[ + 'cohere:embed-v4.0', + 'embed-english-v3.0embed-english-light-v3.0', + 'embed-multilingual-v3.0', + 'embed-multilingual-light-v3.0', +] +"""Latest Cohere embeddings models.""" + +CohereEmbeddingModelName = str | LatestCohereEmbeddingModelNames +"""Possible Cohere embeddings model names.""" + + +class CohereEmbeddingSettings(EmbeddingSettings, total=False): + """Settings used for a Cohere embedding model request.""" + + # ALL FIELDS MUST BE `cohere_` PREFIXED SO YOU CAN MERGE THEM WITH OTHER MODELS. + + # TODO: Possibly move to base EmbeddingSettings if supported by more providers + cohere_max_tokens: int + """The maximum number of tokens to generate before stopping.""" + + # We don't support `embedding_types for now because it doesn't affect the user-facing API today.. + # cohere_embedding_types: Literal["float", "int8", "uint8", "binary", "ubinary", "base64"] + + cohere_input_type: EmbedInputType + """The input type of the embedding.""" + + +@dataclass(init=False) +class CohereEmbeddingModel(EmbeddingModel): + """Cohere embedding model.""" + + _model_name: CohereEmbeddingModelName = field(repr=False) + _provider: Provider[AsyncClientV2] = field(repr=False) + + def __init__( + self, + model_name: CohereEmbeddingModelName, + *, + provider: Literal['cohere'] | Provider[AsyncClientV2] = 'cohere', + settings: EmbeddingSettings | None = None, + ): + """Initialize an Cohere model. + + Args: + model_name: The name of the Cohere model to use. List of model names + available [here](https://docs.cohere.com/docs/cohere-embed). + provider: The provider to use for authentication and API access. Can be either the string + 'cohere' or an instance of `Provider[AsyncClientV2]`. If not provided, a new provider will be + created using the other parameters. + settings: Model-specific settings that will be used as defaults for this model. + """ + self._model_name = model_name + + if isinstance(provider, str): + provider = infer_provider(provider) + self._provider = provider + self._client = provider.client + + super().__init__(settings=settings) + + @property + def base_url(self) -> str: + """The base URL for the provider API, if available.""" + return self._provider.base_url + + @property + def model_name(self) -> CohereEmbeddingModelName: + """The embedding model name.""" + return self._model_name + + @property + def system(self) -> str: + """The embedding model provider.""" + return self._provider.name + + @overload + async def embed(self, documents: str, *, settings: EmbeddingSettings | None = None) -> list[float]: + pass + + @overload + async def embed(self, documents: Sequence[str], *, settings: EmbeddingSettings | None = None) -> list[list[float]]: + pass + + async def embed( + self, documents: Sequence[str], *, settings: EmbeddingSettings | None = None + ) -> list[float] | list[list[float]]: + documents, is_single_document, settings = self.prepare_embed(documents, settings) + embeddings = await self._embed(documents, cast(CohereEmbeddingSettings, settings)) + return embeddings[0] if is_single_document else embeddings + + async def _embed(self, documents: Sequence[str], settings: CohereEmbeddingSettings) -> list[list[float]]: + request_options = RequestOptions() + if extra_headers := settings.get('extra_headers'): + request_options['additional_headers'] = extra_headers + if extra_body := settings.get('extra_body'): + request_options['additional_body_parameters'] = cast(dict[str, Any], extra_body) + + response = await self._client.embed( + model=self.model_name, + texts=documents, + output_dimension=settings.get('dimensions'), + input_type=settings.get('cohere_input_type', 'search_document'), + max_tokens=settings.get('cohere_max_tokens'), + request_options=request_options, + ) + embeddings = response.embeddings.float_ + assert embeddings is not None, 'This is a bug in cohere?' + + return embeddings diff --git a/pydantic_ai_slim/pydantic_ai/embeddings/openai.py b/pydantic_ai_slim/pydantic_ai/embeddings/openai.py new file mode 100644 index 0000000000..11e4ef7d25 --- /dev/null +++ b/pydantic_ai_slim/pydantic_ai/embeddings/openai.py @@ -0,0 +1,102 @@ +from collections.abc import Sequence +from dataclasses import dataclass, field +from typing import Literal, overload + +from pydantic_ai.embeddings.base import EmbeddingModel +from pydantic_ai.embeddings.settings import EmbeddingSettings +from pydantic_ai.providers import Provider, infer_provider + +from . import OpenAIEmbeddingsCompatibleProvider + +try: + from openai import AsyncOpenAI + from openai.types import EmbeddingModel as LatestOpenAIEmbeddingModelNames + + from pydantic_ai.models.openai import OMIT +except ImportError as _import_error: + raise ImportError( + 'Please install `openai` to use the OpenAI embeddings model, ' + 'you can use the `openai` optional group — `pip install "pydantic-ai-slim[openai]"`' + ) from _import_error + +OpenAIEmbeddingModelName = str | LatestOpenAIEmbeddingModelNames +"""Possible OpenAI embeddings model names.""" + + +class OpenAIEmbeddingSettings(EmbeddingSettings, total=False): + """Settings used for an OpenAI embedding model request.""" + + # ALL FIELDS MUST BE `openai_` PREFIXED SO YOU CAN MERGE THEM WITH OTHER MODELS. + + +@dataclass(init=False) +class OpenAIEmbeddingModel(EmbeddingModel): + """OpenAI embedding model.""" + + _model_name: OpenAIEmbeddingModelName = field(repr=False) + _provider: Provider[AsyncOpenAI] = field(repr=False) + + def __init__( + self, + model_name: OpenAIEmbeddingModelName, + *, + provider: OpenAIEmbeddingsCompatibleProvider | Literal['openai'] | Provider[AsyncOpenAI] = 'openai', + settings: EmbeddingSettings | None = None, + ): + """Initialize an OpenAI model. + + Args: + model_name: The name of the OpenAI model to use. List of model names + available [here](https://platform.openai.com/docs/guides/embeddings#embedding-models). + provider: The provider to use for authentication and API access. Can be either the string + 'OpenAI' or an instance of `Provider[AsyncClientV2]`. If not provided, a new provider will be + created using the other parameters. + settings: Model-specific settings that will be used as defaults for this model. + """ + self._model_name = model_name + + if isinstance(provider, str): + provider = infer_provider(provider) + self._provider = provider + self._client = provider.client + + super().__init__(settings=settings) + + @property + def base_url(self) -> str: + return str(self._client.base_url) + + @property + def model_name(self) -> OpenAIEmbeddingModelName: + """The embedding model name.""" + return self._model_name + + @property + def system(self) -> str: + """The embedding model provider.""" + return self._provider.name + + @overload + async def embed(self, documents: str, *, settings: EmbeddingSettings | None = None) -> list[float]: + pass + + @overload + async def embed(self, documents: Sequence[str], *, settings: EmbeddingSettings | None = None) -> list[list[float]]: + pass + + async def embed( + self, documents: str | Sequence[str], *, settings: EmbeddingSettings | None = None + ) -> list[float] | list[list[float]]: + documents, is_single_document, settings = self.prepare_embed(documents, settings) + embeddings = await self._embed(documents, settings) + return embeddings[0] if is_single_document else embeddings + + async def _embed(self, documents: Sequence[str], settings: OpenAIEmbeddingSettings) -> list[list[float]]: + response = await self._client.embeddings.create( + input=documents, # pyright: ignore[reportArgumentType] # Sequence[str] not compatible with SequenceNotStr[str] :/ + model=self.model_name, + dimensions=settings.get('dimensions') or OMIT, + extra_headers=settings.get('extra_headers'), + extra_body=settings.get('extra_body'), + ) + return [item.embedding for item in response.data] diff --git a/pydantic_ai_slim/pydantic_ai/embeddings/settings.py b/pydantic_ai_slim/pydantic_ai/embeddings/settings.py new file mode 100644 index 0000000000..73051501a0 --- /dev/null +++ b/pydantic_ai_slim/pydantic_ai/embeddings/settings.py @@ -0,0 +1,50 @@ +from typing_extensions import TypedDict + + +class EmbeddingSettings(TypedDict, total=False): + """Settings to configure an embedding model. + + Here we include only settings which apply to multiple models / model providers, + though not all of these settings are supported by all models. + """ + + dimensions: int + """The number of dimensions the resulting output embeddings should have. + + Supported by: + + * OpenAI + * Cohere + """ + + extra_headers: dict[str, str] + """Extra headers to send to the model. + + Supported by: + + * OpenAI + * Cohere + """ + + extra_body: object + """Extra body to send to the model. + + Supported by: + + * OpenAI + * Cohere + """ + + +def merge_embedding_settings( + base: EmbeddingSettings | None, overrides: EmbeddingSettings | None +) -> EmbeddingSettings | None: + """Merge two sets of embedding settings, preferring the overrides. + + A common use case is: merge_embedding_settings(, ) + """ + # Note: we may want merge recursively if/when we add non-primitive values + if base and overrides: + return base | overrides + else: + return base or overrides diff --git a/pydantic_ai_slim/pydantic_ai/models/__init__.py b/pydantic_ai_slim/pydantic_ai/models/__init__.py index 98214910bd..63ad3e78dc 100644 --- a/pydantic_ai_slim/pydantic_ai/models/__init__.py +++ b/pydantic_ai_slim/pydantic_ai/models/__init__.py @@ -14,7 +14,7 @@ from dataclasses import dataclass, field, replace from datetime import datetime from functools import cache, cached_property -from typing import Any, Generic, Literal, TypeVar, overload +from typing import Any, Generic, Literal, TypeVar, get_args, overload import httpx from typing_extensions import TypeAliasType, TypedDict @@ -315,6 +315,40 @@ `KnownModelName` is provided as a concise way to specify a model. """ +OpenAIChatCompatibleProvider = TypeAliasType( + 'OpenAIChatCompatibleProvider', + Literal[ + 'azure', + 'deepseek', + 'cerebras', + 'fireworks', + 'github', + 'grok', + 'heroku', + 'moonshotai', + 'ollama', + 'openrouter', + 'together', + 'vercel', + 'litellm', + 'nebius', + 'ovhcloud', + ], +) +OpenAIResponsesCompatibleProvider = TypeAliasType( + 'OpenAIResponsesCompatibleProvider', + Literal[ + 'deepseek', + 'azure', + 'openrouter', + 'grok', + 'fireworks', + 'together', + 'nebius', + 'ovhcloud', + ], +) + @dataclass(repr=False, kw_only=True) class ModelRequestParameters: @@ -784,32 +818,15 @@ def infer_model( # noqa: C901 ) provider_name = 'google-vertex' - provider: Provider[Any] = provider_factory(provider_name) + provider = provider_factory(provider_name) model_kind = provider_name if model_kind.startswith('gateway/'): from ..providers.gateway import normalize_gateway_provider - model_kind = provider_name.removeprefix('gateway/') model_kind = normalize_gateway_provider(model_kind) - if model_kind in ( - 'openai', - 'azure', - 'deepseek', - 'cerebras', - 'fireworks', - 'github', - 'grok', - 'heroku', - 'moonshotai', - 'ollama', - 'openrouter', - 'together', - 'vercel', - 'litellm', - 'nebius', - 'ovhcloud', - ): + + if model_kind in ('openai', *get_args(OpenAIChatCompatibleProvider.__value__)): model_kind = 'openai-chat' elif model_kind in ('google-gla', 'google-vertex'): model_kind = 'google' diff --git a/pydantic_ai_slim/pydantic_ai/models/openai.py b/pydantic_ai_slim/pydantic_ai/models/openai.py index 5da7e0ccd4..33449d9f47 100644 --- a/pydantic_ai_slim/pydantic_ai/models/openai.py +++ b/pydantic_ai_slim/pydantic_ai/models/openai.py @@ -51,7 +51,16 @@ from ..providers import Provider, infer_provider from ..settings import ModelSettings from ..tools import ToolDefinition -from . import Model, ModelRequestParameters, StreamedResponse, check_allow_model_requests, download_item, get_user_agent +from . import ( + Model, + ModelRequestParameters, + OpenAIChatCompatibleProvider, + OpenAIResponsesCompatibleProvider, + StreamedResponse, + check_allow_model_requests, + download_item, + get_user_agent, +) try: from openai import NOT_GIVEN, APIStatusError, AsyncOpenAI, AsyncStream @@ -292,24 +301,10 @@ def __init__( self, model_name: OpenAIModelName, *, - provider: Literal[ - 'azure', - 'deepseek', - 'cerebras', - 'fireworks', - 'github', - 'grok', - 'heroku', - 'moonshotai', - 'ollama', + provider: OpenAIChatCompatibleProvider + | Literal[ 'openai', 'openai-chat', - 'openrouter', - 'together', - 'vercel', - 'litellm', - 'nebius', - 'ovhcloud', 'gateway', ] | Provider[AsyncOpenAI] = 'openai', @@ -323,24 +318,10 @@ def __init__( self, model_name: OpenAIModelName, *, - provider: Literal[ - 'azure', - 'deepseek', - 'cerebras', - 'fireworks', - 'github', - 'grok', - 'heroku', - 'moonshotai', - 'ollama', + provider: OpenAIChatCompatibleProvider + | Literal[ 'openai', 'openai-chat', - 'openrouter', - 'together', - 'vercel', - 'litellm', - 'nebius', - 'ovhcloud', 'gateway', ] | Provider[AsyncOpenAI] = 'openai', @@ -353,24 +334,10 @@ def __init__( self, model_name: OpenAIModelName, *, - provider: Literal[ - 'azure', - 'deepseek', - 'cerebras', - 'fireworks', - 'github', - 'grok', - 'heroku', - 'moonshotai', - 'ollama', + provider: OpenAIChatCompatibleProvider + | Literal[ 'openai', 'openai-chat', - 'openrouter', - 'together', - 'vercel', - 'litellm', - 'nebius', - 'ovhcloud', 'gateway', ] | Provider[AsyncOpenAI] = 'openai', @@ -938,16 +905,9 @@ def __init__( self, model_name: OpenAIModelName, *, - provider: Literal[ + provider: OpenAIResponsesCompatibleProvider + | Literal[ 'openai', - 'deepseek', - 'azure', - 'openrouter', - 'grok', - 'fireworks', - 'together', - 'nebius', - 'ovhcloud', 'gateway', ] | Provider[AsyncOpenAI] = 'openai', diff --git a/pydantic_ai_slim/pydantic_ai/providers/gateway.py b/pydantic_ai_slim/pydantic_ai/providers/gateway.py index 1246d2fecd..5385591c95 100644 --- a/pydantic_ai_slim/pydantic_ai/providers/gateway.py +++ b/pydantic_ai_slim/pydantic_ai/providers/gateway.py @@ -218,6 +218,8 @@ def normalize_gateway_provider(provider: str) -> str: Args: provider: The provider name to normalize. """ + provider = provider.removeprefix('gateway/') + if provider in ('openai', 'openai-chat', 'chat'): return 'openai' elif provider in ('openai-responses', 'responses'): diff --git a/tests/cassettes/test_embeddings/TestCohere.test_bulk.yaml b/tests/cassettes/test_embeddings/TestCohere.test_bulk.yaml new file mode 100644 index 0000000000..d242d1e10b --- /dev/null +++ b/tests/cassettes/test_embeddings/TestCohere.test_bulk.yaml @@ -0,0 +1,3138 @@ +interactions: +- request: + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '103' + content-type: + - application/json + host: + - api.cohere.com + method: POST + parsed_body: + input_type: search_document + model: embed-v4.0 + output_dimension: null + texts: + - hello + - world + uri: https://api.cohere.com/v2/embed + response: + headers: + access-control-expose-headers: + - X-Debug-Trace-ID + alt-svc: + - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 + cache-control: + - no-cache, no-store, no-transform, must-revalidate, private, max-age=0 + content-length: + - '38703' + content-type: + - application/json + expires: + - Thu, 01 Jan 1970 00:00:00 GMT + num_chars: + - '10' + num_tokens: + - '2' + pragma: + - no-cache + transfer-encoding: + - chunked + vary: + - Origin,Accept-Encoding + parsed_body: + embeddings: + float: + - - 0.015943069 + - 0.013248466 + - 0.0024139155 + - -0.010778413 + - 0.008645185 + - 0.010853264 + - -0.038023844 + - 0.018862223 + - -0.02470053 + - -0.011751464 + - -0.0020022397 + - 0.046706453 + - -0.031137636 + - -0.023652628 + - 0.030239435 + - -0.016092768 + - 0.012275415 + - 0.04041905 + - -0.014520917 + - -0.019011922 + - -0.00077656965 + - 0.005014956 + - -0.020059824 + - -0.014670617 + - -0.05748487 + - 0.022455025 + - 0.027993934 + - -0.00027367062 + - 0.014446067 + - 0.00860776 + - -0.03383224 + - 0.01796402 + - -0.020658625 + - -0.00060347887 + - -0.03458074 + - -0.008794885 + - -0.0154939685 + - 0.0056886068 + - 0.021107726 + - -0.0003836067 + - 0.029490935 + - -0.021257427 + - 0.012050864 + - -0.0058383066 + - 0.066466875 + - 0.024101729 + - 0.02589813 + - -0.042514853 + - -0.032035835 + - -0.047305256 + - 0.004491005 + - 0.047305256 + - -0.0072604585 + - -0.0038734921 + - 0.043113653 + - -0.018413123 + - 0.0037799294 + - 0.038323246 + - 0.003798642 + - -0.0069236336 + - -0.040119648 + - 0.012275415 + - -0.03517954 + - 0.02559873 + - 0.0053892066 + - 0.019461023 + - -0.024850229 + - 0.023203528 + - 0.01631732 + - -0.0013285892 + - 0.0031437038 + - 0.009730511 + - -0.010853264 + - 0.009318836 + - 0.040119648 + - 0.014520917 + - -0.0053892066 + - -0.03517954 + - 0.010703563 + - 0.022005925 + - 0.029640635 + - 0.009505961 + - 0.015344269 + - -0.013248466 + - -0.011077813 + - 0.013323316 + - 0.0034805292 + - -0.01676642 + - -0.0046032807 + - -9.999504e-05 + - 0.012050864 + - 0.0052769314 + - 0.05808367 + - -0.07604769 + - 0.03428134 + - 0.04431125 + - 0.01676642 + - -0.0019461022 + - -0.013697566 + - -0.012649666 + - -0.005875732 + - -0.030987937 + - 0.021257427 + - -0.0029191533 + - -0.04401185 + - 0.03502984 + - -0.050598662 + - 0.026646633 + - 0.0053517814 + - 0.011526913 + - 0.032335237 + - -0.01766462 + - -0.009505961 + - -0.05928127 + - -0.022455025 + - -0.05598787 + - 0.011077813 + - 0.019461023 + - -0.026496932 + - 0.006025432 + - -0.039221447 + - 0.008570335 + - -0.0095808115 + - -0.04431125 + - -0.014670617 + - -0.0154939685 + - 0.0056511816 + - 0.016990969 + - -0.012574815 + - -0.07335309 + - 0.0033495415 + - 0.02514963 + - -0.008570335 + - 0.021556826 + - -0.019461023 + - -0.019161623 + - -0.013473016 + - 0.002507478 + - 0.045808252 + - -0.003255979 + - 0.009880212 + - 0.014670617 + - -0.019760424 + - -0.011976014 + - -0.011152663 + - -0.022754427 + - -0.028592734 + - -0.025299331 + - 0.014296367 + - -0.03443104 + - -0.028293332 + - 0.07365249 + - 0.0028255908 + - -0.0036115167 + - -0.023203528 + - 0.034880143 + - 0.009730511 + - -0.0034243916 + - 0.012949065 + - -0.0075598587 + - 0.018562822 + - 0.02455083 + - 0.035478942 + - 0.024101729 + - -0.0060628573 + - 0.01714067 + - -0.005875732 + - -0.011601764 + - -0.02544903 + - -0.029490935 + - 0.01684127 + - -0.00013683531 + - 0.0010385449 + - 0.031586736 + - 0.026796332 + - -0.036676545 + - -0.021107726 + - 0.016167618 + - -0.024401128 + - 0.061676472 + - -0.017814321 + - -0.012574815 + - 0.029041834 + - -0.038023844 + - -0.033083737 + - 0.006661658 + - -0.0047904057 + - 0.0010900045 + - -0.036526844 + - 0.008794885 + - -0.016990969 + - 0.011826314 + - 0.033981938 + - -0.0033121165 + - 0.012050864 + - -0.0038173546 + - -0.03353284 + - -0.03502984 + - -0.03278434 + - 0.011601764 + - 0.021107726 + - 0.055089667 + - -0.0038547795 + - -0.020958025 + - -0.027694535 + - -0.020359226 + - -0.027095733 + - -0.0055014812 + - -0.04191605 + - -0.011302363 + - -0.014520917 + - 0.0017496209 + - 0.0055014812 + - -0.018487971 + - 0.010104762 + - -0.0005262897 + - 0.0013473016 + - 0.0027881658 + - 0.0010338668 + - -0.0036489419 + - 0.0063622575 + - 0.047005855 + - 0.0057634567 + - 0.026646633 + - -0.0104790125 + - -0.034730442 + - -0.0018244709 + - -0.032035835 + - 0.018712522 + - -0.035778344 + - 0.012949065 + - 0.011526913 + - -0.031886138 + - 0.0017121958 + - 0.012425114 + - -0.029940035 + - 0.064969875 + - -0.0006549383 + - -0.04131725 + - 0.011976014 + - -0.026946032 + - 0.029490935 + - -0.0014970017 + - -0.022455025 + - 0.020958025 + - -0.032335237 + - 0.03592804 + - 0.016017918 + - -0.056586664 + - 0.0014595767 + - 0.028592734 + - 0.0061377073 + - -0.021407126 + - 0.004191605 + - 0.027095733 + - 0.020059824 + - -0.0073353085 + - 0.008794885 + - 0.03368254 + - -0.003050141 + - 0.027694535 + - 0.0041728923 + - -0.006212557 + - 0.00055669755 + - -0.012724515 + - 0.0031811288 + - -0.004191605 + - 0.012350265 + - -0.061077673 + - -0.022005925 + - 0.011676613 + - 0.029191535 + - 0.04221545 + - 0.0056137564 + - 0.022005925 + - -0.021706527 + - 0.008720036 + - 0.00017426036 + - 0.04940106 + - -0.0024139155 + - -0.028592734 + - -0.023652628 + - -0.014970018 + - 0.023353226 + - -0.0057260315 + - -0.007485009 + - 0.018562822 + - -0.032484937 + - -0.015643667 + - -0.019161623 + - 0.014071817 + - 0.0057634567 + - 0.020359226 + - 0.010104762 + - -0.0023952029 + - -0.0028443034 + - 0.011676613 + - -0.013996967 + - -0.0038922045 + - -0.011227513 + - 0.044610653 + - 0.0013940829 + - 0.046107654 + - -0.010703563 + - -0.0145957675 + - 0.02425143 + - 0.015044868 + - 0.015568818 + - -0.026347231 + - -0.048203457 + - 0.015269418 + - -0.01721552 + - 0.008008959 + - -0.023353226 + - -0.0013005204 + - -0.0011695327 + - -0.029191535 + - -0.014146666 + - 0.0016654145 + - 0.028293332 + - -0.00014677635 + - -0.022155626 + - 0.047005855 + - 0.0019554584 + - 0.019760424 + - 0.005426632 + - -0.02559873 + - 0.03383224 + - -0.01721552 + - -0.021257427 + - -0.0026946033 + - -0.05179626 + - -0.02589813 + - 0.026197532 + - -0.031437036 + - -0.021107726 + - -0.021107726 + - 0.018263422 + - 0.052694462 + - -0.014446067 + - -0.009393686 + - -0.018338272 + - -0.029790334 + - 0.006736508 + - -0.008008959 + - 0.0017683333 + - -0.024101729 + - 0.015568818 + - 0.038323246 + - -0.020808326 + - -0.0018431834 + - -0.028742434 + - 0.004191605 + - -0.06077827 + - -0.020508924 + - 0.010029912 + - -0.0056137564 + - -0.0037425044 + - -0.032934036 + - 0.008233509 + - 0.077245295 + - -0.011452063 + - -0.0019928836 + - -0.015044868 + - 0.030838236 + - -0.006736508 + - -0.05808367 + - 0.022455025 + - -0.00091223547 + - -0.014820318 + - -0.00845806 + - -0.0028443034 + - 0.0070359083 + - -0.021706527 + - -0.049700458 + - 0.030239435 + - 0.041616652 + - -0.0075598587 + - 0.02470053 + - -0.0053892066 + - 0.009955062 + - -0.019461023 + - -0.024850229 + - -0.020658625 + - 0.00087481044 + - 0.03592804 + - 0.022155626 + - -0.012949065 + - -0.09401171 + - 0.031287335 + - 0.010404163 + - 0.00069704145 + - 0.019311324 + - -0.09760451 + - 0.004940106 + - -0.0007906041 + - -0.0056137564 + - -0.0019461022 + - 0.03592804 + - 0.015044868 + - -0.022604726 + - -0.04191605 + - -0.0070359083 + - 0.007073333 + - 0.0053517814 + - -0.052395064 + - -0.04191605 + - -0.030389136 + - -0.0061751325 + - -0.011227513 + - 0.00068768515 + - -0.018413123 + - -0.01676642 + - 0.01684127 + - 0.003050141 + - -0.010254462 + - 0.026946032 + - -0.02559873 + - 0.005988007 + - -0.039221447 + - 0.0029565785 + - -0.038323246 + - -0.022904126 + - 0.02425143 + - -0.026496932 + - -0.028143633 + - 0.023053827 + - -0.022604726 + - -0.007859259 + - 0.034730442 + - -0.04131725 + - 0.0088697355 + - -0.046706453 + - -0.013473016 + - 0.018263422 + - -0.007597284 + - 0.02425143 + - -0.0053517814 + - 9.180831e-05 + - -0.05808367 + - -0.06736508 + - 0.020808326 + - -0.038323246 + - 0.028892133 + - -0.005426632 + - 0.028892133 + - 0.007634709 + - -0.047305256 + - -0.013847267 + - -0.012350265 + - -0.0048652557 + - 0.012574815 + - 0.004977531 + - 0.006212557 + - 0.047604658 + - 0.029790334 + - 0.0062499824 + - -0.013023916 + - 0.039221447 + - -0.0021987213 + - 0.0063996827 + - 0.023353226 + - -0.012499965 + - 0.00018127756 + - -0.0095808115 + - -0.00407933 + - 0.046706453 + - -0.014895167 + - 0.0057634567 + - 0.005950582 + - 0.052095663 + - 0.013697566 + - 0.006848783 + - -0.046407055 + - -0.04101785 + - -0.010104762 + - -0.040119648 + - -0.014970018 + - 0.008645185 + - -0.012425114 + - 0.02544903 + - 0.077245295 + - -0.007110758 + - 0.04101785 + - -0.00883231 + - -0.0069236336 + - 0.0055763316 + - -0.031137636 + - 0.002975291 + - -0.003555379 + - -0.0013379453 + - -0.002507478 + - -0.0047904057 + - 0.051496863 + - 0.032934036 + - 0.013398166 + - -0.01669157 + - 0.0027881658 + - -0.03952085 + - -0.0088697355 + - -0.035778344 + - -0.039221447 + - 0.01729037 + - -0.0067739333 + - -0.00053564593 + - -0.037574746 + - 0.03368254 + - 0.0011882451 + - 0.017814321 + - -0.029640635 + - 0.020359226 + - 0.048203457 + - 0.056886066 + - 0.021556826 + - -0.012275415 + - 0.018637672 + - 0.021107726 + - 0.003368254 + - 0.055688467 + - 0.0056886068 + - 0.05029926 + - -0.049700458 + - 0.005014956 + - -0.020209525 + - -0.026796332 + - 0.0029191533 + - -0.016167618 + - -0.014446067 + - 0.013173616 + - -0.0033121165 + - -0.020958025 + - -0.039221447 + - -0.038622648 + - 0.042514853 + - -0.030987937 + - -0.0056886068 + - 0.013547867 + - -0.045209453 + - -0.03263464 + - -0.039820246 + - 0.030089736 + - 0.032185536 + - -0.020359226 + - 0.014221516 + - 0.09820332 + - -0.0019648147 + - 0.022305327 + - -0.04999986 + - 0.016092768 + - 0.03263464 + - -0.0088697355 + - 9.180831e-05 + - 0.052095663 + - 0.03263464 + - 0.003218554 + - 0.02425143 + - -0.015419118 + - 0.04401185 + - 0.0039857673 + - 0.14670618 + - 0.0057634567 + - 0.019760424 + - 0.018487971 + - 0.006736508 + - 0.0011414639 + - 0.013996967 + - -0.013622717 + - -0.028143633 + - 0.03607774 + - 0.0027320283 + - -0.011452063 + - -0.01714067 + - -0.00020817682 + - -0.011302363 + - -0.021856226 + - 0.006212557 + - 0.016167618 + - 0.045209453 + - -0.0015812082 + - 0.020808326 + - 0.029940035 + - 0.022305327 + - 0.05179626 + - -0.014221516 + - -0.0018338271 + - -0.025299331 + - 0.0014970017 + - 0.0051646563 + - -0.046107654 + - 0.019461023 + - -0.004902681 + - 0.010404163 + - 0.021856226 + - 0.0037799294 + - 0.038622648 + - 0.06526928 + - 0.0016373458 + - -0.0086826105 + - 0.019161623 + - -0.058682468 + - 0.030987937 + - -0.02544903 + - -0.0069610584 + - 2.222112e-05 + - -0.015568818 + - -0.0145957675 + - 0.004135467 + - -0.022604726 + - 0.04071845 + - 0.03952085 + - 0.032185536 + - 0.0008280291 + - 0.02470053 + - -0.0061751325 + - -0.030089736 + - 0.035778344 + - -0.0022548588 + - -0.02455083 + - 0.013772417 + - 0.030089736 + - -0.001356658 + - -0.0014970017 + - -0.022754427 + - 0.019086773 + - -0.0056137564 + - 0.015643667 + - 0.01691612 + - -0.009955062 + - -0.0145957675 + - -0.012574815 + - -0.015868219 + - 0.023652628 + - -0.022754427 + - 0.03278434 + - -0.012874216 + - 0.0077469843 + - 0.024401128 + - -0.010628713 + - 0.016990969 + - 0.0006736508 + - 0.022155626 + - 0.02544903 + - -0.0077469843 + - 0.023502927 + - 0.0056886068 + - -0.012425114 + - 0.041616652 + - 0.035628643 + - -0.008794885 + - 0.045209453 + - 0.027993934 + - 0.029640635 + - -0.01706582 + - 0.020808326 + - -0.02559873 + - 0.008083809 + - -0.013023916 + - 0.019311324 + - 0.036975943 + - -0.005014956 + - -0.023802329 + - 0.01714067 + - 0.002367134 + - -0.010254462 + - -0.030089736 + - -0.036227442 + - 0.00016607365 + - -0.04071845 + - 0.016990969 + - -0.019610723 + - 0.052993864 + - 0.010928113 + - 0.02559873 + - 0.015194568 + - -0.026347231 + - 0.006586808 + - -0.0074475836 + - 0.045808252 + - 0.010628713 + - 0.027544834 + - 0.007784409 + - 0.012200564 + - 0.030389136 + - 0.036377143 + - -0.039820246 + - 0.013473016 + - 0.01669157 + - -0.010628713 + - -0.03952085 + - 0.0041167545 + - 0.0069236336 + - -0.0022361465 + - -0.04191605 + - -0.030089736 + - -0.0068113585 + - 0.017739471 + - -0.007073333 + - -0.013847267 + - 0.022005925 + - -0.02514963 + - -0.061077673 + - 0.009131711 + - -0.044610653 + - -0.010853264 + - 0.002507478 + - 0.043712452 + - 0.020059824 + - -0.0039296295 + - 0.032035835 + - -0.003050141 + - 0.043113653 + - -0.026946032 + - -0.013473016 + - -0.006549383 + - -0.013547867 + - 0.007634709 + - 0.0050898064 + - 0.0019554584 + - -0.031586736 + - -0.0008888448 + - 0.026197532 + - 0.02514963 + - 0.015718518 + - -0.017889172 + - -0.029790334 + - 0.013547867 + - -0.029191535 + - 0.0031624164 + - 0.049700458 + - -0.006661658 + - 0.010778413 + - 0.054191466 + - -0.014745467 + - -0.06586807 + - 0.0113772135 + - 0.006437108 + - -0.009243986 + - -0.0019928836 + - 0.018113721 + - 0.043413054 + - 0.0010011198 + - -0.037125643 + - -0.024101729 + - -0.015269418 + - 0.07574829 + - -0.012125715 + - -0.0026197531 + - -0.021257427 + - 0.027844233 + - -0.031886138 + - 6.987958e-05 + - -0.01721552 + - -0.021257427 + - -0.040119648 + - 0.0035179541 + - 0.04999986 + - 0.026796332 + - -0.022754427 + - -0.006549383 + - 0.007485009 + - -0.007896684 + - 0.052095663 + - 0.019161623 + - 0.01714067 + - 0.030389136 + - 0.005426632 + - 0.036227442 + - 0.018862223 + - 0.012425114 + - 9.005401e-05 + - -0.006661658 + - 0.0016560582 + - -0.001899321 + - 3.0115465e-05 + - -0.06586807 + - 0.07544889 + - 0.018413123 + - -0.020059824 + - -0.03952085 + - -0.007709559 + - 0.010928113 + - 0.0019086773 + - -0.0053517814 + - -0.0017215521 + - -0.0095808115 + - 0.022155626 + - 0.04101785 + - -0.018562822 + - 0.015793368 + - -0.009169136 + - 0.01721552 + - 0.0079715345 + - -0.010329313 + - -0.024850229 + - 0.0110029625 + - -0.018113721 + - 0.00053564593 + - 0.022604726 + - 0.0038547795 + - -0.00024677138 + - -0.0075598587 + - 0.0017776896 + - -0.027844233 + - 0.023652628 + - -0.023203528 + - -0.023802329 + - 0.025299331 + - -0.038922045 + - -0.020059824 + - 0.020059824 + - 0.038622648 + - -0.0041541797 + - -0.022754427 + - -0.019461023 + - 0.07964049 + - 0.024101729 + - 0.033233438 + - -0.013547867 + - -0.029191535 + - -0.006212557 + - -0.004135467 + - -0.020359226 + - -0.022005925 + - 0.028742434 + - -0.011452063 + - -0.020359226 + - -0.03383224 + - -0.0063622575 + - 0.020359226 + - 0.0019835273 + - -0.010928113 + - -0.022754427 + - 0.019161623 + - -0.014071817 + - 0.00023390652 + - 0.03428134 + - -0.0038734921 + - -0.02589813 + - -0.0026571783 + - -0.0052395063 + - -0.007522434 + - 0.0038922045 + - 0.011826314 + - -0.008233509 + - 0.023952028 + - -0.0033495415 + - -0.028143633 + - -0.012275415 + - -0.021556826 + - 0.019011922 + - 0.009318836 + - 0.011526913 + - 0.022305327 + - 0.002367134 + - 0.022155626 + - -0.04071845 + - -0.0030314287 + - -0.040119648 + - -0.014895167 + - 0.0076721343 + - -0.007709559 + - 0.015718518 + - 0.046107654 + - -0.0018712522 + - -0.02499993 + - 0.009393686 + - -0.0023952029 + - 0.009805362 + - -0.04999986 + - 0.009655662 + - -0.007110758 + - 0.037724447 + - 0.056886066 + - -0.03353284 + - -0.0072978837 + - -0.004060617 + - -0.009805362 + - 0.021407126 + - 0.013173616 + - 0.019311324 + - -0.022604726 + - -0.038622648 + - -0.03383224 + - 0.012050864 + - 0.0020303086 + - 0.041616652 + - 0.083233304 + - -0.008570335 + - -0.014146666 + - 0.009880212 + - 0.008345785 + - -0.011227513 + - -0.06826328 + - -0.018787373 + - 0.031736437 + - 0.04041905 + - -0.011901164 + - 0.006100282 + - -0.023053827 + - -0.008907161 + - 0.009318836 + - 0.035778344 + - 0.013622717 + - 0.012649666 + - 0.045808252 + - 0.012200564 + - -0.021706527 + - -0.020658625 + - -0.002470053 + - -0.0016934833 + - -0.023652628 + - -0.030389136 + - -0.012499965 + - 0.018787373 + - -0.005913157 + - -0.05179626 + - -0.0110029625 + - 0.040119648 + - 0.013996967 + - -0.007821834 + - -0.010703563 + - -0.004940106 + - -0.03353284 + - -0.016990969 + - 0.032185536 + - 0.039221447 + - 0.023203528 + - 0.0069610584 + - -0.010703563 + - 0.04071845 + - 0.024850229 + - -0.0051646563 + - 0.004135467 + - -0.027095733 + - 0.013323316 + - -0.045508854 + - 0.01714067 + - 0.010329313 + - 0.0145957675 + - 0.010329313 + - 0.032934036 + - 0.072754286 + - -0.027245434 + - -0.07544889 + - 0.02559873 + - 0.0079715345 + - -0.0040044794 + - 0.00025027996 + - -0.031287335 + - 0.009318836 + - 0.0046407054 + - 0.033981938 + - -0.039221447 + - 0.027395133 + - -0.030089736 + - 0.030389136 + - 0.035778344 + - 0.0036489419 + - 0.011152663 + - -0.032335237 + - 0.013996967 + - -0.006624233 + - -0.0073727337 + - 0.038922045 + - 0.010404163 + - -0.0088697355 + - -0.007934109 + - 0.00029472224 + - -0.006100282 + - -0.007073333 + - 0.040119648 + - -0.04491005 + - 0.009655662 + - 0.026047831 + - -0.016167618 + - 0.037574746 + - -0.093412906 + - -0.0024139155 + - 0.021257427 + - 0.0013847266 + - -0.016017918 + - 0.000823351 + - 0.010404163 + - -0.013248466 + - 0.0045284303 + - 0.036526844 + - 0.0072230333 + - -0.0095808115 + - -0.0041728923 + - 0.012874216 + - 0.015044868 + - 0.012724515 + - 0.022604726 + - -0.04101785 + - -0.009318836 + - -0.0017683333 + - -0.011227513 + - -0.004940106 + - -0.00054266315 + - 0.01766462 + - -0.01751492 + - -0.026496932 + - 0.00860776 + - -0.014745467 + - 0.010029912 + - -0.019011922 + - -0.017365221 + - -0.012574815 + - -0.005875732 + - -0.0069236336 + - 0.020658625 + - -0.014670617 + - -0.01729037 + - -0.00407933 + - -0.004135467 + - 0.04221545 + - 0.029191535 + - -0.006511958 + - 0.017365221 + - 0.029191535 + - -0.026646633 + - 0.028443033 + - 0.0017309084 + - 0.011077813 + - 0.061377075 + - 0.02514963 + - 0.007110758 + - 0.018263422 + - -0.021856226 + - 0.031437036 + - 0.0026946033 + - -0.00016490411 + - -0.016092768 + - -0.0025823282 + - 0.0104790125 + - -0.04041905 + - -0.026946032 + - -0.0020303086 + - -0.0017870459 + - -0.021107726 + - -0.035478942 + - 0.012874216 + - -0.03353284 + - -0.021856226 + - 0.018338272 + - -0.033981938 + - -0.0044535804 + - -0.012200564 + - 0.05538907 + - 0.0051646563 + - 0.048203457 + - -0.0055389064 + - -0.0016186332 + - -0.016467018 + - 0.04431125 + - 0.003948342 + - -0.029490935 + - -0.052395064 + - 0.03353284 + - 0.0069984836 + - 0.021706527 + - -0.007073333 + - -0.05598787 + - 0.013098766 + - -0.00023858466 + - -0.060179472 + - 0.014745467 + - 0.0088697355 + - 0.036526844 + - -0.022005925 + - -0.023053827 + - 0.0008093166 + - -0.0068862084 + - -0.06736508 + - -0.011826314 + - -0.053293265 + - -0.0073727337 + - -0.02470053 + - -0.014820318 + - 0.022005925 + - 0.01639217 + - -0.007896684 + - -0.0015250705 + - -0.01684127 + - 0.013996967 + - -0.019086773 + - 0.023952028 + - -0.04221545 + - -0.010928113 + - 0.021706527 + - -0.018937072 + - -0.0031062786 + - 0.03338314 + - 0.0033869667 + - -0.03338314 + - 0.016541868 + - -0.03413164 + - -0.00038126763 + - 0.047305256 + - 0.0004420833 + - -0.018562822 + - -0.019011922 + - 0.012050864 + - 0.014296367 + - -0.0076721343 + - 0.03263464 + - -0.010404163 + - 0.045209453 + - 0.01803887 + - 0.001506358 + - 0.0022455025 + - 0.00032746914 + - -0.021257427 + - -0.007597284 + - -0.027544834 + - -0.00838321 + - -0.011077813 + - 0.038323246 + - -0.0072604585 + - 0.010628713 + - -0.00898201 + - -0.029940035 + - -0.019311324 + - -0.030089736 + - -0.004060617 + - 0.019910123 + - -0.014895167 + - -0.03502984 + - 0.015943069 + - -0.004060617 + - -0.02514963 + - 0.039221447 + - -0.0026758907 + - 0.0034805292 + - 0.0034056793 + - -0.04999986 + - -0.014296367 + - -0.009880212 + - -0.018338272 + - -0.007110758 + - 0.031137636 + - 0.013996967 + - 0.046107654 + - 0.01803887 + - -0.011227513 + - 0.01639217 + - -0.071257286 + - 0.006624233 + - 0.012050864 + - -0.01706582 + - 0.009505961 + - -0.0013098766 + - -0.016467018 + - -0.021556826 + - 0.015419118 + - 0.021556826 + - 0.02559873 + - -0.018562822 + - -0.04910166 + - 0.044610653 + - -0.014071817 + - -0.0032746915 + - 0.021107726 + - -0.001974171 + - -0.01631732 + - -0.008196085 + - 0.004491005 + - 0.022455025 + - 0.02455083 + - -0.0005800882 + - 0.032035835 + - 0.013023916 + - 0.0031998414 + - 0.018413123 + - 0.005426632 + - 0.015943069 + - -0.002039665 + - 0.012200564 + - 0.028293332 + - -0.030838236 + - -0.010853264 + - -0.001899321 + - -0.009880212 + - -0.003761217 + - 0.0042477422 + - -0.010179613 + - 0.012499965 + - -0.048203457 + - -0.033233438 + - -0.018937072 + - 0.01639217 + - 0.0072604585 + - 0.004940106 + - -0.019461023 + - 0.02589813 + - 0.014071817 + - 0.031886138 + - 0.011152663 + - -0.006699083 + - -0.027245434 + - 0.00070171955 + - 0.036975943 + - 0.017739471 + - 0.0034243916 + - -0.030987937 + - -0.010853264 + - -0.013772417 + - 0.018712522 + - 0.021257427 + - -0.014895167 + - 0.013622717 + - -0.0067739333 + - -0.04131725 + - -0.010628713 + - -0.021107726 + - -0.04041905 + - 0.030389136 + - -0.0041728923 + - -0.016467018 + - 0.026946032 + - -0.032934036 + - 0.004827831 + - 0.012125715 + - -0.009169136 + - -0.036676545 + - -0.0035740917 + - 0.02425143 + - 0.01751492 + - 0.008008959 + - -0.005052381 + - -0.020658625 + - -0.019610723 + - 0.024850229 + - -0.01751492 + - -0.007410159 + - -0.0045097177 + - 0.009955062 + - 0.0014315079 + - 0.01676642 + - -0.0015157143 + - -0.011976014 + - 0.0056137564 + - 0.0018057583 + - -0.039820246 + - -0.0057634567 + - -0.019910123 + - 0.00019648149 + - -0.04850286 + - 0.077245295 + - 0.015718518 + - 0.009655662 + - 0.0044348678 + - -0.009281411 + - -0.007073333 + - 0.012200564 + - -0.045808252 + - 0.024101729 + - 0.011676613 + - -0.009880212 + - 0.0027694532 + - 0.04041905 + - -0.020359226 + - -0.0044535804 + - -0.03592804 + - 0.018712522 + - -0.0016934833 + - -0.0055763316 + - 0.021856226 + - -0.01714067 + - 0.01706582 + - -0.013098766 + - 0.014745467 + - 0.008196085 + - -0.029341234 + - -0.025299331 + - 0.0068113585 + - 0.046107654 + - -0.043712452 + - -0.019161623 + - -0.013248466 + - 0.014446067 + - 0.0057634567 + - -0.012724515 + - 0.019086773 + - 0.013173616 + - -0.009169136 + - 0.013323316 + - -0.009805362 + - 0.034730442 + - -0.031886138 + - -0.0051646563 + - -0.008345785 + - 0.008233509 + - 0.01691612 + - 0.01631732 + - 0.011152663 + - 0.014820318 + - 0.009281411 + - -0.00023624559 + - 0.0033869667 + - -0.015119717 + - -0.03383224 + - -0.009169136 + - -0.017739471 + - -0.0026197531 + - -0.013772417 + - -0.0088697355 + - -0.008345785 + - 0.0064745327 + - -0.013398166 + - 0.032335237 + - -0.022754427 + - 0.0036115167 + - 0.013473016 + - 0.019910123 + - -0.014745467 + - 0.014820318 + - 0.023053827 + - 0.019311324 + - -0.02544903 + - -0.043413054 + - 0.01803887 + - 0.006100282 + - -0.0024139155 + - -0.016167618 + - 0.044610653 + - 0.0010291886 + - 0.036676545 + - -0.0017776896 + - -0.012499965 + - 0.0008514198 + - -0.022904126 + - 0.009730511 + - 0.022455025 + - 0.004715556 + - -0.020359226 + - 0.010104762 + - 0.0048652557 + - 0.026347231 + - -0.020808326 + - 0.010703563 + - 0.03443104 + - -0.038922045 + - -0.03263464 + - -0.0110029625 + - 0.026496932 + - 0.023502927 + - 0.015568818 + - 0.03383224 + - -0.029790334 + - -0.035478942 + - -0.021257427 + - 0.02589813 + - 0.014895167 + - 0.00012572475 + - 0.0043225926 + - 0.055688467 + - 0.06407167 + - 0.013248466 + - 0.0025261906 + - 0.0071481834 + - 0.026347231 + - 0.023053827 + - -0.0110029625 + - -0.00898201 + - -0.011302363 + - -0.04131725 + - 0.06826328 + - 0.013023916 + - 0.013173616 + - 0.019610723 + - 0.0033495415 + - 0.010029912 + - 0.0025823282 + - -0.006212557 + - 0.022455025 + - -0.00018244708 + - -0.04281425 + - -0.0110029625 + - -0.012574815 + - -0.028143633 + - 0.013173616 + - -0.009730511 + - -0.019161623 + - -0.0062874076 + - -0.036975943 + - -0.019161623 + - 0.01729037 + - 0.0060628573 + - 0.0015812082 + - 0.00042804895 + - -0.023353226 + - -0.013847267 + - -0.006212557 + - 0.00035553792 + - 0.03952085 + - -0.023802329 + - -0.025748432 + - -0.039820246 + - 0.0070359083 + - -0.064969875 + - 0.023802329 + - -0.020658625 + - 0.004715556 + - -0.020059824 + - 0.021107726 + - 0.043712452 + - 0.0018712522 + - -0.033233438 + - 0.009393686 + - 0.03338314 + - -0.043413054 + - -0.015568818 + - 0.0039296295 + - -0.012425114 + - 0.05808367 + - -0.037874144 + - 0.04401185 + - -0.003948342 + - 0.0012350265 + - 0.0022642151 + - -0.035478942 + - 0.031437036 + - -0.010928113 + - 0.01796402 + - 0.011077813 + - 0.030987937 + - -0.00845806 + - -0.016990969 + - 0.014745467 + - -0.04101785 + - 0.05538907 + - 0.023353226 + - -0.021107726 + - 0.03413164 + - -0.012200564 + - 0.00094498234 + - -0.04101785 + - 0.013996967 + - 0.013996967 + - 0.04131725 + - 0.020359226 + - -0.008570335 + - -0.0007344665 + - -0.00091223547 + - 0.038323246 + - -0.018263422 + - -0.010104762 + - 0.028592734 + - 0.055688467 + - 0.012200564 + - -0.043413054 + - -0.009131711 + - 0.04850286 + - 0.0046032807 + - 0.049700458 + - 0.04281425 + - -0.010029912 + - 0.0790417 + - 0.021107726 + - 0.00845806 + - -0.04191605 + - -0.015044868 + - -0.007485009 + - 0.0028068782 + - 0.011526913 + - -0.009880212 + - 0.0058383066 + - -0.008420635 + - 0.004266455 + - 0.0015905644 + - -0.010254462 + - 0.023353226 + - -0.011901164 + - -0.014446067 + - 0.011751464 + - 0.015868219 + - -0.009206561 + - -0.011751464 + - -0.007821834 + - -0.018338272 + - -0.013323316 + - -0.019610723 + - 0.004472293 + - -0.018637672 + - -0.00024326278 + - -0.015793368 + - 0.043712452 + - 0.0110029625 + - -0.0013192329 + - -0.012200564 + - 0.021706527 + - 0.014670617 + - 0.008270934 + - -0.0063622575 + - -0.031586736 + - 0.021706527 + - -0.041616652 + - -0.0070359083 + - -0.0003181129 + - 0.047005855 + - 1.5203924e-05 + - -0.01721552 + - -0.021706527 + - -0.0043413052 + - 0.0019835273 + - 0.036377143 + - 0.028592734 + - 0.008046384 + - 0.03517954 + - 0.0029940035 + - -0.011302363 + - -0.0005894445 + - 0.0037425044 + - 0.0113772135 + - 0.0035366665 + - 0.010404163 + - 0.029640635 + - -0.0088697355 + - 0.0028443034 + - -0.052993864 + - 0.018263422 + - 0.012350265 + - -0.014820318 + - 0.009131711 + - 0.020658625 + - -0.04491005 + - 0.032484937 + - -0.01796402 + - -0.070957884 + - -0.02589813 + - 0.013398166 + - 0.0031062786 + - 0.03458074 + - -0.04940106 + - -0.00068300706 + - - -0.0060736495 + - -0.015005487 + - 0.00033246286 + - 0.0006946985 + - -0.029058246 + - -0.011670935 + - -0.034457047 + - -0.010559417 + - -0.044460703 + - -0.02874067 + - -0.0052797087 + - 0.030963706 + - -0.013258817 + - -0.041920092 + - 0.044460703 + - -0.0059942557 + - 0.026994 + - 0.039061908 + - 0.0012901543 + - -0.01294124 + - 0.01984853 + - 0.019213375 + - -0.0050018295 + - -0.030010974 + - 0.011591542 + - 0.0007592062 + - 0.018260647 + - 0.009289111 + - -0.009209718 + - 0.008773049 + - -0.034615833 + - 0.008455474 + - -0.02334187 + - 0.019213375 + - -0.047954045 + - 0.020642469 + - -0.02524733 + - -0.007661532 + - 0.043507975 + - 0.009646385 + - -0.010956388 + - -0.036044925 + - 0.030646129 + - -0.017625494 + - -0.0032750072 + - -0.009328809 + - 0.036044925 + - -0.0071851676 + - -0.046366166 + - -0.0188958 + - 0.044460703 + - 0.0188958 + - -0.01294124 + - 0.006946985 + - 0.017149128 + - -0.023977023 + - 0.022547929 + - 0.006232438 + - 0.012623665 + - -0.0035727352 + - -0.036521293 + - 0.004326979 + - -0.03144007 + - 0.0035727352 + - -0.029693399 + - -0.008018806 + - -0.007939411 + - 0.03159886 + - 0.006986682 + - 0.012226693 + - 0.00472395 + - 0.06827894 + - 0.005716376 + - -0.021753987 + - 0.010876994 + - -0.0064309235 + - -0.011353358 + - -0.059386797 + - -0.024770964 + - 0.028105516 + - -0.019372165 + - 0.013338212 + - 0.024612175 + - -0.027946727 + - -0.011115176 + - 0.005359103 + - -0.02238914 + - -0.01579943 + - -0.0066294083 + - -0.022230351 + - 0.03223401 + - 0.053670425 + - 0.01968974 + - 0.018816406 + - 0.04604859 + - 0.048589196 + - 0.012385482 + - -0.022547929 + - -0.035886142 + - 0.03747402 + - 0.010876994 + - -0.014370335 + - -0.019133981 + - 0.009249415 + - -0.018975195 + - 0.0057560736 + - -0.10162447 + - 0.012226693 + - 0.011115176 + - -0.014687912 + - 0.0005309481 + - -0.009209718 + - -0.02588248 + - -0.066691056 + - -0.028581882 + - 0.01119457 + - 0.032551587 + - -0.0006798121 + - 0.016672764 + - 0.0063118325 + - -0.017466705 + - 0.00418804 + - -0.003830766 + - 0.027311577 + - -0.0026001572 + - -0.025088541 + - 0.033345528 + - -0.023977023 + - -0.050177082 + - -0.045095857 + - -0.0025009147 + - 0.010162447 + - 0.008217291 + - 0.006589711 + - -0.009646385 + - -0.017307917 + - 0.01119457 + - 0.011829724 + - 0.017387312 + - -0.027470363 + - -0.0045056157 + - 0.0050216774 + - 0.036521293 + - 0.02588248 + - -0.0040689483 + - -0.0031956132 + - 0.01929277 + - -0.021753987 + - 0.0018161404 + - -0.0017565947 + - -0.00472395 + - 0.03699766 + - 0.009328809 + - 0.039538268 + - 0.01968974 + - 0.0323928 + - 0.023183083 + - 0.030010974 + - -0.0094479 + - -0.0052400115 + - 0.042555247 + - -0.011273964 + - 0.04922435 + - 0.027946727 + - -0.013179422 + - 0.013576394 + - -0.0038903116 + - -0.011670935 + - -0.028105516 + - -0.05652861 + - -0.03144007 + - 0.051447388 + - 0.009606687 + - 0.036044925 + - 0.012623665 + - 0.013020635 + - -0.012623665 + - -0.0046445555 + - 0.0071851676 + - 0.018101858 + - -0.021436412 + - 0.005716376 + - -0.014529123 + - 0.0188958 + - 0.010083052 + - 0.009328809 + - -0.015243671 + - 0.01699034 + - -0.029375823 + - 0.0028978854 + - 0.020324893 + - 0.023818234 + - -0.012385482 + - 0.018260647 + - -0.02953461 + - 0.015164277 + - -0.029375823 + - -0.017784283 + - 0.008574564 + - 0.022547929 + - 0.076218344 + - 0.035727352 + - 0.0035925838 + - 0.017228523 + - -0.04668374 + - -0.010083052 + - 0.014290941 + - -0.0863808 + - 0.04668374 + - 0.011035782 + - -0.006192741 + - 0.010876994 + - -0.00418804 + - -0.032075223 + - -0.014529123 + - -0.03159886 + - 0.024612175 + - 0.011273964 + - 0.008931838 + - -0.041602515 + - 0.022230351 + - 0.010241841 + - -0.01873701 + - 0.010480023 + - -0.026835212 + - -0.019927923 + - 0.016275793 + - -0.02238914 + - -0.029058246 + - -0.035727352 + - 0.015243671 + - -0.03842675 + - 0.0023222778 + - 0.00086837314 + - -0.014608517 + - 0.029693399 + - 0.0045254645 + - -0.038267963 + - 0.010876994 + - 0.009527293 + - -0.018340042 + - -0.008733353 + - 0.028423091 + - 0.028423091 + - -0.033345528 + - 0.029058246 + - -0.0011809875 + - 0.0050018295 + - -0.06700864 + - -0.05271769 + - -0.010876994 + - -0.006827894 + - -0.010718206 + - 0.005041526 + - 0.023500659 + - -0.010718206 + - 0.0061133467 + - 0.021118835 + - 0.054305576 + - -0.0048033437 + - -0.005041526 + - 0.012623665 + - -0.03937948 + - 0.0071454705 + - -0.018578222 + - -0.01012275 + - -0.0012802301 + - -0.035727352 + - -0.030010974 + - -0.0215952 + - 0.0029375823 + - 0.010480023 + - 0.028105516 + - 0.053988 + - 0.023183083 + - -0.008336382 + - -0.007780623 + - -0.004346828 + - 0.026835212 + - -0.018260647 + - -0.035727352 + - -0.004426222 + - 0.011512147 + - 0.043507975 + - -0.0018459131 + - 0.014052758 + - -0.0010221992 + - -0.025564905 + - -0.017466705 + - -0.00025058768 + - 0.014529123 + - -0.016513975 + - -0.032869164 + - 0.02874067 + - -0.011115176 + - 0.0018062162 + - 0.015402459 + - -0.020642469 + - 0.006827894 + - -0.012861847 + - 0.023500659 + - -0.00085844885 + - 0.05176496 + - -0.0036521293 + - 0.0049819807 + - 0.026994 + - -0.022547929 + - 0.006708803 + - -0.027311577 + - -0.02778794 + - 0.024929753 + - -0.023500659 + - 0.015243671 + - -0.019451559 + - 0.020483682 + - 0.032710373 + - -0.023024295 + - 0.021912776 + - 0.0027986425 + - 0.0215952 + - 0.0026994 + - -0.041602515 + - 0.050177082 + - -0.023024295 + - 0.011115176 + - -0.013576394 + - -0.004604859 + - 0.034457047 + - -0.003830766 + - -0.014370335 + - -0.012861847 + - -0.06573833 + - 0.020642469 + - -0.035727352 + - -0.009487597 + - -0.041284937 + - -0.048589196 + - 0.04668374 + - 0.02008671 + - 0.062244985 + - -0.02238914 + - -0.003076522 + - -0.01389397 + - -0.02334187 + - -0.026200058 + - 0.013258817 + - -0.017387312 + - -0.010480023 + - 0.015720036 + - 0.008931838 + - 0.012147299 + - -0.022706715 + - -0.05112981 + - 0.03302795 + - -0.022547929 + - 0.015878823 + - 0.0042674337 + - -0.036521293 + - 0.00023818236 + - 0.026358845 + - -0.00337425 + - -0.030169763 + - 0.04604859 + - -0.032869164 + - 0.0017863676 + - -0.014370335 + - -0.026358845 + - 0.03858554 + - 0.024770964 + - -0.0080982 + - 0.010956388 + - 0.0025108387 + - -0.03144007 + - 0.0016077309 + - -0.032551587 + - 0.005795771 + - 0.0377916 + - -0.008534867 + - 0.012623665 + - 0.013497 + - -0.006589711 + - 0.007899715 + - -0.014132152 + - -0.011829724 + - 0.023659447 + - 0.07367774 + - 0.022706715 + - -0.058116492 + - -0.05906922 + - 0.03302795 + - 0.002103944 + - -0.021753987 + - 0.035727352 + - -0.036362503 + - -0.018340042 + - -0.018657617 + - -0.00085348677 + - 0.007066076 + - 0.03795039 + - 0.0075424407 + - -0.009289111 + - -0.03683887 + - -0.0014191697 + - 0.041602515 + - -0.009050929 + - -0.034774624 + - -0.017625494 + - -0.030487342 + - -0.028264305 + - 0.000523505 + - 0.035250988 + - -0.0080982 + - -0.009328809 + - -0.002858188 + - -0.020801257 + - 0.006986682 + - -0.021118835 + - -0.036203716 + - 0.004307131 + - -0.035409775 + - 0.011750329 + - -0.047318894 + - -0.0215952 + - -0.007780623 + - 0.013497 + - -0.016117005 + - 0.016831553 + - -0.03747402 + - -0.01849883 + - 0.029375823 + - -0.048906773 + - -0.027470363 + - -0.043507975 + - -0.017704887 + - 0.02889946 + - -0.03699766 + - -0.035727352 + - 0.020960046 + - -0.026994 + - -0.04668374 + - -0.03493341 + - -0.012703058 + - -0.0080982 + - 0.010162447 + - -0.040967364 + - 0.0040491 + - -0.008296685 + - 0.040649787 + - 0.020483682 + - 0.0048628896 + - -0.016910948 + - -0.010718206 + - 0.03858554 + - -0.025406117 + - 0.022230351 + - 0.026358845 + - -0.032075223 + - -0.020960046 + - -0.02008671 + - -0.025564905 + - 0.009527293 + - 0.03937948 + - 0.0044460706 + - -5.706452e-05 + - -0.040014636 + - -0.02238914 + - 0.005160617 + - -0.017704887 + - -0.006232438 + - 0.022230351 + - 0.007343956 + - -0.00067485 + - 0.013179422 + - -0.091462016 + - -0.007105773 + - -0.023024295 + - -0.03763281 + - 0.015878823 + - 0.022706715 + - 0.06891409 + - 0.08447534 + - 0.060339525 + - 0.01119457 + - 0.01849883 + - 0.0032750072 + - -0.035886142 + - -0.015402459 + - -0.047318894 + - 0.009963961 + - 0.010162447 + - -0.05049466 + - 0.010480023 + - -0.004465919 + - 0.031122493 + - 0.015164277 + - -0.03683887 + - -0.053035267 + - 0.009170021 + - -0.009646385 + - -0.038903117 + - -0.004465919 + - -0.031916436 + - 0.021436412 + - -0.017943071 + - -0.0030368248 + - -0.005676679 + - 0.0076218355 + - 0.023500659 + - -0.0050018295 + - -0.008058502 + - 0.03144007 + - 0.047001317 + - 0.033663105 + - 0.051447388 + - -0.048589196 + - -0.0006351529 + - 0.016513975 + - 0.013576394 + - -0.03763281 + - -0.011988511 + - 0.0031559162 + - -0.071772285 + - 0.011512147 + - 0.017704887 + - 0.0042674337 + - 0.010241841 + - -0.016513975 + - -0.06510317 + - 0.0013298515 + - -0.0007542441 + - 0.043507975 + - -0.011750329 + - 0.015164277 + - 0.021118835 + - -0.043825552 + - 0.015164277 + - 0.018260647 + - -0.010321234 + - -0.04477828 + - -0.012464876 + - 0.012306088 + - 0.05271769 + - -0.040649787 + - 0.045731008 + - 0.15307185 + - -0.03842675 + - -0.00097754 + - 0.007066076 + - -0.0075424407 + - -0.04604859 + - -0.026994 + - -0.011035782 + - -0.0031559162 + - -0.005359103 + - 0.017466705 + - 0.02334187 + - 0.022547929 + - 0.0058751646 + - -0.012623665 + - 0.12131421 + - 0.00782032 + - 0.0027589456 + - 0.03683887 + - 0.035568565 + - -0.0026795515 + - 0.0075821383 + - -0.0052797087 + - -0.023659447 + - 0.03858554 + - 0.0034734926 + - -0.017943071 + - -0.025723694 + - 0.02953461 + - 0.029217035 + - -0.010321234 + - 0.0045056157 + - -0.03937948 + - -0.017784283 + - 0.03922069 + - -0.02953461 + - 0.0057560736 + - -0.0023421263 + - 0.034457047 + - -0.00044162976 + - 0.014846699 + - -0.008455474 + - 0.0431904 + - -0.009527293 + - -0.0012504574 + - 0.018340042 + - -0.048271623 + - 0.041602515 + - -0.015084881 + - 0.011750329 + - 0.014370335 + - 0.03493341 + - -0.03128128 + - -0.018578222 + - 0.024294598 + - -0.026994 + - 0.0039697057 + - 0.00984487 + - 0.014290941 + - 0.0030368248 + - 0.011353358 + - -0.04017342 + - 0.0023718993 + - -0.060657106 + - 0.019133981 + - -0.0011561769 + - -0.020801257 + - 0.003413947 + - -0.006351529 + - -0.025723694 + - -0.013973364 + - 0.007026379 + - -0.014687912 + - -0.017387312 + - -0.004029251 + - -0.004128494 + - -0.012782453 + - -0.014211546 + - 0.0065500145 + - 0.0431904 + - -0.006351529 + - 0.006986682 + - 0.0077012293 + - -0.017943071 + - 0.0033940985 + - 0.015084881 + - -0.015878823 + - 0.02874067 + - -0.0025406117 + - 0.023977023 + - 0.0052003143 + - -0.018975195 + - -0.009209718 + - -0.005716376 + - -0.006589711 + - 9.179945e-05 + - -0.023977023 + - -0.0048033437 + - -0.00025058768 + - -0.009765477 + - 0.024135811 + - -0.026835212 + - -0.04541343 + - 0.011670935 + - -0.0013695485 + - 0.036680084 + - 0.025088541 + - 0.0071454705 + - -0.03763281 + - 0.017387312 + - -0.050812233 + - -0.016117005 + - 0.014211546 + - 0.016513975 + - -0.009566991 + - -0.0030368248 + - -0.05557588 + - 0.023977023 + - 0.011829724 + - 0.0006946985 + - -0.0063118325 + - 0.010638812 + - -0.0014985639 + - -0.031757645 + - -0.015958218 + - -0.023977023 + - 0.02238914 + - 0.0028383394 + - 0.027946727 + - 0.010321234 + - -0.009765477 + - 0.0014191697 + - -0.014132152 + - -0.005914862 + - 0.01012275 + - 0.0073042586 + - -0.019372165 + - 0.03223401 + - 0.019133981 + - 0.018578222 + - -0.03350432 + - -0.025564905 + - -0.00015692742 + - -0.015084881 + - -0.021436412 + - 0.028105516 + - -0.023024295 + - -0.011115176 + - -0.0039498573 + - 0.015402459 + - -0.019530954 + - 0.0029177337 + - 0.03350432 + - -0.019213375 + - 0.0107976 + - 0.028581882 + - -0.01873701 + - -0.011273964 + - 0.016037611 + - 0.029693399 + - 0.057163764 + - 0.07081955 + - -0.011115176 + - -0.024135811 + - -0.01294124 + - 6.326719e-05 + - 0.008971536 + - -0.06510317 + - -0.011829724 + - 0.009606687 + - -0.015084881 + - -0.0005210239 + - 0.005517891 + - 0.010162447 + - -0.0015779581 + - 0.009130323 + - 0.021912776 + - 0.024612175 + - -0.012067906 + - 0.007939411 + - -0.05208254 + - -0.028423091 + - 0.019372165 + - -0.011988511 + - 0.022230351 + - 0.017307917 + - 0.0022329595 + - 0.03350432 + - -0.0048430413 + - -0.024929753 + - 0.0064309235 + - -0.047001317 + - 0.0037116748 + - 0.024770964 + - 0.014529123 + - 0.047001317 + - 0.042872824 + - -0.054305576 + - 0.013497 + - -0.01849883 + - 0.07081955 + - -0.017784283 + - 0.00391016 + - 0.053035267 + - -0.030487342 + - -0.025406117 + - -0.00040193272 + - -0.03969706 + - -0.03763281 + - -0.011988511 + - 0.0017367463 + - 0.03795039 + - 0.043825552 + - -0.014529123 + - -0.017943071 + - 0.028423091 + - 0.008217291 + - 0.039855845 + - 0.023818234 + - 0.008455474 + - -0.0012107603 + - 0.0009179945 + - -0.01119457 + - 0.027152788 + - 0.003830766 + - -0.014767305 + - 0.0048231925 + - -0.045731008 + - -0.053352848 + - -0.0011015934 + - -0.0015878823 + - 0.02588248 + - 0.0029375823 + - -0.036203716 + - -0.0010023507 + - -0.0046842527 + - 0.01849883 + - -0.026994 + - 0.011750329 + - -0.009011231 + - -0.017149128 + - -0.010956388 + - -0.0050216774 + - 0.006708803 + - 0.014290941 + - 0.0074233497 + - -0.020166105 + - -0.0107976 + - 0.058116492 + - -0.03128128 + - 0.0058751646 + - -0.011909117 + - -0.012623665 + - 0.011591542 + - 0.015084881 + - 0.014290941 + - 0.003533038 + - 0.014370335 + - 0.0073836525 + - 0.026676424 + - -0.042872824 + - 0.0202455 + - 0.035092197 + - 0.0018459131 + - 0.008812747 + - 0.02238914 + - 0.0042674337 + - -0.006351529 + - -0.029058246 + - -0.022706715 + - 0.020324893 + - 0.017784283 + - 0.010480023 + - -0.004922435 + - -0.006867591 + - -0.00418804 + - -0.005061375 + - -0.017546099 + - -0.023024295 + - 0.009487597 + - 0.010480023 + - -0.00026547405 + - -0.039061908 + - -0.007026379 + - 0.014687912 + - -0.018578222 + - 0.0013695485 + - 0.009170021 + - 0.023024295 + - -0.026358845 + - 0.013100029 + - 0.03159886 + - -0.037156444 + - -0.018578222 + - 0.035886142 + - 0.009170021 + - -0.004426222 + - -0.022706715 + - 0.048271623 + - -0.033821896 + - 0.005636982 + - -0.027629152 + - 0.010480023 + - -0.017784283 + - 0.00030889272 + - 0.013655788 + - -0.008892141 + - -0.0006500393 + - -0.00045651617 + - 0.0048628896 + - 0.036203716 + - -0.056211032 + - -0.015958218 + - -0.018022463 + - 0.012703058 + - -0.00028656315 + - 0.022865504 + - 0.015561246 + - 0.06923167 + - -0.040967364 + - -0.020960046 + - -0.008177593 + - 0.0015481852 + - 0.036521293 + - -0.04604859 + - 0.02604127 + - 0.013814576 + - 0.011750329 + - 0.03842675 + - 0.025564905 + - -0.011829724 + - -0.0188958 + - -0.037156444 + - 0.011115176 + - -0.012067906 + - -0.02334187 + - -0.014767305 + - 0.022706715 + - 0.0036918262 + - 0.010638812 + - 0.011670935 + - 0.010321234 + - 0.054623153 + - 0.0005904937 + - 0.010876994 + - 0.00849517 + - 0.0052400115 + - 0.019133981 + - -0.017149128 + - 0.009130323 + - 0.035092197 + - 0.03858554 + - 0.0034337954 + - -0.016275793 + - 0.012544271 + - -0.002173414 + - -0.029375823 + - -0.000714547 + - -0.014370335 + - -0.0074233497 + - 0.025723694 + - 0.005160617 + - -0.020483682 + - 0.011591542 + - 0.023183083 + - -0.014132152 + - 0.005636982 + - -0.03159886 + - -0.02604127 + - 0.004346828 + - -0.017069735 + - 0.007224865 + - -0.017784283 + - -0.0026200057 + - 0.025406117 + - 0.035886142 + - -0.030328553 + - 0.0025009147 + - -0.027629152 + - -0.013655788 + - 0.010400629 + - 0.031757645 + - 0.015323064 + - 0.037315235 + - 0.03128128 + - 0.030646129 + - -0.010638812 + - 0.0202455 + - -0.018657617 + - 0.0024909903 + - 0.024929753 + - 0.0029375823 + - -0.015243671 + - 0.0050216774 + - -0.028581882 + - -0.013258817 + - 0.009170021 + - 0.049541928 + - -0.017784283 + - 0.012385482 + - -0.036044925 + - -0.0107976 + - -0.0008435625 + - 0.049541928 + - 0.008773049 + - 0.020007318 + - 0.020801257 + - 0.07717108 + - 0.038903117 + - 0.01675216 + - -0.019054586 + - 0.008336382 + - 0.058116492 + - 0.011035782 + - -0.02238914 + - -0.02524733 + - 0.03858554 + - 0.041920092 + - 0.028105516 + - 0.048589196 + - 0.01929277 + - 0.03350432 + - -0.010638812 + - -0.00079394114 + - -0.016513975 + - 0.0036521293 + - 0.039061908 + - -0.005795771 + - 0.0039895545 + - 0.024453387 + - -0.014608517 + - 0.0016573521 + - -0.06573833 + - -0.0032154617 + - -0.025406117 + - 0.010876994 + - -0.023500659 + - 0.018101858 + - 0.002957431 + - 0.017943071 + - -0.007939411 + - 0.0039895545 + - -0.008256988 + - -0.014767305 + - 0.015878823 + - 0.040967364 + - -0.013338212 + - 0.017149128 + - 0.032869164 + - -0.0202455 + - 0.010241841 + - 0.048906773 + - -0.02874067 + - 0.024929753 + - -0.006986682 + - 0.0052400115 + - 0.020483682 + - -0.014926094 + - 0.01984853 + - 0.015878823 + - 0.011829724 + - 0.0036521293 + - -0.047954045 + - -0.03413947 + - -0.013735182 + - -0.0004391487 + - 0.010162447 + - 0.00039448953 + - -0.03795039 + - 0.0020047014 + - -0.008256988 + - 0.01564064 + - 0.007661532 + - -0.00021461221 + - 0.0037315234 + - -0.009646385 + - -0.0009973886 + - -0.0020840955 + - -0.0024512932 + - 0.05049466 + - 0.07081955 + - 0.018419435 + - 0.01659337 + - -0.014290941 + - -0.037315235 + - 0.029375823 + - 0.021753987 + - 0.021277623 + - 0.0047041015 + - -0.018578222 + - 0.025564905 + - -0.018975195 + - 0.003533038 + - -0.025723694 + - 0.0009428051 + - 0.00085844885 + - 0.0025009147 + - -0.010241841 + - -0.011273964 + - -0.02889946 + - 0.009209718 + - -0.015084881 + - 0.017704887 + - -0.0028978854 + - 0.040649787 + - 0.008256988 + - -0.0062721353 + - 0.030010974 + - -0.026517633 + - -0.021118835 + - -0.02524733 + - -0.0033147042 + - 0.04541343 + - -0.030010974 + - 0.021753987 + - -0.017307917 + - -0.004545313 + - 0.002818491 + - -0.03223401 + - 0.023500659 + - -0.01659337 + - -0.030963706 + - 0.025088541 + - 0.028581882 + - 0.0067485 + - -0.026676424 + - 0.0023322022 + - -0.0077012293 + - -0.0075027435 + - -0.07431289 + - -0.018101858 + - -0.020483682 + - 0.0052400115 + - -0.042872824 + - -0.010321234 + - 0.009011231 + - -0.031122493 + - 0.013417606 + - 0.0035925838 + - -0.02953461 + - 0.012306088 + - 0.03842675 + - 0.0057560736 + - -0.012861847 + - -0.01119457 + - 0.015323064 + - -0.05557588 + - -0.02874067 + - -0.023818234 + - -0.029852187 + - -0.011988511 + - 0.015481853 + - -0.011432752 + - 0.0066294083 + - 0.019769134 + - -0.008018806 + - -0.010718206 + - -0.011353358 + - -0.038903117 + - 0.011512147 + - 0.034615833 + - 0.010162447 + - 0.0049422835 + - 0.041920092 + - -0.001389397 + - 0.0025803086 + - -0.008931838 + - 0.005557588 + - 0.08034684 + - -0.020483682 + - -0.025088541 + - -0.007661532 + - 0.010241841 + - 0.036203716 + - 0.006033953 + - -0.008455474 + - 0.0064309235 + - -0.00984487 + - -0.008018806 + - -0.029217035 + - -0.032075223 + - 0.0215952 + - -0.0036322807 + - -0.021118835 + - 0.04017342 + - 0.02238914 + - -0.025723694 + - 0.038109172 + - -0.01294124 + - 0.011512147 + - -0.026994 + - -0.026835212 + - -0.0008088275 + - -0.019451559 + - -0.024770964 + - 0.0025604602 + - 0.032075223 + - 0.010559417 + - 0.037156444 + - 0.029852187 + - -0.027629152 + - 0.02953461 + - -0.05652861 + - 0.0039895545 + - -0.022706715 + - 0.024453387 + - 0.012464876 + - 0.024294598 + - -0.013814576 + - 0.00018856103 + - -0.0010370857 + - 0.019530954 + - 0.043825552 + - -0.04477828 + - -0.027629152 + - 0.031122493 + - -0.020801257 + - 0.09209718 + - 0.04223767 + - 0.02874067 + - -0.030328553 + - -0.026200058 + - -0.0067485 + - 0.003453644 + - -0.011432752 + - -0.028423091 + - 0.033821896 + - 0.013576394 + - -0.0008088275 + - 0.007463047 + - -0.03350432 + - 0.016831553 + - 0.009170021 + - 0.0018856102 + - 0.034457047 + - 0.054305576 + - -0.022865504 + - -0.03413947 + - -0.003493341 + - -0.018419435 + - 0.0074233497 + - 0.015164277 + - 0.021753987 + - 0.05652861 + - 0.00046892147 + - -0.003533038 + - 0.04541343 + - -0.005319406 + - -0.016831553 + - 0.007899715 + - 0.013735182 + - 0.023024295 + - 0.049859505 + - 0.011353358 + - -0.0058354675 + - 0.006986682 + - -0.012385482 + - 0.009765477 + - 0.010043355 + - 0.016672764 + - -0.04477828 + - -0.023818234 + - -0.020483682 + - -0.0053988 + - -0.020642469 + - -0.044460703 + - 0.0022726564 + - -0.022071565 + - -0.06510317 + - 0.026676424 + - -0.034457047 + - -0.017307917 + - 0.010638812 + - 0.0021237924 + - 0.003453644 + - 0.049541928 + - 0.0036521293 + - 0.008256988 + - -0.011670935 + - -0.0012405331 + - -0.024294598 + - -0.03398068 + - -0.002858188 + - 0.035727352 + - 0.042555247 + - -0.08574565 + - 0.016513975 + - -0.01444973 + - 0.019133981 + - 0.023500659 + - 0.00418804 + - 0.024612175 + - -0.011670935 + - 0.014767305 + - 0.023024295 + - -0.024453387 + - -0.017943071 + - -0.017307917 + - 0.0094479 + - -0.055258304 + - 0.013258817 + - 0.016910948 + - -0.04223767 + - -0.019451559 + - 0.053035267 + - 0.028423091 + - 0.008256988 + - 0.027470363 + - 0.0059942557 + - -0.031757645 + - -0.010956388 + - -0.023183083 + - 0.023183083 + - 0.022071565 + - -0.0188958 + - 0.01444973 + - 0.031122493 + - -0.043825552 + - 0.005636982 + - -0.008455474 + - -8.435625e-05 + - -0.0012703058 + - 0.0107976 + - 0.025564905 + - 0.012782453 + - 0.006907288 + - -0.030328553 + - 0.012623665 + - -0.004287282 + - 0.029217035 + - -0.004128494 + - 0.006192741 + - 0.005557588 + - -0.035886142 + - -0.025088541 + - 0.0015283367 + - -0.0035131895 + - 0.012385482 + - -0.008455474 + - 0.012067906 + - -0.034774624 + - 0.011988511 + - 0.013100029 + - -0.013417606 + - 0.045731008 + - 0.013655788 + - -0.02524733 + - -0.00020716901 + - -0.0026200057 + - 0.043507975 + - 0.003334553 + - 0.00070462277 + - 0.024453387 + - 0.011909117 + - 0.052400116 + - 0.014290941 + - 0.031916436 + - -0.0032154617 + - 0.016513975 + - -0.04017342 + - 0.012703058 + - -0.029852187 + - 0.01294124 + - -0.0046445555 + - -0.009050929 + - -0.019213375 + - -0.013258817 + - -0.022071565 + - 0.026994 + - 0.03302795 + - 0.012226693 + - -0.008336382 + - 0.0051209205 + - 0.03223401 + - -0.025088541 + - -0.015561246 + - 0.00086837314 + - 0.021912776 + - -0.010043355 + - -0.005716376 + - -0.0050812233 + - 0.010003659 + - 0.02874067 + - 0.020166105 + - 0.030804917 + - -0.044460703 + - -0.015323064 + - -0.032075223 + - 0.013497 + - -0.013020635 + - -0.010718206 + - -0.03350432 + - -0.0028780368 + - 0.033821896 + - 0.015243671 + - -0.009884567 + - 0.03350432 + - 0.017466705 + - -0.034615833 + - -0.03795039 + - -0.00085348677 + - 0.011750329 + - 0.01675216 + - 0.017069735 + - 0.044460703 + - -0.0059942557 + - 0.012067906 + - 0.003453644 + - 0.015958218 + - 0.018022463 + - -0.043507975 + - 0.032869164 + - 0.026994 + - 0.05843407 + - 0.017546099 + - 0.016275793 + - 3.349439e-05 + - 0.04541343 + - -0.02008671 + - 0.00984487 + - -0.0035131895 + - -0.028105516 + - -0.029217035 + - 0.05843407 + - -0.008455474 + - 0.0026795515 + - 0.006232438 + - 0.038109172 + - -0.011750329 + - -0.035886142 + - 0.025564905 + - -0.00051854283 + - -0.0044063735 + - -0.032710373 + - -0.031916436 + - -0.009527293 + - -0.008653958 + - 0.004485768 + - -0.024453387 + - -0.010956388 + - 0.0024909903 + - -0.020642469 + - 0.0030566733 + - 0.006589711 + - -0.008296685 + - -0.037156444 + - 0.005061375 + - 0.017149128 + - 0.0033940985 + - -0.01119457 + - 0.024135811 + - 0.02334187 + - -0.015243671 + - -0.0061133467 + - -0.05906922 + - -0.0059942557 + - -0.016910948 + - -0.015164277 + - -0.02889946 + - -0.027946727 + - -0.0161964 + - 0.02778794 + - 0.014290941 + - 0.018578222 + - -0.0033544016 + - 0.00337425 + - 0.022071565 + - 0.020960046 + - 0.00036967886 + - -0.025406117 + - -0.030963706 + - 0.11051661 + - -0.009527293 + - 0.02889946 + - -0.00032501965 + - -0.013735182 + - 0.030328553 + - -0.00065500144 + - 0.024135811 + - -0.009963961 + - 0.020960046 + - 0.001835989 + - 0.011115176 + - -0.010876994 + - 0.0019947772 + - -0.008058502 + - -0.008773049 + - 0.045095857 + - 0.02953461 + - 0.002173414 + - 0.0045254645 + - -0.03318674 + - -0.0075821383 + - 0.012147299 + - 0.0020047014 + - -0.008217291 + - 0.015720036 + - -0.0032750072 + - -0.010480023 + - 0.02524733 + - 0.030328553 + - 0.02008671 + - 0.0045056157 + - 0.014687912 + - -0.011670935 + - -0.040967364 + - 0.0059545585 + - 0.012464876 + - -0.01873701 + - 0.026994 + - -0.011829724 + - 0.038903117 + - 0.024770964 + - -0.0080982 + - 0.01984853 + - 0.014052758 + - 0.019530954 + - -0.007939411 + - -0.01012275 + - -0.005061375 + - -0.019213375 + - 0.005160617 + - -0.01699034 + - 0.015958218 + - -0.022230351 + - 0.0004441108 + - -0.0023024294 + - -0.033345528 + - 0.03223401 + - -0.0013497 + - -0.014290941 + - 0.0058751646 + - 0.008256988 + - -0.021118835 + - -0.014608517 + - -0.009249415 + - -0.02778794 + - 0.018816406 + - -0.01849883 + - 0.023977023 + - -0.024294598 + - 0.017863676 + - -0.0049422835 + - 0.03223401 + - 0.023818234 + - 0.020801257 + - -0.011432752 + - 0.035727352 + - 0.02334187 + - 0.005597285 + - 0.0020443983 + - -0.025723694 + - 0.032551587 + - 0.015561246 + - -0.013338212 + - -0.00849517 + - 0.0431904 + - -0.014529123 + - -0.0041483426 + - 0.005478194 + - -0.016831553 + - -0.019769134 + - 0.017943071 + - -0.011750329 + - 0.0048827385 + - -0.021436412 + - 0.011670935 + - -0.013020635 + - -0.018022463 + - 0.025406117 + - -0.03874433 + - -0.017784283 + - 0.020007318 + - -0.019769134 + - -0.0036322807 + - -0.018816406 + - -0.0017069735 + - -0.021118835 + - -0.004465919 + - -0.018816406 + - 0.03144007 + - 0.023183083 + - -0.021753987 + - -0.012782453 + - -0.012544271 + - 0.031122493 + - -0.011750329 + - -0.0014985639 + - -0.0031360677 + - 0.005636982 + - -0.030804917 + - 0.020483682 + id: d936be3a-db51-4339-9e6a-4f8cd5f25736 + meta: + api_version: + version: '2' + billed_units: + image_tokens: 0 + input_tokens: 2 + response_type: embeddings_by_type + texts: + - hello + - world + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test_embeddings/TestCohere.test_single.yaml b/tests/cassettes/test_embeddings/TestCohere.test_single.yaml new file mode 100644 index 0000000000..fa516e63d2 --- /dev/null +++ b/tests/cassettes/test_embeddings/TestCohere.test_single.yaml @@ -0,0 +1,1600 @@ +interactions: +- request: + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '103' + content-type: + - application/json + host: + - api.cohere.com + method: POST + parsed_body: + input_type: search_document + model: embed-v4.0 + output_dimension: null + texts: + - Hello, world! + uri: https://api.cohere.com/v2/embed + response: + headers: + access-control-expose-headers: + - X-Debug-Trace-ID + alt-svc: + - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 + cache-control: + - no-cache, no-store, no-transform, must-revalidate, private, max-age=0 + content-length: + - '19454' + content-type: + - application/json + expires: + - Thu, 01 Jan 1970 00:00:00 GMT + num_chars: + - '13' + num_tokens: + - '4' + pragma: + - no-cache + transfer-encoding: + - chunked + vary: + - Origin,Accept-Encoding + parsed_body: + embeddings: + float: + - - -0.016547563 + - 0.026550192 + - 0.0044764862 + - 0.032601167 + - 0.0014509989 + - 0.012040203 + - -0.014263011 + - -0.012101948 + - -0.028279042 + - 0.0109288 + - -0.024080407 + - 0.07557543 + - -0.026179725 + - -0.021734111 + - 0.04741988 + - -0.0218576 + - 0.013892543 + - 0.009940886 + - -0.013398586 + - -0.0026704555 + - -0.00932344 + - 0.005742251 + - -0.012101948 + - -0.0061744633 + - -0.049642686 + - 0.0011191216 + - 0.031366274 + - 0.0031644125 + - 0.021487134 + - 0.00719325 + - -0.024450876 + - 0.0058039958 + - -0.053594343 + - -0.009138206 + - -0.054335278 + - -0.0035348802 + - -0.0085825045 + - 0.0024543493 + - 0.0063905697 + - -0.00426038 + - 0.016547563 + - -0.0154361585 + - 0.018770369 + - -0.0056805066 + - 0.07359961 + - 0.028032064 + - 0.024450876 + - -0.044456135 + - -0.0874304 + - -0.03852865 + - 0.017658966 + - 0.03581189 + - -0.022969004 + - -0.0010033504 + - 0.029637424 + - 0.024697853 + - 0.022351557 + - 0.023092493 + - 0.010434844 + - 0.006915399 + - -0.05260643 + - -3.3766596e-06 + - -0.019264325 + - 0.018893858 + - -0.0051865494 + - 0.00097633706 + - -0.020499218 + - -0.0022845515 + - 0.006050974 + - 0.0058966125 + - -0.019758284 + - 0.009508674 + - 0.00022575381 + - 0.022228068 + - 0.042974267 + - -0.016671052 + - -0.0066684205 + - -0.037787717 + - -0.0075019733 + - 0.012595906 + - 0.017782455 + - 0.015497903 + - 0.021734111 + - -0.008459015 + - -0.021610621 + - 0.0031798487 + - 0.024944833 + - -0.018276412 + - -0.030872317 + - -0.009940886 + - 0.018276412 + - 0.034823973 + - 0.03729376 + - -0.03852865 + - 0.029637424 + - 0.034823973 + - 0.015127435 + - -0.006421442 + - -0.037046783 + - 0.007903313 + - 0.01012612 + - -0.008212036 + - 0.015127435 + - 0.010990545 + - -0.05532319 + - 0.017658966 + - -0.063226506 + - 0.04223333 + - -0.0013506638 + - -0.00027785086 + - 0.013583819 + - -0.020869687 + - -0.0471729 + - -0.054088302 + - -0.013892543 + - -0.038281675 + - 0.019758284 + - 0.02395692 + - -0.0017288497 + - -0.0060818465 + - -0.054829236 + - 0.003210721 + - -0.017165009 + - -0.04248031 + - 0.004198635 + - 0.036305845 + - -0.0018832113 + - 0.0070388885 + - 0.010249609 + - -0.08841832 + - 0.012348927 + - 0.01691803 + - -0.021240154 + - 0.0064831865 + - -0.012904629 + - -0.016547563 + - -0.008212036 + - 0.029884404 + - 0.04766686 + - -0.014263011 + - 0.010743567 + - -0.020869687 + - -0.01864688 + - -0.004846954 + - 0.0013275096 + - 0.000578856 + - -0.0060818465 + - -0.0109288 + - 0.01531267 + - -0.018523391 + - -0.0054644 + - 0.07458752 + - 0.021116665 + - -0.012163693 + - -0.031366274 + - 0.019881772 + - 0.0033650827 + - -0.002037573 + - -0.0038590396 + - -0.013769054 + - 0.026179725 + - 0.03025487 + - 0.05902787 + - 0.031119296 + - -0.00068305 + - 0.012040203 + - -0.041492395 + - -0.037787717 + - -0.019017348 + - -0.012225438 + - 0.007841568 + - 0.014509989 + - 0.0104965875 + - 0.009570419 + - 0.016177094 + - -0.022969004 + - -0.018399902 + - 0.012101948 + - -0.006514059 + - 0.08891227 + - -0.027167639 + - 0.008026803 + - 0.04248031 + - -0.032848146 + - -0.032601167 + - -0.009632163 + - 0.0067919097 + - 0.022228068 + - -0.043221243 + - 0.01012612 + - -0.022475047 + - 0.04198635 + - 0.024203897 + - -0.026797172 + - 0.009755652 + - 0.03383606 + - -0.040751457 + - -0.03210721 + - -0.05087758 + - 0.0014741531 + - 0.03902261 + - 0.040257502 + - -0.031489763 + - -0.02543879 + - -0.02198109 + - -0.0437152 + - -0.040751457 + - -0.008026803 + - -0.027044151 + - 0.009879142 + - 0.009014716 + - 0.0011268395 + - 0.038034696 + - -0.024450876 + - 0.016300583 + - -0.003889912 + - 0.015127435 + - 0.021363644 + - 0.0104965875 + - -0.0005749969 + - 0.014448244 + - 0.03877563 + - 0.02358645 + - 0.003920784 + - -0.014818712 + - -0.024821343 + - 0.012966373 + - -0.002994615 + - -0.0013738181 + - -0.022475047 + - 0.027414618 + - -0.005217422 + - -0.026673682 + - 0.001466435 + - 0.021487134 + - -0.0077489517 + - 0.018770369 + - -0.002994615 + - -0.034330018 + - 0.025068322 + - 0.01679454 + - -0.0022845515 + - 0.002222807 + - -0.024574365 + - 0.02210458 + - -0.02864951 + - 0.04198635 + - 0.006884527 + - -0.049395707 + - 0.009385184 + - 0.027785085 + - -0.0013892542 + - -0.015621393 + - 0.0036429334 + - 0.021734111 + - 0.01704152 + - -0.020375729 + - -0.009076461 + - 0.036552824 + - -8.296935e-05 + - 0.017288499 + - 0.011793225 + - -0.021240154 + - -0.020128751 + - -0.017905945 + - -0.006884527 + - -0.03877563 + - 0.01864688 + - -0.027044151 + - 0.004445614 + - 0.026056236 + - 0.022598537 + - 0.050136644 + - 0.03383606 + - 0.012534161 + - 0.0065758037 + - 0.0063596973 + - 0.0026550193 + - 0.046431966 + - -0.005217422 + - -0.015621393 + - -0.027414618 + - 0.030995807 + - 0.03383606 + - 0.031860232 + - 0.024450876 + - -0.01185497 + - -0.037046783 + - -0.0037509867 + - -0.036305845 + - -0.016547563 + - 0.017905945 + - 0.00080268027 + - 0.03531793 + - -0.0053717834 + - 0.004939571 + - -0.0020067007 + - -0.008273781 + - 0.00087986107 + - -0.00032801836 + - 0.03408304 + - -0.002423477 + - 0.054088302 + - -0.031860232 + - -0.008644249 + - 0.010002631 + - -0.00466172 + - 0.0026550193 + - -0.034330018 + - -0.03926959 + - 0.008767738 + - -0.025809258 + - -3.85904e-05 + - 0.031613253 + - 0.017411986 + - 0.018029433 + - -0.012595906 + - 0.019264325 + - -0.00022093001 + - 0.002546966 + - -0.00426038 + - -0.019881772 + - 0.03877563 + - -0.01691803 + - 0.020375729 + - 0.006421442 + - -0.019140838 + - 0.016671052 + - -0.031366274 + - -0.025685769 + - 0.013275096 + - -0.051371537 + - -0.018523391 + - 0.0070388885 + - -0.03531793 + - -0.009138206 + - -0.025685769 + - 0.022722026 + - 0.03877563 + - 0.011114034 + - 0.0042295074 + - -0.03062534 + - 0.0058039958 + - 0.0051865494 + - 0.0006714729 + - -0.0070697605 + - -0.015806627 + - -0.010249609 + - 0.05087758 + - 0.005557017 + - 0.004569103 + - -0.042727288 + - -0.0028402533 + - -0.024080407 + - 0.017411986 + - 0.020128751 + - -0.01518918 + - 0.0070697605 + - -0.024574365 + - -0.002546966 + - 0.054335278 + - 0.009076461 + - 0.002315424 + - -0.0154361585 + - 0.014571734 + - 0.020375729 + - -0.045197073 + - 0.011114034 + - 0.005834868 + - -0.0078106965 + - 0.006236208 + - 0.04766686 + - -0.0043221246 + - -0.021610621 + - -0.03877563 + - 0.05581715 + - 0.017782455 + - -6.9462716e-05 + - 0.014201266 + - -0.0073476117 + - 0.018029433 + - 0.0054335278 + - -0.015621393 + - 0.0041368906 + - 0.004692592 + - 0.03852865 + - 0.004198635 + - -0.0039053482 + - -0.07804522 + - 0.036305845 + - 0.014324755 + - -0.0039053482 + - 0.024697853 + - -0.07458752 + - 0.00041677628 + - 0.0011499939 + - -0.0017751582 + - -0.011484502 + - 0.041492395 + - 0.010681822 + - -0.02383343 + - -0.038034696 + - -0.0069462713 + - 0.009076461 + - 0.0067919097 + - -0.036552824 + - -0.037046783 + - -0.006822782 + - -0.01691803 + - -0.03210721 + - 0.0027476363 + - -0.025685769 + - -0.027044151 + - 0.021240154 + - 0.004692592 + - 0.00466172 + - 0.036305845 + - -0.027538108 + - -0.00027785086 + - -0.048160814 + - 0.019634794 + - -0.023339473 + - -0.009570419 + - 0.014818712 + - -0.010187864 + - -0.009385184 + - 0.009199951 + - -0.055076215 + - -0.0031952849 + - 0.0437152 + - -0.063226506 + - -0.006822782 + - -0.042974267 + - -0.040751457 + - 0.011114034 + - 0.009940886 + - -0.0066684205 + - 0.0036429334 + - -0.004569103 + - -0.04890175 + - -0.031860232 + - 0.0014355627 + - 0.001659387 + - 0.036305845 + - -0.042727288 + - 0.00839727 + - 0.04248031 + - -0.022228068 + - -0.021116665 + - 0.016300583 + - -0.013645564 + - 0.050383624 + - 0.018029433 + - -0.04766686 + - 0.04890175 + - 0.0048160814 + - 0.009261696 + - -0.019264325 + - 0.036305845 + - -0.008891228 + - 0.020869687 + - 0.026179725 + - -0.0019912645 + - -0.010434844 + - -0.020993175 + - 0.0047852094 + - 0.03556491 + - 0.0053717834 + - 0.010434844 + - 0.01679454 + - 0.04569103 + - -0.009940886 + - -0.012534161 + - -0.046678945 + - -0.029884404 + - -0.024821343 + - -0.026179725 + - -0.021487134 + - -0.010311354 + - -0.008273781 + - 0.008273781 + - 0.090888105 + - -0.018893858 + - 0.04050448 + - -0.01173148 + - 0.0003318774 + - -0.012410671 + - -0.03531793 + - 0.021363644 + - -0.010434844 + - -0.002608711 + - -0.0037818588 + - 0.00034538406 + - 0.0002546966 + - 0.004754337 + - 0.012225438 + - -0.0089529725 + - -0.022722026 + - -0.014571734 + - -0.05087758 + - -0.017905945 + - -0.020375729 + - 0.034576997 + - 0.010620077 + - -0.008335526 + - -0.035070952 + - 0.019017348 + - -0.009138206 + - -0.010249609 + - -0.014756967 + - 0.028896488 + - 0.04198635 + - 0.055076215 + - 0.027291128 + - -0.017411986 + - 0.016177094 + - 0.007779824 + - 0.025809258 + - 0.017905945 + - 0.015003947 + - 0.031119296 + - -0.04420916 + - -0.0010033504 + - -0.027044151 + - -0.04050448 + - 0.010064376 + - 0.0051248046 + - -0.02543879 + - -0.0026858917 + - -0.012595906 + - 0.024821343 + - -0.031119296 + - -0.046184987 + - 0.03951657 + - -0.03926959 + - -0.0060818465 + - -0.005557017 + - -0.04914873 + - -0.037787717 + - -0.044703115 + - 0.015250925 + - 0.058286935 + - -0.019387815 + - -0.022969004 + - 0.07606939 + - 0.00035503166 + - 0.019881772 + - -0.041492395 + - -0.0059583574 + - 0.008335526 + - -0.016424073 + - 0.007872441 + - 0.051124558 + - 0.008767738 + - -0.010311354 + - 0.009879142 + - -0.023339473 + - 0.013089863 + - -0.021363644 + - 0.15806627 + - -0.003889912 + - 0.022228068 + - 0.05557017 + - -0.002917434 + - -0.0010882491 + - 0.020005262 + - -0.0040442734 + - -0.026673682 + - 0.03210721 + - -0.013830798 + - -0.02358645 + - -0.021487134 + - 0.013275096 + - -0.019758284 + - -0.02370994 + - 0.0003029346 + - -0.014448244 + - 0.02383343 + - 0.020869687 + - -0.0057731234 + - 0.029143468 + - 0.02395692 + - 0.021240154 + - -0.036305845 + - -0.004970443 + - -0.029266957 + - -0.01864688 + - 0.0042295074 + - -0.05235945 + - 0.0058966125 + - -0.026426705 + - 0.015621393 + - 0.032354187 + - 0.03531793 + - 0.033342104 + - 0.03729376 + - -0.017535476 + - -0.022475047 + - 0.010002631 + - -0.058533914 + - 0.037046783 + - -0.03556491 + - 0.0056805066 + - -0.005742251 + - -0.019634794 + - -0.013769054 + - -4.3414198e-06 + - 0.010990545 + - 0.045444053 + - 0.050136644 + - 0.026426705 + - -0.014201266 + - 0.012534161 + - -0.004106018 + - -0.013028118 + - 0.037540738 + - -0.0044147414 + - 0.0008451297 + - -0.020993175 + - 0.0033650827 + - -0.012781139 + - 0.0020221367 + - -0.0044764862 + - 0.01864688 + - -0.030995807 + - -0.0022382431 + - 0.041245416 + - 0.012348927 + - 0.002053009 + - -0.008767738 + - -0.036058865 + - 0.013954287 + - 0.006884527 + - 0.027167639 + - 0.006822782 + - 0.008088547 + - 0.019017348 + - -0.0078106965 + - 0.0063905697 + - 0.020869687 + - 0.0135220755 + - 0.010990545 + - -0.0017751582 + - 0.020746198 + - 0.0037355504 + - 6.27094e-05 + - 0.02370994 + - 0.0026241469 + - 0.0027476363 + - 0.009138206 + - 0.025932746 + - 0.017288499 + - -0.037787717 + - 0.0017288497 + - -0.038281675 + - -0.01185497 + - -0.014880457 + - 0.03050185 + - 0.03383606 + - 0.007409356 + - -0.01531267 + - 0.018276412 + - 0.0033650827 + - -0.01185497 + - -0.017658966 + - -0.0218576 + - -0.008644249 + - -0.043221243 + - 0.024203897 + - -0.033095125 + - 0.05532319 + - 0.018029433 + - 0.03581189 + - 0.009076461 + - -0.010311354 + - 0.0014973074 + - -0.01531267 + - 0.031860232 + - -0.0116079915 + - 0.012472416 + - 0.024327386 + - 0.013275096 + - 0.027661595 + - 0.01105229 + - -0.07755126 + - -0.0026550193 + - -0.00018330438 + - -0.018893858 + - -0.019017348 + - 0.027538108 + - 0.00506306 + - -0.0021147537 + - 0.010434844 + - -0.030748827 + - 0.0109288 + - 0.013707309 + - 0.00024890807 + - -0.03902261 + - 0.017535476 + - -0.02383343 + - -0.05260643 + - 0.020993175 + - -0.020005262 + - -0.0071623777 + - 0.010743567 + - 0.075081475 + - 0.023092493 + - -0.020993175 + - 0.01197846 + - -0.023339473 + - 0.024203897 + - -0.031242786 + - -0.0070697605 + - -0.008273781 + - -0.005526145 + - 0.008829483 + - -0.014756967 + - -0.0021610623 + - -0.025809258 + - 0.005217422 + - 0.04223333 + - 0.024327386 + - 0.0071623777 + - -0.01679454 + - -0.024697853 + - 0.004569103 + - -0.013028118 + - 0.002315424 + - 0.044703115 + - 0.0060818465 + - 0.018523391 + - 0.026426705 + - -0.036799803 + - -0.036552824 + - 0.009261696 + - -0.009014716 + - -0.013275096 + - 0.013336841 + - 0.012966373 + - 0.051618516 + - 0.021734111 + - -0.06297953 + - -0.036058865 + - -0.008891228 + - 0.04396218 + - -0.0074402285 + - 0.017782455 + - -0.027414618 + - 0.023092493 + - -0.018770369 + - -0.018152922 + - -0.049642686 + - 0.006606676 + - -0.040010523 + - -0.02346296 + - 0.03926959 + - 0.037787717 + - -0.021734111 + - -0.017658966 + - -0.010373099 + - 0.0019681102 + - 0.06050974 + - 0.0068536545 + - 0.03383606 + - 0.022351557 + - -0.005155677 + - 0.024450876 + - 0.011422757 + - -0.0078106965 + - -0.015621393 + - -0.006884527 + - 6.27094e-05 + - 0.017165009 + - -0.0078106965 + - -0.031860232 + - 0.0839727 + - 0.009138206 + - -0.019511305 + - -0.05557017 + - -0.02198109 + - 0.0218576 + - -0.004630848 + - -0.007965058 + - -0.0004669438 + - -0.010681822 + - 0.021116665 + - 0.012966373 + - -0.015930116 + - 0.00097633706 + - -0.028526021 + - 0.018152922 + - 0.0066684205 + - -0.0029483063 + - -0.024080407 + - 0.012348927 + - -0.032848146 + - -0.0068536545 + - 0.024821343 + - -0.0150656905 + - 0.021610621 + - 0.019017348 + - 0.019017348 + - 0.0150656905 + - 0.016053606 + - -0.012040203 + - -0.0057731234 + - 0.004692592 + - -0.017288499 + - -4.0519917e-05 + - 0.019511305 + - 0.023092493 + - -0.024080407 + - -0.022228068 + - -0.01704152 + - 0.056558084 + - 0.018523391 + - 0.043468222 + - 0.0021147537 + - -0.007656335 + - -0.0005286884 + - 0.0135220755 + - -0.031119296 + - -0.045444053 + - 0.012781139 + - -0.029637424 + - 0.001265765 + - -0.030748827 + - -0.0018137486 + - -0.009940886 + - -0.0020221367 + - -0.0030717957 + - -0.013089863 + - 0.036799803 + - 0.0014895893 + - -0.011422757 + - 0.03729376 + - 0.0052482937 + - -0.036552824 + - 0.00041291726 + - 0.037540738 + - -0.015250925 + - 0.0057113785 + - 0.0077489517 + - -0.01679454 + - 0.034823973 + - 0.005032188 + - -0.010681822 + - -0.016177094 + - -0.011916715 + - 0.03581189 + - -0.0042295074 + - 0.013583819 + - 0.024080407 + - 0.002639583 + - 0.05087758 + - -0.019634794 + - 0.014139521 + - -0.019017348 + - -0.0013583819 + - -0.0135220755 + - -0.028155554 + - -0.0026704555 + - 0.057792976 + - -0.024203897 + - -0.025685769 + - -0.0023926047 + - 0.016671052 + - 0.048654772 + - -0.025068322 + - 0.034576997 + - -0.021487134 + - 0.0218576 + - 0.0017905944 + - -0.014324755 + - 0.013645564 + - -0.0075328453 + - -0.027785085 + - 0.036799803 + - 0.015497903 + - 0.019511305 + - -0.04420916 + - -0.040751457 + - -0.012225438 + - -0.010311354 + - 0.012595906 + - 0.04248031 + - 0.07903314 + - -0.019511305 + - 0.015930116 + - 0.02198109 + - -0.025809258 + - -0.0022999877 + - -0.06767212 + - -0.019017348 + - -0.0028711255 + - 0.081502914 + - -0.0032570295 + - 0.0010265046 + - -0.036799803 + - 0.0011885843 + - 0.01185497 + - 0.040751457 + - 0.0006753319 + - 0.015374414 + - 0.0056187618 + - 0.022475047 + - -0.017782455 + - -0.014695223 + - -0.016177094 + - -0.0075328453 + - 0.0031026679 + - -0.029760914 + - -0.015250925 + - 0.029637424 + - -0.013645564 + - -0.044703115 + - -0.0036738059 + - 0.0069462713 + - 0.02370994 + - -0.011361013 + - -0.0506306 + - -0.02370994 + - -0.04198635 + - -0.041739374 + - 0.035070952 + - 0.018029433 + - 0.0043221246 + - 0.016300583 + - -0.03408304 + - 0.036799803 + - 0.009385184 + - 0.016053606 + - -0.018029433 + - -0.018152922 + - 0.013769054 + - -0.043468222 + - -0.0018369029 + - 0.017535476 + - 0.017782455 + - 0.0029637425 + - 0.022351557 + - 0.074093565 + - -0.015744882 + - -0.048160814 + - 0.015744882 + - 0.016177094 + - 0.00506306 + - 0.0058966125 + - -0.018893858 + - 0.016424073 + - 0.019511305 + - 0.03037836 + - -0.014509989 + - 0.011299268 + - -0.01679454 + - 0.04223333 + - 0.054829236 + - 0.00039748108 + - -0.0025778385 + - -0.03877563 + - 0.029760914 + - 0.024944833 + - 0.02198109 + - -0.005340911 + - 0.027538108 + - -0.012966373 + - -0.013645564 + - 0.0037509867 + - -0.026920661 + - 0.0070388885 + - 0.031119296 + - -0.02198109 + - -0.00852076 + - 0.018276412 + - -0.036552824 + - 0.020869687 + - -0.0085825045 + - 0.0062670805 + - 0.009076461 + - -0.009261696 + - -0.006606676 + - 0.008705993 + - -0.0065449313 + - -0.017905945 + - -0.005526145 + - 0.0034576994 + - 0.021240154 + - -0.01864688 + - 0.0028865617 + - 0.020869687 + - -0.004569103 + - 0.0032879019 + - 0.03729376 + - -0.034330018 + - -0.01679454 + - 0.025932746 + - -0.012101948 + - 0.027044151 + - -0.008273781 + - 0.02864951 + - -0.0023617323 + - -0.020622708 + - 0.008273781 + - -0.0002527671 + - 0.012163693 + - -0.0218576 + - -0.01864688 + - -0.02210458 + - -0.0056805066 + - -0.01173148 + - 0.018770369 + - -0.0050013154 + - -0.01704152 + - 0.008705993 + - 0.0047852094 + - 0.043468222 + - -0.003596625 + - -0.012225438 + - -0.008891228 + - 0.0014355627 + - -0.026550192 + - 0.04050448 + - 0.014016032 + - -0.013460331 + - 0.051124558 + - 0.014880457 + - 0.017658966 + - -0.018770369 + - -0.025932746 + - 0.013336841 + - 0.026797172 + - -0.0061435914 + - -0.009940886 + - -0.017535476 + - 0.021734111 + - -0.02383343 + - -0.020128751 + - -0.010681822 + - 0.01679454 + - -0.028773 + - -0.010002631 + - 0.0025624023 + - -0.05557017 + - -0.00839727 + - 0.017535476 + - -0.046678945 + - 0.00034924308 + - 0.0116079915 + - 0.03581189 + - 0.007903313 + - 0.049642686 + - 0.012225438 + - -0.008026803 + - -0.017658966 + - 0.024697853 + - 0.013769054 + - 0.009693908 + - -0.040257502 + - -0.020622708 + - -0.00048816853 + - 0.01691803 + - -0.0009068743 + - -0.040751457 + - 0.080515005 + - 0.028526021 + - -0.027291128 + - 0.021240154 + - 0.013707309 + - 0.02395692 + - -0.0073784837 + - -0.004075146 + - -0.0066684205 + - 0.009693908 + - -0.05902787 + - -0.0253153 + - -0.049395707 + - -0.006297953 + - -0.036552824 + - -0.03358908 + - 0.03556491 + - 0.020622708 + - 0.0056805066 + - -0.013089863 + - -0.040010523 + - 0.035070952 + - 0.0014201266 + - 0.0135220755 + - -0.022722026 + - -0.0052482937 + - 0.008644249 + - -0.026056236 + - -0.020622708 + - -0.0116079915 + - 0.011916715 + - -0.024450876 + - 0.018399902 + - -0.039763544 + - 0.0005402656 + - 0.036799803 + - -0.0029637425 + - -0.035070952 + - -0.017535476 + - 0.0057731234 + - 0.029513935 + - 0.007409356 + - 0.026426705 + - -0.0218576 + - 0.06569629 + - 0.003118104 + - -0.009755652 + - 0.0028865617 + - -0.004754337 + - -0.01105229 + - -0.008644249 + - -0.017165009 + - -0.013275096 + - 0.0073167393 + - 0.005217422 + - 0.017411986 + - -0.0018446209 + - 0.02346296 + - -0.015621393 + - -0.02864951 + - -0.037787717 + - 0.00426038 + - 0.012842884 + - -0.02358645 + - -0.026550192 + - 0.0135220755 + - 0.0019681102 + - -0.028896488 + - 0.03951657 + - -0.0051248046 + - 0.017165009 + - -0.02383343 + - -0.029390447 + - -0.020128751 + - -0.027908575 + - -0.01173148 + - 0.0030563595 + - 0.011175779 + - 0.017411986 + - 0.056805063 + - 0.031242786 + - -0.020375729 + - 0.010990545 + - -0.07063586 + - 0.014324755 + - -0.01265765 + - 0.0070697605 + - 0.021734111 + - 0.0001466435 + - -0.010620077 + - -0.040010523 + - -0.0057113785 + - 0.024327386 + - 0.051865492 + - -0.0020067007 + - -0.022598537 + - 0.031860232 + - -0.012101948 + - -0.0015204616 + - -0.004754337 + - -0.001651669 + - -0.010743567 + - -0.009940886 + - 0.0012966373 + - 0.02383343 + - 0.03037836 + - -0.017535476 + - 0.038281675 + - 0.005340911 + - -0.018152922 + - 0.0085825045 + - -0.024080407 + - -0.005032188 + - -0.0023926047 + - 0.034576997 + - 0.017658966 + - -0.026797172 + - -0.029884404 + - 0.0029019979 + - -0.009940886 + - 0.0108670555 + - -0.01679454 + - 0.0032724657 + - 0.034823973 + - -0.031489763 + - -0.02025224 + - -0.0109288 + - 0.019140838 + - 0.001659387 + - 0.0060201017 + - -0.021363644 + - 0.030131381 + - 0.017658966 + - 0.0437152 + - 0.007409356 + - 0.004877826 + - -0.03852865 + - -0.028032064 + - 0.00852076 + - 0.010187864 + - 0.0006907681 + - -0.027414618 + - -0.009508674 + - -0.00506306 + - 0.039763544 + - -0.0075328453 + - -0.014324755 + - 0.0055878893 + - -0.007965058 + - -0.05235945 + - 0.0150656905 + - -0.025191812 + - -0.040257502 + - 0.018399902 + - -0.019634794 + - -0.019634794 + - 0.026426705 + - -0.040751457 + - -0.022598537 + - -0.0047852094 + - -0.0150656905 + - -0.025562279 + - -0.018276412 + - 0.0143865 + - 0.01704152 + - 0.019634794 + - 0.01012612 + - 0.019264325 + - -0.00852076 + - 0.008150292 + - 0.0065449313 + - -0.021734111 + - 0.009693908 + - 0.00852076 + - -0.020746198 + - 0.030131381 + - -0.02210458 + - -0.017288499 + - 0.002639583 + - 0.03025487 + - -0.012842884 + - 0.028773 + - -0.012040203 + - -0.029513935 + - -0.0437152 + - 0.09286393 + - -0.011175779 + - -0.0104965875 + - 0.01704152 + - 0.004846954 + - 0.0013892542 + - 0.013275096 + - -0.049642686 + - 0.030748827 + - 0.010434844 + - -0.02025224 + - 0.0010187865 + - 0.049889665 + - -0.027167639 + - 0.0005557017 + - 0.00506306 + - 0.031613253 + - 0.006637548 + - -0.007903313 + - 0.0044764862 + - -0.0007293585 + - 0.019387815 + - 0.016300583 + - 0.010064376 + - -0.005032188 + - -0.030131381 + - -0.024697853 + - 0.0089529725 + - 0.027291128 + - -0.03852865 + - -0.026920661 + - 0.0051865494 + - 0.010249609 + - 0.025809258 + - -0.0006367415 + - 0.008150292 + - 0.012534161 + - -0.013954287 + - 0.007965058 + - -0.036552824 + - 0.009014716 + - -0.033342104 + - 0.006236208 + - -0.009940886 + - 0.004507358 + - 0.012101948 + - 0.020622708 + - -0.0070388885 + - 0.03408304 + - 0.0059583574 + - -0.017165009 + - -0.0017905944 + - -0.009879142 + - -0.035070952 + - 0.024574365 + - -0.041492395 + - 0.0053717834 + - -0.009446929 + - 0.0009145924 + - 0.008891228 + - 0.00033959548 + - -0.020993175 + - 0.03729376 + - -0.02358645 + - 0.0047234646 + - 0.020622708 + - 0.017165009 + - -0.009138206 + - 0.019387815 + - 0.054088302 + - 0.0070388885 + - -0.029019978 + - -0.02210458 + - 0.017288499 + - 0.0054644 + - -0.024450876 + - -0.025068322 + - 0.026179725 + - 0.019140838 + - 0.014324755 + - 0.037787717 + - -0.017535476 + - -0.011422757 + - -0.010311354 + - 0.024327386 + - 0.0085825045 + - -0.014818712 + - -0.024203897 + - -0.0004765914 + - 0.008335526 + - 0.04050448 + - -0.008891228 + - 0.017782455 + - 0.029760914 + - -0.037787717 + - -0.032601167 + - -0.015127435 + - -0.024697853 + - 0.017535476 + - 0.0047234646 + - 0.03383606 + - -0.009570419 + - -0.0031026679 + - -0.006328825 + - 0.05532319 + - 0.02395692 + - -0.029637424 + - 0.017165009 + - 0.04248031 + - 0.08496062 + - -0.018399902 + - 0.004692592 + - 0.014818712 + - 0.021116665 + - 0.005032188 + - -0.009632163 + - -0.02210458 + - -0.011916715 + - -0.029019978 + - 0.07656335 + - -0.008273781 + - 0.0019758283 + - 0.019387815 + - 0.025809258 + - -0.0005672788 + - -0.0035348802 + - 0.0012117384 + - 0.0038590396 + - -0.0014201266 + - -0.036305845 + - -0.031119296 + - 0.001659387 + - -0.040998437 + - -0.03531793 + - -0.0053717834 + - -0.027908575 + - 0.011114034 + - -0.036058865 + - 0.00083355256 + - 0.009199951 + - 0.016300583 + - -0.007471101 + - 0.008767738 + - -0.02395692 + - -0.006884527 + - -0.0012271747 + - 0.012040203 + - 0.032601167 + - -0.027044151 + - -0.041245416 + - -0.053841323 + - 0.012287183 + - -0.032354187 + - 0.008273781 + - -0.03383606 + - -0.0064831865 + - -0.037787717 + - 0.031489763 + - 0.04223333 + - 0.015683137 + - -0.032601167 + - 0.013707309 + - 0.017782455 + - -0.022228068 + - -0.005834868 + - -0.013089863 + - -0.016671052 + - 0.029143468 + - -0.023092493 + - 0.064708374 + - -0.00598923 + - -0.013398586 + - 0.005742251 + - -0.034823973 + - 0.0005904331 + - -0.009693908 + - 0.011793225 + - 0.019264325 + - 0.023339473 + - -0.0154361585 + - -0.0026858917 + - 0.0044764862 + - -0.05557017 + - 0.042974267 + - 0.020622708 + - -0.02025224 + - 0.032601167 + - -0.0022999877 + - 0.021240154 + - -0.03383606 + - -0.015250925 + - 0.01265765 + - 0.014942202 + - 0.020005262 + - 0.017658966 + - 0.010681822 + - 0.012163693 + - 0.023215983 + - -0.012348927 + - -0.024450876 + - 0.003920784 + - 0.034330018 + - 0.03358908 + - -0.027908575 + - -0.014818712 + - 0.024080407 + - -0.017288499 + - 0.056805063 + - 0.03383606 + - -0.021487134 + - 0.08199687 + - 0.01864688 + - 0.0062053357 + - -0.018523391 + - -0.010434844 + - 0.0025006577 + - 0.007841568 + - 0.01265765 + - -0.016177094 + - -0.013028118 + - 0.0028402533 + - -0.016424073 + - 0.0061435914 + - -0.03408304 + - 0.01864688 + - -0.020993175 + - 0.00069848617 + - 0.027044151 + - -0.00932344 + - 0.00932344 + - -0.010249609 + - 0.016671052 + - -0.012534161 + - -0.0066684205 + - -0.015003947 + - -0.011299268 + - -0.032354187 + - -0.004970443 + - -0.03852865 + - 0.054582257 + - 0.025191812 + - 0.008212036 + - -0.013460331 + - 0.016177094 + - -0.0037818588 + - -0.005557017 + - 0.005834868 + - -0.03408304 + - 0.029637424 + - -0.0011036854 + - 0.03025487 + - -0.015683137 + - 0.06767212 + - -0.0061435914 + - -0.012842884 + - 0.010373099 + - 0.012348927 + - 0.015127435 + - 0.049395707 + - 0.017535476 + - 0.009755652 + - -0.0065449313 + - 0.03902261 + - -0.0027939447 + - 0.0008374116 + - -0.009693908 + - 0.0014973074 + - -0.0006560367 + - -0.005649634 + - 0.022228068 + - -0.0024543493 + - 0.0026241469 + - -0.010620077 + - 0.0112375235 + - -0.006050974 + - -0.0065758037 + - 0.006236208 + - 0.017411986 + - -0.043221243 + - 0.009014716 + - -0.032601167 + - -0.06125068 + - -0.0218576 + - 0.033095125 + - 0.004569103 + - 0.034823973 + - -0.03408304 + - 0.0052482937 + id: f81ce2ff-ce24-41ca-ac6c-d102cf1ddcc1 + meta: + api_version: + version: '2' + billed_units: + image_tokens: 0 + input_tokens: 4 + response_type: embeddings_by_type + texts: + - Hello, world! + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test_embeddings/TestOpenAI.test_bulk.yaml b/tests/cassettes/test_embeddings/TestOpenAI.test_bulk.yaml new file mode 100644 index 0000000000..f8b2a94457 --- /dev/null +++ b/tests/cassettes/test_embeddings/TestOpenAI.test_bulk.yaml @@ -0,0 +1,68 @@ +interactions: +- request: + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '87' + content-type: + - application/json + host: + - api.openai.com + method: POST + parsed_body: + encoding_format: base64 + input: + - hello + - world + model: text-embedding-3-small + uri: https://api.openai.com/v1/embeddings + response: + headers: + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + connection: + - keep-alive + content-length: + - '16688' + content-type: + - application/json + openai-model: + - text-embedding-3-small + openai-organization: + - pydantic-28gund + openai-processing-ms: + - '125' + openai-project: + - proj_dKobscVY9YJxeEaDJen54e3d + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + parsed_body: + data: + - embedding: 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 + index: 0 + object: embedding + - embedding: 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 + index: 1 + object: embedding + model: text-embedding-3-small + object: list + usage: + prompt_tokens: 2 + total_tokens: 2 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test_embeddings/TestOpenAI.test_single.yaml b/tests/cassettes/test_embeddings/TestOpenAI.test_single.yaml new file mode 100644 index 0000000000..7a4fa7f90f --- /dev/null +++ b/tests/cassettes/test_embeddings/TestOpenAI.test_single.yaml @@ -0,0 +1,64 @@ +interactions: +- request: + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '87' + content-type: + - application/json + host: + - api.openai.com + method: POST + parsed_body: + encoding_format: base64 + input: + - Hello, world! + model: text-embedding-3-small + uri: https://api.openai.com/v1/embeddings + response: + headers: + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + connection: + - keep-alive + content-length: + - '8414' + content-type: + - application/json + openai-model: + - text-embedding-3-small + openai-organization: + - pydantic-28gund + openai-processing-ms: + - '85' + openai-project: + - proj_dKobscVY9YJxeEaDJen54e3d + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + parsed_body: + data: + - embedding: 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 + index: 0 + object: embedding + model: text-embedding-3-small + object: list + usage: + prompt_tokens: 4 + total_tokens: 4 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_embeddings.py b/tests/test_embeddings.py new file mode 100644 index 0000000000..bb0d335158 --- /dev/null +++ b/tests/test_embeddings.py @@ -0,0 +1,92 @@ +import os +from unittest.mock import patch + +import pytest +from dirty_equals import IsList + +from pydantic_ai.embeddings import Embedder, infer_model + +from .conftest import try_import + +pytestmark = [ + pytest.mark.anyio, + pytest.mark.vcr, +] + +with try_import() as openai_imports_successful: + from pydantic_ai.embeddings.openai import OpenAIEmbeddingModel + from pydantic_ai.providers.openai import OpenAIProvider + +with try_import() as cohere_imports_successful: + from pydantic_ai.embeddings.cohere import CohereEmbeddingModel + from pydantic_ai.providers.cohere import CohereProvider + + +@pytest.mark.skipif(not openai_imports_successful, reason='OpenAI not installed') +class TestOpenAI: + async def test_infer_model(self, openai_api_key: str): + with patch.dict(os.environ, {'OPENAI_API_KEY': openai_api_key}): + model = infer_model('openai:text-embedding-3-small') + assert isinstance(model, OpenAIEmbeddingModel) + assert model.model_name == 'text-embedding-3-small' + assert model.system == 'openai' + assert model.base_url == 'https://api.openai.com/v1/' + + async def test_infer_model_azure(self, openai_api_key: str): + with patch.dict( + os.environ, + { + 'AZURE_OPENAI_API_KEY': 'azure-openai-api-key', + 'AZURE_OPENAI_ENDPOINT': 'https://project-id.openai.azure.com/', + 'OPENAI_API_VERSION': '2023-03-15-preview', + }, + ): + model = infer_model('azure:text-embedding-3-small') + assert isinstance(model, OpenAIEmbeddingModel) + assert model.model_name == 'text-embedding-3-small' + assert model.system == 'azure' + assert 'azure.com' in model.base_url + + async def test_single(self, openai_api_key: str): + model = OpenAIEmbeddingModel('text-embedding-3-small', provider=OpenAIProvider(api_key=openai_api_key)) + embedder = Embedder(model) + embeddings = await embedder.embed('Hello, world!') + assert embeddings == IsList(-0.019143931567668915, -0.025292053818702698, -0.0017211713129654527, length=1536) + + async def test_bulk(self, openai_api_key: str): + model = OpenAIEmbeddingModel('text-embedding-3-small', provider=OpenAIProvider(api_key=openai_api_key)) + embedder = Embedder(model) + embeddings = await embedder.embed(['hello', 'world']) + assert embeddings == IsList( + IsList(0.016751619055867195, -0.055799614638090134, 0.005647437181323767, length=1536), + IsList(-0.010633519850671291, -0.03604777529835701, 0.03019288368523121, length=1536), + length=2, + ) + + +@pytest.mark.skipif(not cohere_imports_successful, reason='Cohere not installed') +class TestCohere: + async def test_infer_model(self, co_api_key: str): + with patch.dict(os.environ, {'CO_API_KEY': co_api_key}): + model = infer_model('cohere:embed-v4.0') + assert isinstance(model, CohereEmbeddingModel) + assert model.model_name == 'embed-v4.0' + assert model.system == 'cohere' + assert model.base_url == 'https://api.cohere.com' + assert isinstance(model._provider, CohereProvider) # type: ignore[reportAttributeAccess] + + async def test_single(self, co_api_key: str): + model = CohereEmbeddingModel('embed-v4.0', provider=CohereProvider(api_key=co_api_key)) + embedder = Embedder(model) + embeddings = await embedder.embed('Hello, world!') + assert embeddings == IsList(-0.016547563, 0.026550192, 0.0044764862, length=1536) + + async def test_bulk(self, co_api_key: str): + model = CohereEmbeddingModel('embed-v4.0', provider=CohereProvider(api_key=co_api_key)) + embedder = Embedder(model) + embeddings = await embedder.embed(['hello', 'world']) + assert embeddings == IsList( + IsList(0.015943069, 0.013248466, 0.0024139155, length=1536), + IsList(-0.0060736495, -0.015005487, 0.00033246286, length=1536), + length=2, + )