Gemini

Milvus si integra con i modelli Gemini attraverso la classe GeminiEmbeddingFunction. Questa classe fornisce metodi per codificare documenti e query utilizzando i modelli Gemini preaddestrati e restituendo le incorporazioni come vettori densi compatibili con l'indicizzazione di Milvus. Per utilizzare questa funzionalità, è necessario ottenere una chiave API da Gemini 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 GeminiEmbeddingFunction:

from pymilvus import model

gemini_ef = model.dense.GeminiEmbeddingFunction(
    model_name='gemini-embedding-exp-03-07', # Specify the model name
    api_key='YOUR_API_KEY', # Provide your OpenAI API key
)

Parametri:

  • nome_modello(stringa)

    Il nome del modello Gemini da usare per la codifica. Le opzioni valide sono gemini-embedding-exp-03-07(predefinito), models/embedding-001 e models/text-embedding-004.

  • api_key(stringa)

    La chiave API per accedere all'API Gemini.

  • config(types.EmbedContentConfig) Configurazione opzionale per il modello di incorporamento.

    • L'output_dimensionality può essere specificato per il numero di embeddings di output risultanti.
    • Il task_type può essere specificato per generare embeddings ottimizzati per compiti specifici, risparmiando tempo e costi e migliorando le prestazioni. Supportato solo nel modello gemini-embedding-exp-03-07.
Nome del modelloDimensioni
gemini-embedding-exp-03-073072(default),1536,768
modelli/embedding-001768
modelli/incorporazione testo-004768
Tipo di attivitàDescrizione
SOMIGLIANZA_SEMANTICAUtilizzato per generare incorporazioni ottimizzate per valutare la somiglianza del testo.
CLASSIFICAZIONEServe a generare incorporazioni ottimizzate per classificare i testi in base a etichette predefinite.
CLUSTERINGServe a generare embeddings ottimizzati per clusterizzare i testi in base alle loro somiglianze.
RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING e FACT_VERIFICATIONUtilizzati per generare embeddings ottimizzati per la ricerca di documenti o il recupero di informazioni.
DOMANDA_DI_RECUPERO_DI_CODICESi usa per recuperare un blocco di codice in base a una query in linguaggio naturale, come ordinare un array o invertire un elenco collegato. Gli embeddings dei blocchi di codice vengono calcolati con RETRIEVAL_DOCUMENT.

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 = gemini_ef.encode_documents(docs)

# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", gemini_ef.dim, docs_embeddings[0].shape)

Il risultato atteso è simile al seguente:

Embeddings: [array([-0.00894029,  0.00573813,  0.013351  , ..., -0.00042766,
       -0.00603091, -0.00341043], shape=(3072,)), array([ 0.00222347,  0.03725113,  0.01152256, ...,  0.01047272,
       -0.01701597,  0.00565377], shape=(3072,)), array([ 0.00661134,  0.00232328, -0.01342973, ..., -0.00514429,
       -0.02374139, -0.00701721], shape=(3072,))]
Dim: 3072 (3072,)

Per creare embeddings per le query, utilizzare il metodo encode_queries():

queries = ["When was artificial intelligence founded", 
           "Where was Alan Turing born?"]

query_embeddings = gemini_ef.encode_queries(queries)

# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim", gemini_ef.dim, query_embeddings[0].shape)

Il risultato atteso è simile al seguente:

Embeddings: [array([-0.02066572,  0.02459551,  0.00707774, ...,  0.00259341,
       -0.01797572, -0.00626168], shape=(3072,)), array([ 0.00674969,  0.03023903,  0.01230692, ...,  0.00160009,
       -0.01710967,  0.00972728], shape=(3072,))]
Dim 3072 (3072,)
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?