Mirascope es una biblioteca poderosa y fácil de usar que proporciona una interfaz unificada para trabajar con una amplia gama de Modelo de lenguaje grande (LLM) Proveedores, incluidos OpenAi, Anthrope, Mistral, Google (Géminis y Vertex AI), Groq, Cohere, Litellm, Azure AI y Amazon Bedrock. Simplifica todo, desde la generación de texto y la extracción de datos estructurados hasta la creación de flujos de trabajo y sistemas de agentes con alimentación compleja.
En esta guía, nos centraremos en usar la integración OpenAI de Mirascope para identificar y eliminar duplicados semánticos (entradas que pueden diferir en la redacción pero llevar el mismo significado) de una lista de revisiones de clientes.
Instalación de las dependencias
pip install "mirascope[openai]"
Llave de OpenAI
Para obtener una llave de API de OpenAI, visite https://platform.openai.com/settings/organization/api-keys y generar una nueva clave. Si es un nuevo usuario, es posible que deba agregar detalles de facturación y realizar un pago mínimo de $ 5 para activar el acceso a la API.
import os
from getpass import getpass
os.environ['OPENAI_API_KEY'] = getpass('Enter OpenAI API Key: ')
Definición de la lista de revisiones de clientes
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!"
]
Estas revisiones capturan los sentimientos clave de los clientes: elogios por la calidad del sonido y la facilidad de uso, quejas sobre la duración de la batería, la calidad de construcción y los problemas de llamadas/micrófono, junto con una nota positiva sobre el valor por dinero. Reflejan temas comunes que se encuentran en la retroalimentación real de los usuarios.
Definición de un esquema pydántico
Este modelo pydantic define la estructura para la respuesta de una tarea de deduplicación semántica en las revisiones de los clientes. Este esquema ayuda a estructurar y validar la salida de un modelo de lenguaje encargado de agrupar o deduplicar la entrada del lenguaje natural (por ejemplo, comentarios de los usuarios, informes de errores, revisiones de productos).
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"
)
Definición de un Mirascope @Openai.call para la deduplicación semántica
Este código define una función de deduplicación semántica utilizando el decorador de @opidai.call de Mirascope, que permite una integración perfecta con el modelo GPT-4O de OpenAI. La función deduplicate_customer_reviews toma una lista de revisiones de clientes y utiliza un mensaje estructurado, definido por el decorador @prompt_template, para guiar el LLM en la identificación y agrupación de revisiones semánticamente similares.
El mensaje del sistema instruye al modelo a analizar el significado, el tono y la intención detrás de cada revisión, agrupando aquellos que transmiten la misma retroalimentación incluso si se redactan de manera diferente. La función espera una respuesta estructurada que se ajuste al modelo Pydantic de entrevistas deduplicadas, que incluye dos salidas: una lista de sentimientos de revisión únicos y deduplicados y una lista de duplicados agrupados.
Este diseño asegura que la salida de la LLM sea precisa y legible por máquina, por lo que es ideal para el análisis de comentarios de los clientes, la deduplicación de la encuesta o la agrupación de revisión del producto.
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 deduplicate_customer_reviews(reviews: list[str]): ...
El siguiente código ejecuta la función deduplicate_customer_reviews utilizando una lista de revisiones de clientes e imprime la salida estructurada. Primero, llama a la función y almacena el resultado en la variable de respuesta. Para garantizar que la salida del modelo se ajuste al formato esperado, utiliza una declaración de afirmación para validar que la respuesta es una instancia del modelo Pydantic de entrevistas dedicadas.
Una vez validado, imprime los resultados deduplicados en dos secciones. La primera sección, etiquetada como “✅ ✅ ✅ ✅ ✅ Comentarios distintos de los clientes”, muestra la lista de sentimientos de revisión únicos identificados por el modelo. La segunda sección, “🌀 Duplicados agrupados”, enumera grupos de revisiones que fueron reconocidas como semánticamente equivalentes.
response = deduplicate_customer_reviews(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)
La salida muestra un resumen limpio de los comentarios de los clientes mediante la agrupación de revisiones semánticamente similares. La sección distinta de comentarios de los clientes destaca las ideas clave, mientras que la sección de duplicados agrupados captura diferentes frases del mismo sentimiento. Esto ayuda a eliminar la redundancia y hace que la retroalimentación sea más fácil de analizar.
Mira el códigos completos. Todo el crédito por esta investigación va a los investigadores de este proyecto.
¿Listo para conectarse con más de 1 millón de desarrolladores/investigadores/investigadores de AI? Vea cómo Nvidia, LG AI Research y las principales compañías de IA aprovechan a MarktechPost para llegar a su público objetivo [Learn More]
