Gemini
Milvus se integra con los modelos de Gemini a través de la clase GeminiEmbeddingFunction. Esta clase proporciona métodos para codificar documentos y consultas utilizando los modelos Gemini preentrenados y devolviendo las incrustaciones como vectores densos compatibles con la indexación Milvus. Para utilizar esta funcionalidad, obtenga una clave API de Gemini creando una cuenta en su plataforma.
Para utilizar esta función, instale las dependencias necesarias:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
A continuación, instancie 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:
nombre_modelo(cadena)
El nombre del modelo Gemini a utilizar para la codificación. Las opciones válidas son gemini-embedding-exp-03-07(por defecto), models/embedding-001, y models/text-embedding-004.
api_key(cadena)
La clave API para acceder a la API de Gemini.
config(types.EmbedContentConfig) Configuración opcional para el modelo de incrustación.
- Se puede especificar output_dimensionality para el número de incrustaciones de salida resultantes.
- El tipo_tarea puede especificarse para generar incrustaciones optimizadas para tareas específicas, ahorrando tiempo y costes y mejorando el rendimiento. Sólo se admite en el modelo gemini-embedding-exp-03-07.
| Nombre del modelo | Dimensiones |
|---|---|
| gemini-embedding-exp-03-07 | 3072(default),1536,768 |
| modelos/embedding-001 | 768 |
| modelos/incrustación-texto-004 | 768 |
| Tipo de tarea | Descripción |
|---|---|
| SIMILITUD_SEMÁNTICA | Se utiliza para generar incrustaciones optimizadas para evaluar la similitud textual. |
| CLASIFICACIÓN | Se utiliza para generar incrustaciones optimizadas para clasificar textos según etiquetas preestablecidas. |
| CLUSTERING | Permite generar incrustaciones optimizadas para agrupar textos en función de sus similitudes. |
| RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING y FACT_VERIFICATION | Se utilizan para generar incrustaciones optimizadas para la búsqueda de documentos o la recuperación de información. |
| CONSULTA_RECUPERACIÓN_CÓDIGO | Se utiliza para recuperar un bloque de código a partir de una consulta en lenguaje natural, como ordenar una matriz o invertir una lista enlazada. Las incrustaciones de los bloques de código se calculan con RETRIEVAL_DOCUMENT. |
Para crear incrustaciones para documentos, utilice el 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)
El resultado esperado es similar al siguiente:
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 crear incrustaciones para consultas, utilice el 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)
El resultado esperado es similar al siguiente:
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,)