|
import os |
|
from typing import Literal |
|
|
|
import pytest |
|
|
|
from openai import OpenAI |
|
from openai.types import CreateEmbeddingResponse |
|
|
|
|
|
@pytest.fixture |
|
def client(): |
|
return OpenAI( |
|
base_url=os.environ.get("HFENDPOINTS_BASE_URL", "http://localhost:8000/api/v1/"), |
|
api_key=os.environ.get("HFENDPOINTS_API_KEY", os.environ.get("HF_TOKEN", "hf_notdefined")), |
|
organization="hfendpoints-images", |
|
) |
|
|
|
|
|
@pytest.mark.parametrize("encoding_format", ["float", "base64"]) |
|
def test_openai_embedding_single(client, encoding_format: Literal["float", "base64"]): |
|
response: CreateEmbeddingResponse = client.embeddings.create( |
|
input="Hello, how are you?", |
|
model="all-MiniLM-L6-v2", |
|
encoding_format=encoding_format, |
|
) |
|
|
|
assert len(response.model) |
|
|
|
assert response.object == "list" |
|
assert len(response.data) == 1 |
|
|
|
assert response.data[0].object == "embedding" |
|
assert len(response.data[0].embedding) == 384 |
|
|
|
|
|
@pytest.mark.parametrize("encoding_format", ["float", "base64"]) |
|
def test_openai_embedding_batch(client, encoding_format: Literal["float", "base64"]): |
|
response: CreateEmbeddingResponse = client.embeddings.create( |
|
input=["Hello, how are you?", "How are you?"], |
|
model="all-MiniLM-L6-v2", |
|
encoding_format=encoding_format, |
|
) |
|
|
|
assert len(response.model) |
|
|
|
assert response.object == "list" |
|
assert len(response.data) == 2 |
|
|
|
assert response.data[0].object == "embedding" |
|
assert len(response.data[0].embedding) == 384 |
|
|
|
assert response.data[1].object == "embedding" |
|
assert len(response.data[1].embedding) == 384 |