Начало работы с Mirascope: удаление семантических дубликатов с помощью LLM

Mirascope — это мощная и удобная библиотека, которая предоставляет единый интерфейс для работы с различными поставщиками больших языковых моделей (LLM), включая OpenAI, Anthropic, Mistral, Google (Gemini и Vertex AI), Groq, Cohere, LiteLLM, Azure AI и Amazon Bedrock. Она упрощает всё: от генерации текста и извлечения структурированных данных до создания сложных рабочих процессов на базе ИИ и агентских систем.

В этом руководстве мы сосредоточимся на использовании интеграции Mirascope с OpenAI для выявления и удаления семантических дубликатов (записей, которые могут отличаться по формулировке, но имеют одинаковое значение) из списка отзывов клиентов.

Установка зависимостей

`pip install “mirascope[openai]”`

Ключ OpenAI

Чтобы получить ключ API OpenAI, посетите https://platform.openai.com/settings/organization/api-keys и сгенерируйте новый ключ. Если вы новый пользователь, вам может потребоваться добавить платёжные данные и совершить минимальный платёж в размере 5 долларов для активации доступа к API.

`import os`
`from getpass import getpass`
`os.environ[‘OPENAIAPIKEY’] = getpass(‘Enter OpenAI API Key: ‘)`

Определение списка отзывов клиентов

`customer_reviews = [`
`”Sound quality is amazing!”,`
`”Audio is crystal clear and very immersive.”,`
`”Incredible sound, especially the bass response.”,`
`”Battery doesn’t last as advertised.”,`
`”Needs charging too often.”,`
`”Battery drains quickly — not ideal for travel.”,`
`”Setup was super easy and straightforward.”,`
`”Very user-friendly, even for my parents.”,`
`”Simple interface and smooth experience.”,`
`”Feels cheap and plasticky.”,`
`”Build quality could be better.”,`
`”Broke within the first week of use.”,`
`”People say they can’t hear me during calls.”,`
`”Mic quality is terrible on Zoom meetings.”,`
`”Great product for the price!”`
`]`

Эти отзывы отражают основные настроения клиентов: похвалы качеству звука и простоте использования, жалобы на время работы от батареи, качество сборки и проблемы со звонками/качеством микрофона, а также положительную оценку соотношения цены и качества. Они отражают общие темы, встречающиеся в реальных отзывах пользователей.

Определение Pydantic схемы

Эта модель Pydantic определяет структуру для ответа задачи семантической дедупликации отзывов клиентов. Эта схема помогает структурировать и проверять выходные данные языковой модели, которой поручено кластеризовать или дедуплицировать входные данные на естественном языке (например, отзывы пользователей, отчёты об ошибках, обзоры продуктов).

`from pydantic import BaseModel, Field`

`class DeduplicatedReviews(BaseModel):`
` duplicates: list[list[str]] = Field(`
` …, description=”A list of semantically equivalent customer review groups”`
` )`
` reviews: list[str] = Field(`
` …, description=”The deduplicated list of core customer feedback themes”`
` )`

Определение Mirascope `@openai.call` для семантической дедупликации

Этот код определяет функцию семантической дедупликации с помощью декоратора `@openai.call` от Mirascope, который обеспечивает бесшовную интеграцию с моделью OpenAI gpt-4o. Функция `deduplicatecustomerreviews` принимает список отзывов клиентов и использует структурированный запрос — определённый декоратором `@prompt_template` — чтобы направить LLM на выявление и группировку семантически похожих отзывов.

Система сообщений инструктирует модель анализировать смысл, тон и намерения каждого отзыва, группируя те, которые передают одну и ту же обратную связь, даже если они сформулированы по-разному. Функция ожидает структурированного ответа, соответствующего модели Pydantic `DeduplicatedReviews`, которая включает два выходных параметра: список уникальных, дедуплицированных отзывов и список сгруппированных дубликатов.

`from mirascope.core import openai, prompt_template`

