Python 88.3%
TypeScript 7.6%
Shell 4.1%
1"""Cheap smoke tests for POST /v1/embeddings (always run; total cost < $0.00001)."""2from __future__ import annotations34import base645import math6import struct78import pytest910PRICE = {"text-embedding-3-small": 0.02, "text-embedding-3-large": 0.13, "text-embedding-ada-002": 0.10}11NATIVE_DIMS = {"text-embedding-3-small": 1536, "text-embedding-3-large": 3072, "text-embedding-ada-002": 1536}121314@pytest.mark.parametrize("model", list(NATIVE_DIMS))15def test_embedding_shape_and_norm(openai, model):16 st, body, _ = openai("POST", "/v1/embeddings", {"model": model, "input": "OK"},17 est_cost_usd=PRICE[model] * 2 / 1e6, note=f"test_embeddings {model}")18 assert st == 200, body19 assert body["object"] == "list" and body["data"][0]["object"] == "embedding" and body["data"][0]["index"] == 020 vec = body["data"][0]["embedding"]21 assert len(vec) == NATIVE_DIMS[model]22 assert abs(math.sqrt(sum(x * x for x in vec)) - 1.0) < 1e-3, "embeddings are documented as unit-length"23 assert body["usage"]["prompt_tokens"] >= 1 and body["usage"]["total_tokens"] == body["usage"]["prompt_tokens"]242526def test_dimensions_and_base64(openai):27 st, body, _ = openai("POST", "/v1/embeddings", {"model": "text-embedding-3-small", "input": "OK", "dimensions": 16,28 "encoding_format": "base64"}, est_cost_usd=1e-7, note="test dims=16 base64")29 assert st == 200, body30 raw = base64.b64decode(body["data"][0]["embedding"])31 assert len(raw) == 16 * 432 floats = struct.unpack("<16f", raw)33 assert abs(math.sqrt(sum(x * x for x in floats)) - 1.0) < 1e-3, "shortened vectors are re-normalized"343536def test_dimensions_rejected_on_ada(openai):37 st, body, _ = openai("POST", "/v1/embeddings", {"model": "text-embedding-ada-002", "input": "OK", "dimensions": 16},38 note="test dimensions on ada-002 (expect 400)")39 assert st == 40040 assert body["error"]["type"] == "invalid_request_error"41 assert "dimensions" in body["error"]["message"]424344def test_array_input_preserves_order(openai):45 st, body, _ = openai("POST", "/v1/embeddings", {"model": "text-embedding-3-small", "input": ["OK", "Reply with OK."], "dimensions": 8},46 est_cost_usd=2e-7, note="test array input")47 assert st == 200, body48 assert [d["index"] for d in body["data"]] == [0, 1]49 assert all(len(d["embedding"]) == 8 for d in body["data"])50