Embeddings und RAG
Die Embedding API wandelt Text in Vektordarstellungen um, die semantische Bedeutung erfassen. Verwenden Sie Embeddings für semantische Suche, Clustering und RAG-Anwendungen.
Was Sie lernen werden:
- Wie Sie Embeddings aus Text generieren
- Verfügbare Embedding-Modelle und ihre Anwendungsfälle
- Wie Sie Embeddings für semantische Suche und RAG verwenden
Grundlegende Verwendung
Abschnitt betitelt „Grundlegende Verwendung“curl -X POST "$OPENAI_BASE_URL /embeddings" \ -H "Authorization: Bearer $OPENAI_API_KEY " \ -H "Content-Type: application/json" \ -d '{ "model": "jina-embeddings-v2-base-de", "input": ["The quick brown fox jumps over the lazy dog", "Data science is fun!"] }' from openai import OpenAI
client = OpenAI()
texts = [ "I am Batman and I'm rich", "I am Spiderman", "I am Ironman and I'm a billionaire", "I am Flash", "I am the president of USA",]
embeddings = client.embeddings.create( input=texts, model="jina-embeddings-v2-base-de" )
print( "Embedding dimension:" , len(embeddings.data[ 0].embedding)) print( "Number of vectors:" , len(embeddings.data)) print( "Token usage:" , embeddings.usage) Beispielausgabe:
Embedding dimension: 768Number of vectors: 5Token usage: Usage(prompt_tokens=41, total_tokens=41) import OpenAI from "openai";
const client = new OpenAI();
const result = await client.embeddings. create ({ model: "jina-embeddings-v2-base-de" , input: ["The quick brown fox jumps over the lazy dog", "Data science is fun!"],});
console.log ( "Embedding dimension:" , result.data[ 0].embedding. length );console.log ( "Token usage:" , result.usage); Beispiele für Embedding-Modelle
Abschnitt betitelt „Beispiele für Embedding-Modelle“| Modell (Beispiel) | Dimensionen | Sprachen | Anwendungsfall |
|---|---|---|---|
jina- | 768 | Deutsch & Englisch | Deutschsprachiges RAG |
text- | 1024 | Mehrsprachig | Sprachübergreifende Suche |
Jedes Modell liefert Vektoren mit den Dimensionen aus der Tabelle Beispiele für Embedding-Modelle.
Vektorisieren Sie eine Textstelle und senden Sie sie zusammen mit der Frage an ein Chat-Modell. Beide Aufrufe nutzen denselben Client.
Minimales Beispiel
Abschnitt betitelt „Minimales Beispiel“text- und gpt- laufen beide auf T Cloud. BGE-M3 hat ein Kontextfenster von 8K.
import math
from openai import OpenAI
client = OpenAI()
passages = ["T Cloud models in this catalog run in Germany." ]query = "Where do T Cloud models run?"
embedded = client.embeddings.create( input=passages + [query], model="text-embedding-bge-m3" )passage_vecs = [item.embedding for item in embedded.data[: - 1 ]]query_vec = embedded.data[ -1 ].embedding
def cos(a, b): return sum(x *y for x, y in zip(a, b)) / (math.sqrt( sum(x *x for x in a)) * math.sqrt( sum(y *y for y in b)))best = max( range( len(passages)), key=lambda i: cos(query_vec, passage_vecs[i])) context = passages[best] print( "vectors:" , len(embedded.data))
response = client.chat.completions.create( model="gpt-oss-120b" , messages=[ {"role": "system", "content": "Answer only from the passage." }, {"role": "user", "content": f"Passage:\n{ context}\n\n Question: {query}" }, ],)print(response.choices[ 0].message.content) BGE-M3 liefert 1024-dimensionale Vektoren. Jina Embeddings v2 Base DE liefert 768. Die Chat-Antwort steht in choices.
Parameter
Abschnitt betitelt „Parameter“Embeddings nehmen model und input. Chat nimmt model und messages.
Grenzen und Fehlersuche
Abschnitt betitelt „Grenzen und Fehlersuche“Qwen3 Embedding 8B läuft ebenfalls auf T Cloud, mit einem Kontextfenster von 32K.
Für Diagramme und Scans OCR verwenden.