`@openai.call(model=”gpt-4o”, response_model=DeduplicatedReviews)`
`@prompt_template(“
“””
SYSTEM:
You are an AI assistant helping to analyze customer reviews.
Your task is to group semantically similar reviews together — even if they are worded differently.

– Use your understanding of meaning, tone, and implication to group duplicates.
– Return two lists:
1. A deduplicated list of the key distinct review sentiments.
2. A list of grouped duplicates that share the same underlying feedback.

USER:
{reviews}
“””
)`
`def deduplicatecustomerreviews(reviews: list[str]): …`

Следующий код выполняет функцию `deduplicatecustomerreviews` с использованием списка отзывов клиентов и выводит структурированный результат. Сначала он вызывает функцию и сохраняет результат в переменной `response`. Чтобы убедиться, что выходные данные модели соответствуют ожидаемому формату, используется оператор `assert`, чтобы проверить, что `response` является экземпляром модели Pydantic `DeduplicatedReviews`.

`response = deduplicatecustomerreviews(customer_reviews)`

`# Ensure response format`
`assert isinstance(response, DeduplicatedReviews)`

`# Print Output`
`print(” Distinct Customer Feedback:”)`
`for item in response.reviews:`
` print(“-“, item)`

`print(“n Grouped Duplicates:”)`
`for group in response.duplicates:`
` print(“-“, group)`

Вывод показывает чёткое резюме отзывов клиентов путём группировки семантически похожих отзывов. Раздел «Distinct Customer Feedback» выделяет ключевые идеи, а раздел «Grouped Duplicates» перечисляет кластеры отзывов, которые были признаны семантически эквивалентными. Это помогает устранить избыточность и упрощает анализ отзывов.

1. Какие преимущества предоставляет библиотека Mirascope для работы с большими языковыми моделями (LLM)?

Mirascope упрощает работу с различными поставщиками LLM, включая OpenAI, Anthropic, Mistral, Google (Gemini и Vertex AI), Groq, Cohere, LiteLLM, Azure AI и Amazon Bedrock. Она предоставляет единый интерфейс для выполнения различных задач, таких как генерация текста, извлечение структурированных данных и создание сложных рабочих процессов на базе ИИ.

2. Какие шаги необходимо выполнить для установки зависимостей и получения ключа OpenAI для работы с Mirascope?

Для установки зависимостей необходимо выполнить команду `pip install “mirascope[openai]”`. Чтобы получить ключ API OpenAI, нужно посетить https://platform.openai.com/settings/organization/api-keys и сгенерировать новый ключ. Если вы новый пользователь, может потребоваться добавить платёжные данные и совершить минимальный платёж в размере 5 долларов для активации доступа к API.

3. Как определить список отзывов клиентов для использования в функции семантической дедупликации в Mirascope?

Список отзывов клиентов можно определить как список строк, где каждая строка представляет собой отдельный отзыв. Например, `customer_reviews = [“Sound quality is amazing!”, “Audio is crystal clear and very immersive.”, “Incredible sound, especially the bass response.”, …]`.

4. Какие параметры включает в себя модель Pydantic `DeduplicatedReviews` для структурирования выходных данных языковой модели?

Модель Pydantic `DeduplicatedReviews` включает два параметра: `duplicates` (список групп семантически эквивалентных отзывов клиентов) и `reviews` (дедуплицированный список основных тем отзывов клиентов).

5. Как функция `deduplicatecustomerreviews` использует декоратор `@openai.call` для семантической дедупликации отзывов клиентов?

Функция `deduplicatecustomerreviews` использует декоратор `@openai.call` для интеграции с моделью OpenAI gpt-4o. Декоратор обеспечивает бесшовную интеграцию и позволяет функции использовать модель для выявления и группировки семантически похожих отзывов. Функция принимает список отзывов клиентов и возвращает структурированный ответ, соответствующий модели Pydantic `DeduplicatedReviews`.

Источник

Оставьте комментарий