46.6kЗаказать демоВойтиНачать бесплатно
Вояж ИИ

Вояж ИИ / voyage-code-2

Модель встраивания текста Voyage AI оптимизирована для поиска кода (на 17 % лучше, чем альтернативные варианты).

Введение в voyage-code-2

voyage-code-2 - это модель встраивания текста от Voyage AI, оптимизированная для поиска кодов (на 17% лучше, чем альтернативные варианты).

Сравнение voyage-code-2 с другими популярными моделями встраивания от Voyage AI:

МодельМодельДлина контекста (токены)Размер встраиванияОписание
voyage-large-2-instruct160001024Top of MTEB leaderboard. Настроенная на инструкции модель встраивания общего назначения, оптимизированная для кластеризации, классификации и поиска.
voyage-multilingual-2320001024Оптимизирована для многоязычного поиска и RAG.
voyage-code-2160001536Оптимизирован для поиска кодов (на 17% лучше, чем альтернативы).
voyage-large-2160001536Модель встраивания общего назначения, оптимизированная для качества поиска (например, лучше, чем OpenAI V3 Large).
voyage-240001024Универсальная модель встраивания, оптимизированная для баланса стоимости, задержки и качества поиска.

Как создавать вкрапления с помощью voyage-code-2

Существует два основных способа создания векторных вкраплений:

  1. PyMilvus: Python SDK для Milvus, в который легко интегрируется модель voyage-code-2.
  2. Voyage AI Embedding: Python SDK, предлагаемый Voyage AI.

После того как векторные вкрапления сгенерированы, их можно хранить в Zilliz Cloud (полностью управляемый сервис векторных баз данных на базе Milvus) и использовать для поиска семантического сходства. Вот четыре ключевых шага:

  1. Зарегистрируйтесь для получения бесплатной учетной записи Zilliz Cloud.
  2. Создайте бессерверный кластер и получите Публичную конечную точку и ключ API.
  3. Создайте коллекцию векторов и вставьте в нее свои векторные вкрапления.
  4. Запустите семантический поиск по сохраненным вкраплениям.

Генерировать векторные вкрапления с помощью PyMilvus и вставлять их в Zilliz Cloud для семантического поиска

из pymilvus import model, MilvusClient

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

# Генерируем вкрапления для документов
документы = [
    "retriever = KNNRetriever.from_texts(documents, embeddings)",
    "knn = KNeighborsClassifier(n_neighbors=3)",
    "sorted_numbers = sorted(numbers)",
    "def dynamic_programming(): print('yes')",
    "documents_embds = get_embeddings(documents)",
    "response = client.embeddings.create(input = documents, model='text-embedding-ada-002')"
]

docs_embeddings = ef.encode_documents(docs)

# Генерируем вкрапления для запросов
queries = ["Реализована ли функция dynamic_programming() с помощью динамического программирования?"]

query_embeddings = ef.encode_queries(queries)

# Подключение к облаку Zilliz с помощью публичной конечной точки и ключа API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

КОЛЛЕКЦИЯ = "документы"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    имя_коллекции=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

для doc, embedding в zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    имя_коллекции=КОЛЛЕКЦИЯ,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Для получения дополнительной информации обратитесь к нашей документации PyMilvus Embedding Model.

Генерировать векторные вкрапления с помощью Voyage AI 's Python SDK и вставлять их в Zilliz Cloud для семантического поиска

import voyageai
from pymilvus import MilvusClient

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

# Генерируем вкрапления для документов
документы = [
    "retriever = KNNRetriever.from_texts(documents, embeddings)",
    "knn = KNeighborsClassifier(n_neighbors=3)",
    "sorted_numbers = sorted(numbers)",
    "def dynamic_programming(): print('yes')",
    "documents_embds = get_embeddings(documents)",
    "response = client.embeddings.create(input = documents, model='text-embedding-ada-002')"
]

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

# Генерируем вкрапления для запросов
queries = ["Реализована ли функция dynamic_programming() с помощью динамического программирования?"]

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

# Подключение к облаку Zilliz с помощью публичной конечной точки и ключа API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

КОЛЛЕКЦИЯ = "документы"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    имя_коллекции=COLLECTION,
    dimension=1536,
    auto_id=True)

для doc, embedding в zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    имя_коллекции=КОЛЛЕКЦИЯ,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Для получения дополнительной информации обратитесь к Voyage AI Embedding Guide.