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 modelo | Dimensões |
|---|---|
| gemini-embedding-exp-03-07 | 3072(default),1536,768 |
| models/embedding-001 | 768 |
| modelos/embedding-texto-004 | 768 |
| Tipo de tarefa | Descrição da tarefa |
|---|---|
| SEMANTIC_SIMILARITY | Utilizado para gerar embeddings que são optimizados para avaliar a semelhança de texto. |
| CLASSIFICAÇÃO | Utilizada para gerar embeddings que são optimizados para classificar textos de acordo com etiquetas predefinidas. |
| CLUSTERING | Utilizado para gerar embeddings que são optimizados para agrupar textos com base nas suas semelhanças. |
| RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING e FACT_VERIFICATION | Utilizado para gerar embeddings optimizados para pesquisa de documentos ou recuperação de informação. |
| CONSULTA_DE_RECUPERAÇÃO_DE_CÓDIGO | Utilizado 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,)