Viaje AI

Viaje AI / voyage-code-2

Modelo de incrustación de texto de Voyage AI optimizado para la recuperación de códigos (un 17% mejor que las alternativas).

Introducción a voyage-code-2

voyage-code-2 es el modelo de incrustación de texto de Voyage AI optimizado para la recuperación de códigos (un 17% mejor que las alternativas).

Comparación de voyage-code-2 con otros modelos de incrustación populares de Voyage AI:

Modelo Longitud del contexto (tokens) Dimensión de incrustación Descripción
Voyage-large-2-instruct 16000 1024 Top of MTEB leaderboard. Modelo de incrustación de propósito general ajustado a las instrucciones y optimizado para agrupación, clasificación y recuperación.
voyage-multilingual-2320001024Optimizado para recuperación multilingüe y RAG.
voyage-code-2160001536Optimizado para la recuperación de códigos (un 17% mejor que las alternativas).
voyage-large-2160001536Modelo de incrustación de uso general optimizado para la calidad de la recuperación (por ejemplo, mejor que OpenAI V3 Large).
voyage-240001024Modelo de incrustación de uso general optimizado para equilibrar el coste, la latencia y la calidad de recuperación.

Cómo crear incrustaciones con voyage-code-2

Hay dos formas principales de crear incrustaciones vectoriales:

  1. PyMilvus: el SDK de Python para Milvus que integra perfectamente el modelo voyage-code-2.
  2. Voyage AI Embedding: el SDK de Python ofrecido por Voyage AI.

Una vez generadas las incrustaciones vectoriales, pueden almacenarse en Zilliz Cloud (un servicio de base de datos vectorial totalmente gestionado e impulsado por Milvus) y utilizarse para la búsqueda de similitud semántica. He aquí cuatro pasos clave:

  1. Registrarse para obtener una cuenta de Zilliz Cloud de forma gratuita.
  2. Configura un clúster sin servidor y obtén el Public Endpoint and API Key.
  3. Crea una colección de vectores e inserta tus incrustaciones vectoriales.
  4. Ejecuta una búsqueda semántica en las incrustaciones almacenadas.

Generar incrustaciones vectoriales a través de PyMilvus e insertarlas en Zilliz Cloud para la búsqueda semántica.

from pymilvus import modelo, MilvusClient

ef = model.dense.VoyageEmbeddingFunction(
   model_name="voyage-code-2",
   api_key="tu-voyage-api-key",
   )

# Generar incrustaciones para documentos
documentos = [
    "retriever = KNNRetriever.from_texts(documents, embeddings)",
    "knn = KNeighborsClassifier(n_neighbors=3)",
    "sorted_numbers = sorted(numbers)",
    "def programación_dinámica(): print('si')",
    "documentos_embds = get_embeddings(documentos)",
    "response = client.embeddings.create(input = documentos, model='text-embedding-ada-002')"
]

docs_embeddings = ef.encode_documents(docs)

# Generar incrustaciones para consultas
queries = ["¿Está la función programación_dinámica() implementada usando programación dinámica?"]

query_embeddings = ef.encode_queries(queries)

# Conectar a Zilliz Cloud con el punto final público y la clave API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLECCIÓN = "documentos"
if client.has_collection(nombre_coleccion=COLECCION):
    client.drop_collection(nombre_coleccion=COLECCION)
client.create_collection(
    nombre_colección=COLECCIÓN,
    dimensión=ef.dim,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"texto": doc, "vector": incrustación})
    
resultados = client.search(
    nombre_colección=COLECCIÓN,
    datos=consulta_incrustaciones,
    consistency_level="Strong",
    output_fields=["text"])

Para más información, consulte nuestra Documentación sobre el modelo de incrustación de PyMilvus.

Generar incrustaciones vectoriales a través de Voyage AI 's Python SDK e insertarlas en Zilliz Cloud para la búsqueda semántica.

import voyageai
from pymilvus import MilvusClient

vo = voyageai.Client(api_key="tu-voyage-api-key")

# Generar incrustaciones para documentos
docs = [
    "retriever = KNNRetriever.from_texts(documents, embeddings)",
    "knn = KNeighborsClassifier(n_neighbors=3)",
    "sorted_numbers = sorted(numbers)",
    "def programación_dinámica(): print('si')",
    "documentos_embds = get_embeddings(documentos)",
    "response = client.embeddings.create(input = documentos, model='text-embedding-ada-002')"
]

docs_embeddings = vo.embed(docs, model="voyage-code-2", input_type="document").embeddings

# Generar incrustaciones para consultas
queries = ["¿Está la función programación_dinámica() implementada usando programación dinámica?"]

query_embeddings = vo.embed(queries, model="voyage-code-2", input_type="query").embeddings

# Conectarse a Zilliz Cloud con el punto final público y la clave API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLECCIÓN = "documentos"
if client.has_collection(nombre_coleccion=COLECCION):
    client.drop_collection(nombre_coleccion=COLECCION)
client.create_collection(
    nombre_colección=COLECCIÓN,
    dimensión=1536,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"texto": doc, "vector": incrustación})
    
resultados = client.search(
    nombre_colección=COLECCIÓN,
    datos=consulta_incrustaciones,
    consistency_level="Strong",
    output_fields=["text"])

Para más información, consulte Voyage AI Embedding Guide.