Generowanie embeddingów za pomocą text-embedding-3
Użyj OpenAI text-embedding-3-small/large, aby przekształcać ciągi znaków w wektory o 1536 lub 3072 wymiarach.
Generowanie embeddingów za pomocą text-embedding-3 to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Modele embeddingów OpenAI
OpenAI oferuje dwa produkcyjne modele embeddingów:
- text-embedding-3-small — 1536 wymiarów, tani i szybki
- text-embedding-3-large — 3072 wymiary, lepsza jakość i mniejsza szybkość
W większości przypadków używaj wersji small; wersję large wybieraj tylko wtedy, gdy jakość jest ważniejsza niż koszt.
Pierwszy embedding
Jedna linia kodu SDK:
from openai import OpenAI
client = OpenAI()
resp = client.embeddings.create(
model='text-embedding-3-small',
input='Hello, world!'
)
vector = resp.data[0].embedding
print(len(vector)) # 1536Generowanie embeddingów partiami
API obsługuje listy, co jest znacznie szybsze niż wywoływanie go pojedynczo:
texts = ['cat', 'dog', 'pizza', 'sushi']
resp = client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
vectors = [d.embedding for d in resp.data]
# vectors[0] is for 'cat', vectors[1] for 'dog', etc.Limity tokenów
Każde dane wejściowe mają maksymalny limit tokenów (8192 dla text-embedding-3). Długie dokumenty trzeba najpierw podzielić na fragmenty.
Zmniejszanie liczby wymiarów
Możesz poprosić o mniejszą liczbę wymiarów (embeddingi Matryoshka), co jest przydatne przy przechowywaniu danych:
resp = client.embeddings.create(
model='text-embedding-3-large',
input='Hello',
dimensions=512 # default would be 3072
)Koszt
W chwili pisania tego tekstu:
- text-embedding-3-small: 0,02 USD / 1 mln tokenów
- text-embedding-3-large: 0,13 USD / 1 mln tokenów
Wygenerowanie embeddingów dla 1 mln słów kosztuje około 0,025 USD w przypadku modelu small — praktycznie nic.
Jednorazowe tworzenie embeddingów, ponowne użycie bez końca
Embeddingi nie zmieniają się przy ponownym osadzaniu — możesz obliczyć je raz i przechowywać. Buforowanie jest niezbędne w każdym systemie produkcyjnym.
Normalizowanie wektorów
Embeddingi OpenAI są już znormalizowane w normie L2 (długość = 1). Oznacza to, że podobieństwo cosinusowe = iloczyn skalarny, co zmniejsza ilość obliczeń:
import numpy as np
a = np.array(vec_a)
b = np.array(vec_b)
sim = np.dot(a, b) # since |a| = |b| = 1Asynchroniczne generowanie embeddingów
Aby uzyskać dużą przepustowość, użyj klienta asynchronicznego:
from openai import AsyncOpenAI
import asyncio
client = AsyncOpenAI()
async def embed_batch(texts):
resp = await client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
return [d.embedding for d in resp.data]
vectors = asyncio.run(embed_batch(['a', 'b', 'c']))Ponawianie po błędzie
Wywołania generujące embeddingi zawodzą tak jak każde wywołanie HTTP. Owiń je mechanizmem ponawiania z narastającym opóźnieniem:
from tenacity import retry, wait_exponential, stop_after_attempt
@retry(wait=wait_exponential(multiplier=1, max=10), stop=stop_after_attempt(5))
def safe_embed(text):
return client.embeddings.create(model='text-embedding-3-small', input=text)Przechowywanie embeddingów
Trzy typowe opcje przechowywania:
- SQLite z rozszerzeniem
sqlite-vec - Postgres z rozszerzeniem
pgvector - Dedykowana wektorowa baza danych (Pinecone, Qdrant, Weaviate)
Świadomość kosztów
Ile w przybliżeniu kosztuje wygenerowanie embeddingów dla 1 miliona słów za pomocą text-embedding-3-small?
Podsumowanie
Wybierz text-embedding-3-small, wywołuj API partiami, przechowuj wektory i zyskujesz fundament wyszukiwania semantycznego.
Często zadawane pytania
Czy lekcja „Generowanie embeddingów za pomocą text-embedding-3” jest bezpłatna?
Tak — pełny tekst „Generowanie embeddingów za pomocą text-embedding-3” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Generowanie embeddingów za pomocą text-embedding-3”?
Użyj OpenAI text-embedding-3-small/large, aby przekształcać ciągi znaków w wektory o 1536 lub 3072 wymiarach. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Generowanie embeddingów za pomocą text-embedding-3”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Czym są embeddingi (reprezentacje wektorowe)
- Generowanie embeddingów za pomocą text-embedding-3
- Podobieństwo cosinusowe w wyszukiwaniu
- Porównanie modeli embeddingów (OpenAI vs Cohere vs OSS)