Gemini

Milvus s'intègre aux modèles de Gemini via la classe GeminiEmbeddingFunction. Cette classe fournit des méthodes pour encoder les documents et les requêtes à l'aide des modèles Gemini pré-entraînés et pour renvoyer les embeddings sous forme de vecteurs denses compatibles avec l'indexation Milvus. Pour utiliser cette fonctionnalité, obtenez une clé API de Gemini en créant un compte sur leur plateforme.

Pour utiliser cette fonctionnalité, installez les dépendances nécessaires :

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

Ensuite, instanciez la fonction 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
)

Paramètres:

  • nom_modèle(chaîne)

    Le nom du modèle Gemini à utiliser pour l'encodage. Les options valides sont gemini-embedding-exp-03-07(par défaut), models/embedding-001, et models/text-embedding-004.

  • api_key(chaîne)

    La clé API pour accéder à l'API Gemini.

  • config(types.EmbedContentConfig) Configuration optionnelle pour le modèle d'intégration.

    • Le paramètre output_dimensionality peut être spécifié pour le nombre d'embeddings résultants.
    • Le type de tâche (task_type) peut être spécifié pour générer des enchâssements optimisés pour des tâches spécifiques, ce qui permet de gagner du temps et de l'argent et d'améliorer les performances. Pris en charge uniquement dans le modèle gemini-embedding-exp-03-07.
Nom du modèleDimensions
gemini-embedding-exp-03-073072(default),1536,768
modèles/embedding-001768
models/text-embedding-004768
Type de tâcheDescription de la tâche
SIMILARITÉ_SÉMANTIQUEUtilisé pour générer des embeddings optimisés pour évaluer la similarité des textes.
CLASSIFICATIONPermet de générer des embeddings optimisés pour classer les textes en fonction d'étiquettes prédéfinies.
CLUSTERINGPermet de générer des embeddings optimisés pour regrouper des textes en fonction de leurs similarités.
RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING et FACT_VERIFICATIONUtilisés pour générer des embeddings optimisés pour la recherche de documents ou d'informations.
CODE_RETRIEVAL_QUERYUtilisé pour récupérer un bloc de code basé sur une requête en langage naturel, telle que trier un tableau ou inverser une liste chaînée. Les embeddings des blocs de code sont calculés à l'aide de RETRIEVAL_DOCUMENT.

Pour créer des embeddings pour les documents, utilisez la méthode 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)

Le résultat attendu est similaire à ce qui suit :

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

Pour créer des embeddings pour les requêtes, utilisez la méthode 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)

Le résultat attendu est similaire à ce qui suit :

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,)
Table de contenu

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?