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`.