milvus-logo
LFAI
Casa
  • Modelli

OpenAI

Milvus si integra con i modelli di OpenAI tramite la classe OpenAIEmbeddingFunction. Questa classe fornisce metodi per codificare documenti e query utilizzando i modelli OpenAI preaddestrati e restituendo le incorporazioni come vettori densi compatibili con l'indicizzazione di Milvus. Per utilizzare questa funzionalità, è necessario ottenere una chiave API da OpenAI creando un account sulla sua piattaforma.

Per utilizzare questa funzione, installare le dipendenze necessarie:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

Quindi, istanziare la 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
)

Parametri:

  • nome_modello(stringa)

    Il nome del modello OpenAI da utilizzare per la codifica. Le opzioni valide sono text-embedding-3-small, text-embedding-3-large e text-embedding-ada-002 (predefinito).

  • api_key(stringa)

    La chiave API per accedere all'API OpenAI.

  • dimensioni(int)

    Il numero di dimensioni che deve avere l'embedding di output risultante. Supportato solo nei modelli text-embedding-3 e successivi.

Per creare embeddings per i documenti, utilizzare il metodo 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)

L'output previsto è simile al seguente:

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,)

Per creare embeddings per le query, utilizzare il metodo 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)

Il risultato atteso è simile al seguente:

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,)

Tradotto daDeepL

Tabella dei contenuti

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?