Gemini

O Milvus integra-se com os modelos do Gemini através da classe GeminiEmbeddingFunction. Esta classe fornece métodos para codificar documentos e consultas utilizando os modelos Gemini pré-treinados e devolvendo os embeddings como vectores densos compatíveis com a indexação Milvus. Para utilizar esta funcionalidade, obtenha uma chave de API do Gemini criando uma conta na sua plataforma.

Para utilizar esta funcionalidade, instale as dependências necessárias:

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

Em seguida, instancie a 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
)

Parâmetros:

  • nome_do_modelo(string)

    O nome do modelo Gemini a ser usado para codificação. As opções válidas são gemini-embedding-exp-03-07(padrão), models/embedding-001 e models/text-embedding-004.

  • api_key(string)

    A chave da API para acessar a API do Gemini.

  • config(types.EmbedContentConfig) Configuração opcional para o modelo de incorporação.

    • O output_dimensionality pode ser especificado para o número de embeddings de saída resultantes.
    • O task_type pode ser especificado para gerar embeddings optimizados para tarefas específicas, poupando tempo e custos e melhorando o desempenho. Suportado apenas no modelo gemini-embedding-exp-03-07.
Nome do modeloDimensões
gemini-embedding-exp-03-073072(default),1536,768
models/embedding-001768
modelos/embedding-texto-004768
Tipo de tarefaDescrição da tarefa
SEMANTIC_SIMILARITYUtilizado para gerar embeddings que são optimizados para avaliar a semelhança de texto.
CLASSIFICAÇÃOUtilizada para gerar embeddings que são optimizados para classificar textos de acordo com etiquetas predefinidas.
CLUSTERINGUtilizado para gerar embeddings que são optimizados para agrupar textos com base nas suas semelhanças.
RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING e FACT_VERIFICATIONUtilizado para gerar embeddings optimizados para pesquisa de documentos ou recuperação de informação.
CONSULTA_DE_RECUPERAÇÃO_DE_CÓDIGOUtilizado para recuperar um bloco de código com base numa consulta de linguagem natural, como ordenar uma matriz ou inverter uma lista ligada. Os embeddings dos blocos de código são computados usando RETRIEVAL_DOCUMENT.

Para criar embeddings para documentos, use o método 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)

O resultado esperado é semelhante ao seguinte:

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

Para criar embeddings para consultas, utilize o método 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)

O resultado esperado é semelhante ao seguinte:

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,)
Tabela de conteúdos

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?