Gemini

Milvus интегрируется с моделями Gemini с помощью класса GeminiEmbeddingFunction. Этот класс предоставляет методы для кодирования документов и запросов с помощью предварительно обученных моделей Gemini и возвращает вкрапления в виде плотных векторов, совместимых с индексацией Milvus. Чтобы воспользоваться этой функцией, получите API-ключ от Gemini, создав учетную запись на их платформе.

Чтобы воспользоваться этой функцией, установите необходимые зависимости:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

Затем инстанцируйте 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
)

Параметры:

  • имя_модели(строка)

    Имя модели Gemini, которую следует использовать для кодирования. Возможные варианты: gemini-embedding-exp-03-07(по умолчанию), models/embedding-001 и models/text-embedding-004.

  • api_key(строка)

    API-ключ для доступа к Gemini API.

  • config(types.EmbedContentConfig) Необязательная конфигурация для модели встраивания.

    • Выходная_размерность может быть указана как количество результирующих выходных вкраплений.
    • Тип_задачи может быть указан для создания оптимизированных эмбеддингов для конкретных задач, что позволяет сэкономить время и средства и повысить производительность. Поддерживается только в модели gemini-embedding-exp-03-07.
Название моделиРазмеры
gemini-embedding-exp-03-073072(default),1536,768
models/embedding-001768
models/text-embedding-004768
Тип задачиОписание
СЕМАНТИЧЕСКОЕ_СХОДСТВОИспользуется для генерации вкраплений, оптимизированных для оценки сходства текста.
КЛАССИФИКАЦИЯИспользуется для генерации вкраплений, оптимизированных для классификации текстов в соответствии с заданными метками.
КЛАСТЕРИНГИспользуется для создания вкраплений, оптимизированных для кластеризации текстов на основе их сходства.
ВОЗВРАТ_ДОКУМЕНТА, ВОЗВРАТ_ВОПРОСА, ВОПРОС_НЕЗАДАВШИЙСЯ и ФАКТ_ВЕРИФИКАЦИЯИспользуются для генерации вкраплений, оптимизированных для поиска документов или информации.
ЗАПРОС_ПОИСКА_КОДАИспользуется для получения блока кода на основе запроса на естественном языке, например, для сортировки массива или разворота связанного списка. Вкрапления кодовых блоков вычисляются с помощью RETRIEVAL_DOCUMENT.

Для создания вкраплений для документов используйте метод 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)

Ожидаемый результат будет похож на следующий:

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,)

Для создания вкраплений для запросов используйте метод 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)

Ожидаемый результат похож на следующий:

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,)
Содержание

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?