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