IA de viagem

IA de viagem / voyage-code-2

Modelo de incorporação de texto da Voyage AI optimizado para recuperação de código (17% melhor do que as alternativas).

Introdução ao voyage-code-2

O voyage-code-2 é o modelo de incorporação de texto da Voyage AI optimizado para a recuperação de códigos (17% melhor do que as alternativas).

Comparando o voyage-code-2 com outros modelos de incorporação populares do Voyage AI:

ModeloComprimento do contexto (tokens)Dimensão de incorporaçãoDescrição
voyage-large-2-instruct160001024Topo da tabela de classificação do MTEB. Modelo de incorporação de uso geral ajustado por instrução otimizado para agrupamento, classificação e recuperação.
voyage-multilingual-2320001024Optimizado para recuperação multilingue e RAG.
voyage-code-2160001536Otimizado para recuperação de código (17% melhor que as alternativas).
voyage-large-2160001536Modelo de incorporação de uso geral que é optimizado para a qualidade da recuperação (por exemplo, melhor do que o OpenAI V3 Large).
voyage-240001024Modelo de incorporação de uso geral otimizado para equilibrar o custo, a latência e a qualidade da recuperação.

Como criar embeddings com o voyage-code-2

Existem duas formas principais de criar embeddings vectoriais:

  1. PyMilvus: o Python SDK para Milvus que integra perfeitamente o modelo voyage-code-2.
  2. Voyage AI Embedding: o SDK Python oferecido pela Voyage AI.

Uma vez gerados os embeddings vectoriais, estes podem ser armazenados em Zilliz Cloud (um serviço de base de dados vetorial totalmente gerido por Milvus) e utilizados para pesquisa de similaridade semântica. Eis quatro passos fundamentais:

  1. Inscrever-se para obter uma conta Zilliz Cloud gratuitamente.
  2. Configurar um cluster sem servidor e obter o Ponto de extremidade público e chave de API.
  3. Crie uma coleção de vectores e insira os seus embeddings vectoriais.
  4. Execute uma pesquisa semântica nos embeddings armazenados.

Gerar embeddings vectoriais através do PyMilvus e inseri-los no Zilliz Cloud para pesquisa semântica

from pymilvus import model, MilvusClient

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

# Gerar embeddings para documentos
docs = [
    "retriever = KNNRetriever.from_texts(documents, embeddings)",
    "knn = KNeighborsClassifier(n_neighbors=3)",
    "sorted_numbers = sorted(numbers)",
    "def dynamic_programming(): print('yes')",
    "documentos_embds = get_embeddings(documentos)",
    "response = client.embeddings.create(input = documents, model='text-embedding-ada-002')"
]

docs_embeddings = ef.encode_documents(docs)

# Gerar embeddings para consultas
consultas = ["A função dynamic_programming() é implementada utilizando programação dinâmica?"]

consultas_embeddings = ef.encode_queries(queries)

# Ligar ao Zilliz Cloud com o ponto final público e a chave API
cliente = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents" (coleção)
if client.has_collection(nome_da_colecção=COLLECTION):
    client.drop_collection(nome_da_colecção=COLLECTION)
client.create_collection(
    nome_da_colecção=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vetor": embedding})
    
resultados = cliente.search(
    nome_da_colecção=COLLECTION,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Para mais informações, consulte a nossa PyMilvus Embedding Model documentation.

Gerar embeddings vectoriais através do Python SDK da Voyage AI e inseri-los no Zilliz Cloud para pesquisa semântica

import voyageai
from pymilvus import MilvusClient

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

# Gerar embeddings para documentos
docs = [
    "retriever = KNNRetriever.from_texts(documents, embeddings)",
    "knn = KNeighborsClassifier(n_neighbors=3)",
    "sorted_numbers = sorted(numbers)",
    "def dynamic_programming(): print('yes')",
    "documentos_embds = get_embeddings(documentos)",
    "response = client.embeddings.create(input = documents, model='text-embedding-ada-002')"
]

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

# Gerar embeddings para consultas
consultas = ["A função dynamic_programming() é implementada utilizando programação dinâmica?"]

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

# Ligar ao Zilliz Cloud com o ponto final público e a chave API
cliente = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents" (coleção)
if client.has_collection(nome_da_colecção=COLLECTION):
    client.drop_collection(nome_da_colecção=COLLECTION)
client.create_collection(
    nome_da_colecção=COLLECTION,
    dimension=1536,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vetor": embedding})
    
resultados = cliente.search(
    nome_da_colecção=COLLECTION,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Para obter mais informações, consulte Voyage AI Embedding Guide.