Cohere
Los modelos de incrustación de Cohere se utilizan para generar incrustaciones de texto, que son listas de números en coma flotante que capturan información semántica sobre el texto. Estas incrustaciones pueden utilizarse para tareas como la clasificación de textos y la búsqueda semántica.
Milvus se integra con los modelos de incrustación de Cohere utilizando la clase CohereEmbeddingFunction
. Esta clase gestiona el cálculo de las incrustaciones y las devuelve en un formato compatible con Milvus para la indexación y la búsqueda.
Para utilizar esta función, instale las dependencias necesarias:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
A continuación, instancie la clase CohereEmbeddingFunction
:
from pymilvus.model.dense import CohereEmbeddingFunction
cohere_ef = CohereEmbeddingFunction(
model_name="embed-english-light-v3.0",
api_key="YOUR_COHERE_API_KEY",
input_type="search_document",
embedding_types=["float"]
)
Parámetros:
model_name
(cadena)El nombre del modelo de incrustación Cohere a utilizar para la codificación. Puede especificar cualquiera de los nombres de modelo de incrustación Cohere disponibles, por ejemplo,
embed-english-v3.0
,embed-multilingual-v3.0
, etc. Si deja este parámetro sin especificar, se utilizaráembed-english-light-v3.0
. Para obtener una lista de los modelos disponibles, consulte Embed.api_key
(cadena)La clave de API para acceder a la API de Cohere.
input_type
(cadena)El tipo de entrada que se pasa al modelo. Requerido para incrustar modelos v3 y superiores.
"search_document"
: Utilizado para incrustaciones almacenadas en una base de datos vectorial para casos de uso de búsqueda."search_query"
: Se utiliza para incrustaciones de consultas de búsqueda ejecutadas en una base de datos vectorial para encontrar documentos relevantes."classification"
: Se utiliza para incrustaciones pasadas por un clasificador de texto."clustering"
: Utilizado para las incrustaciones pasadas por un algoritmo de clustering.
embedding_types
(Lista[str])El tipo de incrustaciones que desea obtener. No es necesario y por defecto es None, que devuelve el tipo de respuesta Embed Floats. Actualmente, sólo se puede especificar un único valor para este parámetro. Valores posibles:
"float"
: Utilícelo si desea obtener las incrustaciones flotantes predeterminadas. Válido para todos los modelos."binary"
: Utilícelo si desea recuperar las incrustaciones binarias firmadas. Válido sólo para los modelos v3."ubinary"
: Utilícelo si desea obtener incrustaciones binarias sin signo. Válido sólo para modelos v3.
Para crear incrustaciones de 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 = cohere_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", cohere_ef.dim, docs_embeddings[0].shape)
El resultado esperado es similar al siguiente:
Embeddings: [array([ 3.43322754e-02, 1.16252899e-03, -5.25207520e-02, 1.32846832e-03,
-6.80541992e-02, 6.10961914e-02, -7.06176758e-02, 1.48925781e-01,
1.54174805e-01, 1.98516846e-02, 2.43835449e-02, 3.55224609e-02,
1.82952881e-02, 7.57446289e-02, -2.40783691e-02, 4.40063477e-02,
...
0.06359863, -0.01971436, -0.02253723, 0.00354195, 0.00222015,
0.00184727, 0.03408813, -0.00777817, 0.04919434, 0.01519775,
-0.02862549, 0.04760742, -0.07891846, 0.0124054 ], dtype=float32)]
Dim: 384 (384,)
Para crear incrustaciones para consultas, utilice el método encode_queries()
:
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = cohere_ef.encode_queries(queries)
print("Embeddings:", query_embeddings)
print("Dim", cohere_ef.dim, query_embeddings[0].shape)
El resultado esperado es similar al siguiente:
Embeddings: [array([-1.33361816e-02, 9.79423523e-04, -7.28759766e-02, -1.93786621e-02,
-9.71679688e-02, 4.34875488e-02, -9.81445312e-02, 1.16882324e-01,
5.89904785e-02, -4.19921875e-02, 4.95910645e-02, 5.83496094e-02,
3.47595215e-02, -5.87463379e-03, -7.30514526e-03, 2.92816162e-02,
...
0.00749969, -0.01192474, 0.02719116, 0.03347778, 0.07696533,
0.01409149, 0.00964355, -0.01681519, -0.0073204 , 0.00043154,
-0.04577637, 0.03591919, -0.02807617, -0.04812622], dtype=float32)]
Dim 384 (384,)