OpenAI
Milvus lässt sich über die Klasse OpenAIEmbeddingFunction mit den Modellen von OpenAI integrieren. Diese Klasse bietet Methoden zur Kodierung von Dokumenten und Abfragen unter Verwendung der trainierten OpenAI-Modelle und gibt die Einbettungen als dichte Vektoren zurück, die mit der Milvus-Indizierung kompatibel sind. Um diese Funktionalität zu nutzen, erhalten Sie einen API-Schlüssel von OpenAI, indem Sie ein Konto auf deren Plattform erstellen.
Um diese Funktion zu nutzen, installieren Sie die erforderlichen Abhängigkeiten:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Dann instanziieren Sie die OpenAIEmbeddingFunction:
from pymilvus import model
openai_ef = model.dense.OpenAIEmbeddingFunction(
model_name='text-embedding-3-large', # Specify the model name
api_key='YOUR_API_KEY', # Provide your OpenAI API key
dimensions=512 # Set the embedding dimensionality
)
Parameter:
model_name(string)
Der Name des OpenAI-Modells, das für die Kodierung verwendet werden soll. Gültige Optionen sind text-embedding-3-small, text-embedding-3-large, und text-embedding-ada-002 (Standard).
api_key(Zeichenkette)
Der API-Schlüssel für den Zugriff auf die OpenAI-API.
dimensions(int)
Die Anzahl der Dimensionen, die die resultierenden Ausgabeeinbettungen haben sollen. Wird nur in text-embedding-3 und späteren Modellen unterstützt.
Um Einbettungen für Dokumente zu erstellen, verwenden Sie die Methode encode_documents():
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
docs_embeddings = openai_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", openai_ef.dim, docs_embeddings[0].shape)
Die erwartete Ausgabe ist ähnlich wie die folgende:
Embeddings: [array([ 1.76741909e-02, -2.04964578e-02, -1.09788161e-02, -5.27223349e-02,
4.23139781e-02, -6.64533582e-03, 4.21088142e-03, 1.04644023e-01,
5.10009527e-02, 5.32827862e-02, -3.26061808e-02, -3.66494283e-02,
...
-8.93232748e-02, 6.68255147e-03, 3.55093405e-02, -5.09071983e-02,
3.74144339e-03, 4.72541340e-02, 2.11916920e-02, 1.00753829e-02,
-5.76633997e-02, 9.68257990e-03, 4.62721288e-02, -4.33261096e-02])]
Dim: 512 (512,)
Um Einbettungen für Abfragen zu erstellen, verwenden Sie die Methode encode_queries():
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = openai_ef.encode_queries(queries)
# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim", openai_ef.dim, query_embeddings[0].shape)
Die erwartete Ausgabe ist ähnlich wie die folgende:
Embeddings: [array([ 0.00530251, -0.01907905, -0.01672608, -0.05030033, 0.01635982,
-0.03169853, -0.0033602 , 0.09047844, 0.00030747, 0.11853652,
-0.02870182, -0.01526102, 0.05505067, 0.00993909, -0.07165466,
...
-9.78106782e-02, -2.22669560e-02, 1.21873049e-02, -4.83198799e-02,
5.32377362e-02, -1.90469325e-02, 5.62430918e-02, 1.02650477e-02,
-6.21757433e-02, 7.88027793e-02, 4.91846527e-04, -1.51633881e-02])]
Dim 512 (512,)