1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
# ------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
import pytest
import openai
from devtools_testutils import AzureRecordedTestCase
from conftest import configure_async, AZURE, OPENAI, PREVIEW, GA
@pytest.mark.live_test_only
class TestEmbeddingsAsync(AzureRecordedTestCase):
@configure_async
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(AZURE, GA), (AZURE, PREVIEW), (OPENAI, "v1")]
)
async def test_embedding(self, client_async, api_type, api_version, **kwargs):
embedding = await client_async.embeddings.create(input="hello world", **kwargs)
assert embedding.object == "list"
assert embedding.model
assert embedding.usage.prompt_tokens is not None
assert embedding.usage.total_tokens is not None
assert len(embedding.data) == 1
assert embedding.data[0].object == "embedding"
assert embedding.data[0].index is not None
assert len(embedding.data[0].embedding) > 0
@configure_async
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(AZURE, GA), (AZURE, PREVIEW), (OPENAI, "v1")]
)
async def test_embedding_batched(self, client_async, api_type, api_version, **kwargs):
embedding = await client_async.embeddings.create(input=["hello world", "second input"], **kwargs)
assert embedding.object == "list"
assert embedding.model
assert embedding.usage.prompt_tokens is not None
assert embedding.usage.total_tokens is not None
assert len(embedding.data) == 2
assert embedding.data[0].object == "embedding"
assert embedding.data[0].index is not None
assert len(embedding.data[0].embedding) > 0
@configure_async
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(AZURE, GA), (AZURE, PREVIEW), (OPENAI, "v1")]
)
async def test_embedding_user(self, client_async, api_type, api_version, **kwargs):
embedding = await client_async.embeddings.create(input="hello world", user="krista", **kwargs)
assert embedding.object == "list"
assert embedding.model
assert embedding.usage.prompt_tokens is not None
assert embedding.usage.total_tokens is not None
assert len(embedding.data) == 1
assert embedding.data[0].object == "embedding"
assert embedding.data[0].index is not None
assert len(embedding.data[0].embedding) > 0
@configure_async
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(AZURE, PREVIEW), (AZURE, GA), (OPENAI, "v1")]
)
async def test_embedding_dimensions(self, client_async, api_type, api_version, **kwargs):
embedding = await client_async.embeddings.create(input="hello world", dimensions=1, model="text-embedding-3-small")
assert embedding.object == "list"
assert embedding.model
assert embedding.usage.prompt_tokens is not None
assert embedding.usage.total_tokens is not None
assert len(embedding.data) == 1
assert embedding.data[0].object == "embedding"
assert embedding.data[0].index is not None
assert len(embedding.data[0].embedding) > 0
@configure_async
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(AZURE, PREVIEW), (AZURE, GA), (OPENAI, "v1")]
)
async def test_embedding_encoding_format(self, client_async, api_type, api_version, **kwargs):
embedding = await client_async.embeddings.create(input="hello world", encoding_format="base64", model="text-embedding-3-small")
assert embedding.object == "list"
assert embedding.model
assert embedding.usage.prompt_tokens is not None
assert embedding.usage.total_tokens is not None
assert len(embedding.data) > 0
|