Antes de construir con Claude

Decidir si usar Claude para chat de soporte

Aquí hay algunos indicadores clave de que deberías emplear un LLM como Claude para automatizar partes de tu proceso de soporte al cliente:
Claude sobresale manejando una gran cantidad de preguntas similares de manera eficiente, liberando a los agentes humanos para problemas más complejos.
Claude puede recuperar, procesar y combinar rápidamente información de vastas bases de conocimiento, mientras que los agentes humanos pueden necesitar tiempo para investigar o consultar múltiples fuentes.
Claude puede proporcionar soporte las 24 horas sin fatiga, mientras que contar con personal humano para cobertura continua puede ser costoso y desafiante.
Claude puede manejar aumentos repentinos en el volumen de consultas sin necesidad de contratar y entrenar personal adicional.
Puedes instruir a Claude para representar consistentemente el tono y valores de tu marca, mientras que los agentes humanos pueden variar en sus estilos de comunicación.
Algunas consideraciones para elegir Claude sobre otros LLMs:
  • Priorizas conversaciones naturales y matizadas: La comprensión sofisticada del lenguaje de Claude permite conversaciones más naturales y conscientes del contexto que se sienten más humanas que los chats con otros LLMs.
  • A menudo recibes consultas complejas y abiertas: Claude puede manejar una amplia gama de temas y consultas sin generar respuestas enlatadas o requerir programación extensa de permutaciones de expresiones de usuario.
  • Necesitas soporte multilingüe escalable: Las capacidades multilingües de Claude le permiten participar en conversaciones en más de 200 idiomas sin necesidad de chatbots separados o procesos de traducción extensos para cada idioma soportado.

Define tu interacción de chat ideal

Describe una interacción ideal del cliente para definir cómo y cuándo esperas que el cliente interactúe con Claude. Este esquema ayudará a determinar los requisitos técnicos de tu solución. Aquí hay un ejemplo de interacción de chat para soporte al cliente de seguros de auto:
  • Cliente: Inicia la experiencia de chat de soporte
    • Claude: Saluda calurosamente al cliente e inicia la conversación
  • Cliente: Pregunta sobre seguro para su nuevo auto eléctrico
    • Claude: Proporciona información relevante sobre cobertura de vehículos eléctricos
  • Cliente: Hace preguntas relacionadas con necesidades únicas para seguros de vehículos eléctricos
    • Claude: Responde con respuestas precisas e informativas y proporciona enlaces a las fuentes
  • Cliente: Hace preguntas fuera del tema no relacionadas con seguros o autos
    • Claude: Aclara que no discute temas no relacionados y dirige al usuario de vuelta al seguro de auto
  • Cliente: Expresa interés en una cotización de seguro
    • Claude: Hace una serie de preguntas para determinar la cotización apropiada, adaptándose a sus respuestas
    • Claude: Envía una solicitud para usar la herramienta API de generación de cotizaciones junto con la información necesaria recopilada del usuario
    • Claude: Recibe la información de respuesta del uso de la herramienta API, sintetiza la información en una respuesta natural y presenta la cotización proporcionada al usuario
  • Cliente: Hace preguntas de seguimiento
    • Claude: Responde preguntas de seguimiento según sea necesario
    • Claude: Guía al cliente a los siguientes pasos en el proceso de seguro y cierra la conversación
En el ejemplo real que escribas para tu propio caso de uso, podrías encontrar útil escribir las palabras reales en esta interacción para que también puedas tener una idea del tono ideal, longitud de respuesta y nivel de detalle que quieres que tenga Claude.

Divide la interacción en tareas únicas

El chat de soporte al cliente es una colección de múltiples tareas diferentes, desde responder preguntas hasta recuperación de información hasta tomar acción en solicitudes, todo envuelto en una sola interacción del cliente. Antes de comenzar a construir, desglosa tu interacción ideal del cliente en cada tarea que quieres que Claude pueda realizar. Esto asegura que puedas hacer prompts y evaluar a Claude para cada tarea, y te da una buena idea del rango de interacciones que necesitas considerar al escribir casos de prueba.
Los clientes a veces encuentran útil visualizar esto como un diagrama de flujo de interacción de posibles puntos de inflexión de conversación dependiendo de las solicitudes del usuario.
Aquí están las tareas clave asociadas con el ejemplo de interacción de seguros anterior:
  1. Saludo y orientación general
    • Saludar calurosamente al cliente e iniciar conversación
    • Proporcionar información general sobre la empresa e interacción
  2. Información del Producto
    • Proporcionar información sobre cobertura de vehículos eléctricos
      Esto requerirá que Claude tenga la información necesaria en su contexto, y podría implicar que una integración RAG es necesaria.
    • Responder preguntas relacionadas con necesidades únicas de seguros de vehículos eléctricos
    • Responder preguntas de seguimiento sobre la cotización o detalles del seguro
    • Ofrecer enlaces a fuentes cuando sea apropiado
  3. Gestión de Conversación
    • Mantenerse en el tema (seguro de auto)
    • Redirigir preguntas fuera del tema de vuelta a temas relevantes
  4. Generación de Cotizaciones
    • Hacer preguntas apropiadas para determinar elegibilidad de cotización
    • Adaptar preguntas basadas en respuestas del cliente
    • Enviar información recopilada a la API de generación de cotizaciones
    • Presentar la cotización proporcionada al cliente

Establece criterios de éxito

Trabaja con tu equipo de soporte para definir criterios de éxito claros y escribir evaluaciones detalladas con puntos de referencia y objetivos medibles. Aquí hay criterios y puntos de referencia que pueden usarse para evaluar qué tan exitosamente Claude realiza las tareas definidas:
Esta métrica evalúa qué tan precisamente Claude entiende las consultas de clientes a través de varios temas. Mide esto revisando una muestra de conversaciones y evaluando si Claude tiene la interpretación correcta de la intención del cliente, próximos pasos críticos, cómo se ve la resolución exitosa, y más. Apunta a una precisión de comprensión del 95% o superior.
Esto evalúa qué tan bien la respuesta de Claude aborda la pregunta específica o problema del cliente. Evalúa un conjunto de conversaciones y califica la relevancia de cada respuesta (usando calificación basada en LLM para escala). Apunta a un puntaje de relevancia del 90% o superior.
Evalúa la corrección de la información general de la empresa y producto proporcionada al usuario, basada en la información proporcionada a Claude en contexto. Apunta al 100% de precisión en esta información introductoria.
Rastrea la frecuencia y relevancia de enlaces o fuentes ofrecidas. Apunta a proporcionar fuentes relevantes en el 80% de interacciones donde información adicional podría ser beneficiosa.
Mide qué tan bien Claude se mantiene en el tema, como el tema de seguro de auto en nuestro ejemplo de implementación. Apunta a que el 95% de las respuestas estén directamente relacionadas con seguro de auto o la consulta específica del cliente.
Mide qué tan exitoso es Claude determinando cuándo generar contenido informativo y qué tan relevante es ese contenido. Por ejemplo, en nuestra implementación, estaríamos determinando qué tan bien Claude entiende cuándo generar una cotización y qué tan precisa es esa cotización. Apunta al 100% de precisión, ya que esta es información vital para una interacción exitosa del cliente.
Esto mide la capacidad de Claude para reconocer cuándo una consulta necesita intervención humana y escalar apropiadamente. Rastrea el porcentaje de conversaciones correctamente escaladas versus aquellas que deberían haber sido escaladas pero no lo fueron. Apunta a una precisión de escalación del 95% o superior.
Aquí hay criterios y puntos de referencia que pueden usarse para evaluar el impacto empresarial de emplear Claude para soporte:
Esto evalúa la capacidad de Claude para mantener o mejorar el sentimiento del cliente a lo largo de la conversación. Usa herramientas de análisis de sentimiento para medir el sentimiento al principio y al final de cada conversación. Apunta a sentimiento mantenido o mejorado en el 90% de las interacciones.
El porcentaje de consultas de clientes manejadas exitosamente por el chatbot sin intervención humana. Típicamente apunta a una tasa de deflexión del 70-80%, dependiendo de la complejidad de las consultas.
Una medida de qué tan satisfechos están los clientes con su interacción con el chatbot. Usualmente se hace a través de encuestas post-interacción. Apunta a un puntaje CSAT de 4 de 5 o superior.
El tiempo promedio que toma al chatbot resolver una consulta. Esto varía ampliamente basado en la complejidad de los problemas, pero generalmente, apunta a un AHT menor comparado con agentes humanos.

Cómo implementar Claude como agente de servicio al cliente

Elige el modelo Claude correcto

La elección del modelo depende de las compensaciones entre costo, precisión y tiempo de respuesta. Para chat de soporte al cliente, claude-opus-4-1-20250805 está bien adaptado para equilibrar inteligencia, latencia y costo. Sin embargo, para instancias donde tienes flujo de conversación con múltiples prompts incluyendo RAG, uso de herramientas, y/o prompts de contexto largo, claude-3-haiku-20240307 puede ser más adecuado para optimizar la latencia.

Construye un prompt fuerte

Usar Claude para soporte al cliente requiere que Claude tenga suficiente dirección y contexto para responder apropiadamente, mientras tiene suficiente flexibilidad para manejar una amplia gama de consultas de clientes. Comencemos escribiendo los elementos de un prompt fuerte, comenzando con un prompt del sistema:
IDENTITY = """Eres Eva, una asistente de IA amigable y conocedora para Acme Insurance 
Company. Tu rol es dar la bienvenida calurosamente a los clientes y proporcionar información sobre 
las ofertas de seguros de Acme, que incluyen seguro de auto y seguro de auto 
eléctrico. También puedes ayudar a los clientes a obtener cotizaciones para sus necesidades de seguro."""
Aunque puedas sentirte tentado a poner toda tu información dentro de un prompt del sistema como una forma de separar instrucciones de la conversación del usuario, Claude realmente funciona mejor con la mayor parte de su contenido de prompt escrito dentro del primer turno de User (con la única excepción siendo el prompting de rol). Lee más en Dar a Claude un rol con un prompt del sistema.
Es mejor dividir prompts complejos en subsecciones y escribir una parte a la vez. Para cada tarea, podrías encontrar mayor éxito siguiendo un proceso paso a paso para definir las partes del prompt que Claude necesitaría para hacer bien la tarea. Para este ejemplo de soporte al cliente de seguro de auto, escribiremos por partes todas las partes para un prompt comenzando con la tarea “Saludo y orientación general”. Esto también hace que depurar tu prompt sea más fácil ya que puedes ajustar más rápidamente partes individuales del prompt general. Pondremos todas estas piezas en un archivo llamado config.py.
STATIC_GREETINGS_AND_GENERAL = """
<static_context>
Acme Auto Insurance: Tu Compañero de Confianza en el Camino

Acerca de:
En Acme Insurance, entendemos que tu vehículo es más que solo un modo de transporte—es tu boleto a las aventuras de la vida. 
Desde 1985, hemos estado creando pólizas de seguro de auto que dan a los conductores la confianza para explorar, viajar al trabajo y viajar con tranquilidad.
Ya sea que estés navegando calles de la ciudad o embarcándote en viajes por todo el país, Acme está ahí para protegerte a ti y a tu vehículo. 
Nuestras pólizas innovadoras de seguro de auto están diseñadas para adaptarse a tus necesidades únicas, cubriendo todo desde golpes menores hasta colisiones mayores.
Con el servicio al cliente galardonado de Acme y resolución rápida de reclamos, puedes enfocarte en la alegría de conducir mientras nosotros manejamos el resto. 
No somos solo un proveedor de seguros—somos tu copiloto en los viajes de la vida.
Elige Acme Auto Insurance y experimenta la seguridad que viene con cobertura superior y cuidado genuino. Porque en Acme, no solo 
aseguramos tu auto—alimentamos tus aventuras en el camino abierto.

Nota: También ofrecemos cobertura especializada para vehículos eléctricos, asegurando que conductores de todos los tipos de autos puedan beneficiarse de nuestra protección.

Acme Insurance ofrece los siguientes productos:
- Seguro de auto
- Seguro de auto eléctrico
- Seguro de dos ruedas

Horarios de negocio: Lunes-Viernes, 9 AM - 5 PM EST
Número de servicio al cliente: 1-800-123-4567
</static_context>
"""
Luego haremos lo mismo para nuestra información de seguro de auto y seguro de auto eléctrico.
STATIC_CAR_INSURANCE="""
<static_context>
Cobertura de Seguro de Auto:
Las pólizas de seguro de auto de Acme típicamente cubren:
1. Cobertura de responsabilidad: Paga por lesiones corporales y daños a la propiedad que causes a otros.
2. Cobertura de colisión: Paga por daños a tu auto en un accidente.
3. Cobertura integral: Paga por daños a tu auto de incidentes que no son colisión.
4. Cobertura de pagos médicos: Paga por gastos médicos después de un accidente.
5. Cobertura de motorista sin seguro/con seguro insuficiente: Te protege si eres golpeado por un conductor con seguro insuficiente.

Las coberturas opcionales incluyen:
- Reembolso de auto de alquiler
- Asistencia en carretera
- Reemplazo de auto nuevo
</static_context>
"""

STATIC_ELECTRIC_CAR_INSURANCE="""
<static_context>
Seguro de Auto Eléctrico:
Nuestro seguro especializado de auto eléctrico va más allá de la cobertura tradicional de auto, 
ofreciendo protección personalizada para tu inversión de alta tecnología. Además de las coberturas estándar, ofrecemos:
- Protección de sistemas de batería costosos
- Cobertura de equipo de carga doméstica
- Adaptación al mundo en rápida evolución de vehículos eléctricos

Ya sea que conduzcas un Rivian, Nissan Leaf, Chevrolet Bolt, 
o cualquier otro vehículo eléctrico, nuestros agentes conocedores están listos para crear una póliza 
que te dé la confianza para disfrutar cada milla alimentada por electrones.
</static_context>
"""
Ahora que tenemos nuestro contenido estático, agreguemos al menos 4-5 interacciones “buenas” de muestra para guiar las respuestas de Claude. Estos ejemplos deberían ser representativos de tu interacción ideal del cliente y pueden incluir barreras de protección, llamadas de herramientas, etc.
EXAMPLES="""
Aquí hay algunos ejemplos de cómo puedes interactuar con clientes:

<example 1>
H: Hola, ¿ofrecen seguro comercial para pequeñas empresas?

A: ¡Ah! Desafortunadamente, no ofrecemos seguro comercial en este momento. 
Sin embargo, sí proporcionamos una gama de productos de seguro personal incluyendo seguro de auto y seguro de auto eléctrico. 
¿Te gustaría saber más sobre estas ofertas?
</example 1>

<example 2>
H: Hola, ¿cuáles son sus horarios de negocio?

A: Nuestros horarios de negocio son de lunes a viernes, 9 AM a 5 PM EST. 
Si tienes alguna pregunta o necesitas asistencia, no dudes en contactarnos durante esos horarios. 
¿En qué más puedo ayudarte hoy?
</example 2>

<example 3>
H: Estoy buscando seguro de auto. ¿Qué ofrece Acme?

A: ¡Excelente elección! Las pólizas de seguro de auto de Acme típicamente incluyen:
- Cobertura de responsabilidad: Te protege si tienes la culpa en un accidente
- Cobertura de colisión: Paga por daños a tu auto en un accidente
- Cobertura integral: Cubre incidentes que no son colisión como robo o vandalismo
- Cobertura de pagos médicos: Paga por gastos médicos después de un accidente
- Cobertura de motorista sin seguro/con seguro insuficiente: Te protege de conductores con seguro insuficiente

También ofrecemos coberturas opcionales como reembolso de auto de alquiler, asistencia en carretera y reemplazo de auto nuevo. 
¿Te gustaría más detalles sobre cualquiera de estas coberturas, o tienes preguntas específicas sobre asegurar tu vehículo?
</example 3>

<example 4>
H: Me gustaría escuchar sobre su seguro de auto eléctrico.

A: ¡Ciertamente! Nuestro seguro de auto eléctrico está especialmente diseñado para satisfacer las necesidades únicas de los propietarios de vehículos eléctricos. 
Además de todas las coberturas estándar que ofrecemos para autos regulares, nuestras pólizas de autos eléctricos incluyen:

- Cobertura de batería: Protección contra daños o degradación del costoso sistema de batería de tu vehículo
- Paquete tecnológico: Cubre reparaciones o reemplazo de electrónicos avanzados y sistemas informáticos a bordo
- Cobertura de estación de carga: Protege tanto el equipo de carga doméstica como portátil
- Protección de ciberseguridad: Cobertura contra hackeo o amenazas digitales
- Asistencia especializada en carretera: Incluye remolque con plataforma para proteger la parte inferior del vehículo

Cubrimos una amplia gama de vehículos eléctricos, incluyendo modelos populares de Tesla, Rivian, Nissan, Chevrolet y más. 
¿Hay un vehículo eléctrico específico que estés buscando asegurar, o te gustaría más detalles sobre cualquiera de estas coberturas?
</example 4>

<example 5>
H: Me gustaría obtener una cotización para mi seguro de auto.

A: ¡Ciertamente! Me complace ayudarte a obtener una cotización para tu seguro de auto. 
Para proporcionarte una cotización precisa, necesitaré recopilar alguna información sobre tu vehículo y el conductor principal. 
Comencemos con lo básico:

1. ¿Cuál es la marca y modelo de tu vehículo?
2. ¿En qué año fue fabricado?
3. ¿Aproximadamente cuántas millas has conducido?
4. ¿Cuál es la edad del conductor principal?

Una vez que proporciones esta información, usaré nuestra herramienta de cotización para generar una cotización de seguro personalizada para ti.
</example 5>
"""
También querrás incluir cualquier instrucción importante que describa qué hacer y qué no hacer sobre cómo Claude debería interactuar con el cliente. Esto puede derivar de barreras de prot ección de marca o políticas de soporte.
ADDITIONAL_GUARDRAILS = """Por favor adhiérete a las siguientes barreras de protección:
1. Solo proporciona información sobre tipos de seguro listados en nuestras ofertas.
2. Si te preguntan sobre un tipo de seguro que no ofrecemos, declara cortésmente 
que no proporcionamos ese servicio.
3. No especules sobre futuras ofertas de productos o planes de la empresa.
4. No hagas promesas o entres en acuerdos que no estás autorizado a hacer.
Solo proporcionas información y orientación.
5. No menciones productos o servicios de ningún competidor.
"""
Ahora combinemos todas estas secciones en una sola cadena para usar como nuestro prompt.
TASK_SPECIFIC_INSTRUCTIONS = ' '.join([
   STATIC_GREETINGS_AND_GENERAL,
   STATIC_CAR_INSURANCE,
   STATIC_ELECTRIC_CAR_INSURANCE,
   EXAMPLES,
   ADDITIONAL_GUARDRAILS,
])

Agrega capacidades dinámicas y agénticas con uso de herramientas

Claude es capaz de tomar acciones y recuperar información dinámicamente usando funcionalidad de uso de herramientas del lado del cliente. Comienza listando cualquier herramienta externa o APIs que el prompt debería utilizar. Para este ejemplo, comenzaremos con una herramienta para calcular la cotización.
Como recordatorio, esta herramienta no realizará el cálculo real, solo señalará a la aplicación que una herramienta debería usarse con cualquier argumento especificado.
Ejemplo de calculadora de cotización de seguro:
TOOLS = [{
  "name": "get_quote",
  "description": "Calcular la cotización de seguro basada en la entrada del usuario. El valor devuelto es la prima por mes.",
  "input_schema": {
    "type": "object",
    "properties": {
      "make": {"type": "string", "description": "La marca del vehículo."},
      "model": {"type": "string", "description": "El modelo del vehículo."},
      "year": {"type": "integer", "description": "El año en que fue fabricado el vehículo."},
      "mileage": {"type": "integer", "description": "El millaje del vehículo."},
      "driver_age": {"type": "integer", "description": "La edad del conductor principal."}
    },
    "required": ["make", "model", "year", "mileage", "driver_age"]
  }
}]

def get_quote(make, model, year, mileage, driver_age):
    """Devuelve la prima por mes en USD"""
    # Puedes llamar un endpoint http o una base de datos para obtener la cotización.
    # Aquí, simulamos un retraso de 1 segundo y devolvemos una cotización fija de 100.
    time.sleep(1)
    return 100

Despliega tus prompts

Es difícil saber qué tan bien funciona tu prompt sin desplegarlo en un entorno de producción de prueba y ejecutar evaluaciones así que construyamos una pequeña aplicación usando nuestro prompt, el SDK de Anthropic y streamlit para una interfaz de usuario. En un archivo llamado chatbot.py, comienza configurando la clase ChatBot, que encapsulará las interacciones con el SDK de Anthropic. La clase debería tener dos métodos principales: generate_message y process_user_input.
from anthropic import Anthropic
from config import IDENTITY, TOOLS, MODEL, get_quote
from dotenv import load_dotenv

load_dotenv()

class ChatBot:
   def __init__(self, session_state):
       self.anthropic = Anthropic()
       self.session_state = session_state

   def generate_message(
       self,
       messages,
       max_tokens,
   ):
       try:
           response = self.anthropic.messages.create(
               model=MODEL,
               system=IDENTITY,
               max_tokens=max_tokens,
               messages=messages,
               tools=TOOLS,
           )
           return response
       except Exception as e:
           return {"error": str(e)}

   def process_user_input(self, user_input):
       self.session_state.messages.append({"role": "user", "content": user_input})

       response_message = self.generate_message(
           messages=self.session_state.messages,
           max_tokens=2048,
       )

       if "error" in response_message:
           return f"Ocurrió un error: {response_message['error']}"

       if response_message.content[-1].type == "tool_use":
           tool_use = response_message.content[-1]
           func_name = tool_use.name
           func_params = tool_use.input
           tool_use_id = tool_use.id

           result = self.handle_tool_use(func_name, func_params)
           self.session_state.messages.append(
               {"role": "assistant", "content": response_message.content}
           )
           self.session_state.messages.append({
               "role": "user",
               "content": [{
                   "type": "tool_result",
                   "tool_use_id": tool_use_id,
                   "content": f"{result}",
               }],
           })

           follow_up_response = self.generate_message(
               messages=self.session_state.messages,
               max_tokens=2048,
           )

           if "error" in follow_up_response:
               return f"Ocurrió un error: {follow_up_response['error']}"

           response_text = follow_up_response.content[0].text
           self.session_state.messages.append(
               {"role": "assistant", "content": response_text}
           )
           return response_text
      
       elif response_message.content[0].type == "text":
           response_text = response_message.content[0].text
           self.session_state.messages.append(
               {"role": "assistant", "content": response_text}
           )
           return response_text
      
       else:
           raise Exception("Ocurrió un error: Tipo de respuesta inesperado")

   def handle_tool_use(self, func_name, func_params):
       if func_name == "get_quote":
           premium = get_quote(**func_params)
           return f"Cotización generada: ${premium:.2f} por mes"
      
       raise Exception("Se usó una herramienta inesperada")

Construye tu interfaz de usuario

Prueba desplegando este código con Streamlit usando un método principal. Esta función main() configura una interfaz de chat basada en Streamlit. Haremos esto en un archivo llamado app.py
import streamlit as st
from chatbot import ChatBot
from config import TASK_SPECIFIC_INSTRUCTIONS

def main():
   st.title("Chatea con Eva, la Asistente de Acme Insurance Company🤖")

   if "messages" not in st.session_state:
       st.session_state.messages = [
           {'role': "user", "content": TASK_SPECIFIC_INSTRUCTIONS},
           {'role': "assistant", "content": "Entendido"},
       ]

   chatbot = ChatBot(st.session_state)

   # Mostrar mensajes de usuario y asistente omitiendo los primeros dos
   for message in st.session_state.messages[2:]:
       # ignorar bloques de uso de herramientas
       if isinstance(message["content"], str):
           with st.chat_message(message["role"]):
               st.markdown(message["content"])

   if user_msg := st.chat_input("Escribe tu mensaje aquí..."):
       st.chat_message("user").markdown(user_msg)

       with st.chat_message("assistant"):
           with st.spinner("Eva está pensando..."):
               response_placeholder = st.empty()
               full_response = chatbot.process_user_input(user_msg)
               response_placeholder.markdown(full_response)

if __name__ == "__main__":
   main()
Ejecuta el programa con:
streamlit run app.py

Evalúa tus prompts

El prompting a menudo requiere pruebas y optimización para que esté listo para producción. Para determinar la preparación de tu solución, evalúa el rendimiento del chatbot usando un proceso sistemático que combine métodos cuantitativos y cualitativos. Crear una evaluación empírica fuerte basada en tus criterios de éxito definidos te permitirá optimizar tus prompts.
La Consola Claude ahora cuenta con una herramienta de Evaluación que te permite probar tus prompts bajo varios escenarios.

Mejora el rendimiento

En escenarios complejos, puede ser útil considerar estrategias adicionales para mejorar el rendimiento más allá de las técnicas estándar de ingeniería de prompts y estrategias de implementación de barreras de protección. Aquí hay algunos escenarios comunes:

Reduce la latencia de contexto largo con RAG

Al tratar con grandes cantidades de contexto estático y dinámico, incluir toda la información en el prompt puede llevar a altos costos, tiempos de respuesta más lentos y alcanzar límites de ventana de contexto. En este escenario, implementar técnicas de Generación Aumentada por Recuperación (RAG) puede mejorar significativamente el rendimiento y la eficiencia. Al usar modelos de embedding como Voyage para convertir información en representaciones vectoriales, puedes crear un sistema más escalable y responsivo. Este enfoque permite la recuperación dinámica de información relevante basada en la consulta actual, en lugar de incluir todo el contexto posible en cada prompt. Implementar RAG para casos de uso de soporte receta RAG ha demostrado aumentar la precisión, reducir tiempos de respuesta y reducir costos de API en sistemas con requisitos de contexto extensos.

Integra datos en tiempo real con uso de herramientas

Al tratar con consultas que requieren información en tiempo real, como saldos de cuenta o detalles de póliza, los enfoques RAG basados en embedding no son suficientes. En su lugar, puedes aprovechar el uso de herramientas para mejorar significativamente la capacidad de tu chatbot para proporcionar respuestas precisas en tiempo real. Por ejemplo, puedes usar el uso de herramientas para buscar información del cliente, recuperar detalles de pedidos y cancelar pedidos en nombre del cliente. Este enfoque, descrito en nuestra receta de uso de herramientas: agente de servicio al cliente, te permite integrar sin problemas datos en vivo en las respuestas de Claude y proporcionar una experiencia del cliente más personalizada y eficiente.

Fortalece las barreras de protección de entrada y salida

Al desplegar un chatbot, especialmente en escenarios de servicio al cliente, es crucial prevenir riesgos asociados con mal uso, consultas fuera del alcance y respuestas inapropiadas. Aunque Claude es inherentemente resistente a tales escenarios, aquí hay pasos adicionales para fortalecer las barreras de protección de tu chatbot:
  • Reduce alucinaciones: Implementa mecanismos de verificación de hechos y citas para fundamentar respuestas en información proporcionada.
  • Verifica información cruzada: Verifica que las respuestas del agente se alineen con las políticas de tu empresa y hechos conocidos.
  • Evita compromisos contractuales: Asegúrate de que el agente no haga promesas o entre en acuerdos que no está autorizado a hacer.
  • Mitiga jailbreaks: Usa métodos como pantallas de inocuidad y validación de entrada para prevenir que los usuarios exploten vulnerabilidades del modelo, con el objetivo de generar contenido inapropiado.
  • Evita mencionar competidores: Implementa un filtro de mención de competidores para mantener el enfoque de marca y no mencionar productos o servicios de ningún competidor.
  • Mantén a Claude en personaje: Previene que Claude cambie su estilo de contexto, incluso durante interacciones largas y complejas.
  • Elimina Información de Identificación Personal (PII): A menos que sea explícitamente requerido y autorizado, elimina cualquier PII de las respuestas.

Reduce el tiempo de respuesta percibido con streaming

Al tratar con respuestas potencialmente largas, implementar streaming puede mejorar significativamente el compromiso y satisfacción del usuario. En este escenario, los usuarios reciben la respuesta progresivamente en lugar de esperar a que se genere toda la respuesta. Aquí está cómo implementar streaming:
  1. Usa la API de Streaming de Anthropic para soportar respuestas de streaming.
  2. Configura tu frontend para manejar fragmentos entrantes de texto.
  3. Muestra cada fragmento a medida que llega, simulando escritura en tiempo real.
  4. Implementa un mecanismo para guardar la respuesta completa, permitiendo a los usuarios verla si navegan lejos y regresan.
En algunos casos, el streaming permite el uso de modelos más avanzados con latencias base más altas, ya que la visualización progresiva mitiga el impacto de tiempos de procesamiento más largos.

Escala tu Chatbot

A medida que la complejidad de tu Chatbot crece, tu arquitectura de aplicación puede evolucionar para coincidir. Antes de agregar más capas a tu arquitectura, considera las siguientes opciones menos exhaustivas:
  • Asegúrate de que estés aprovechando al máximo tus prompts y optimizando a través de ingeniería de prompts. Usa nuestras guías de ingeniería de prompts para escribir los prompts más efectivos.
  • Agrega herramientas adicionales al prompt (que pueden incluir cadenas de prompts) y ve si puedes lograr la funcionalidad requerida.
Si tu Chatbot maneja tareas increíblemente variadas, podrías querer considerar agregar un clasificador de intención separado para enrutar la consulta inicial del cliente. Para la aplicación existente, esto involucraría crear un árbol de decisión que enrutaría consultas de clientes a través del clasificador y luego a conversaciones especializadas (con su propio conjunto de herramientas y prompts del sistema). Nota, este método requiere una llamada adicional a Claude que puede aumentar la latencia.

Integra Claude en tu flujo de trabajo de soporte

Aunque nuestros ejemplos se han enfocado en funciones de Python llamables dentro de un entorno Streamlit, desplegar Claude para chatbot de soporte en tiempo real requiere un servicio API. Aquí está cómo puedes abordar esto:
  1. Crea un wrapper de API: Desarrolla un wrapper de API simple alrededor de tu función de clasificación. Por ejemplo, puedes usar Flask API o Fast API para envolver tu código en un Servicio HTTP. Tu servicio HTTP podría aceptar la entrada del usuario y devolver la respuesta del Asistente en su totalidad. Así, tu servicio podría tener las siguientes características:
    • Eventos Enviados por el Servidor (SSE): SSE permite streaming en tiempo real de respuestas del servidor al cliente. Esto es crucial para proporcionar una experiencia suave e interactiva al trabajar con LLMs.
    • Caché: Implementar caché puede mejorar significativamente los tiempos de respuesta y reducir llamadas innecesarias a la API.
    • Retención de contexto: Mantener contexto cuando un usuario navega lejos y regresa es importante para continuidad en conversaciones.
  2. Construye una interfaz web: Implementa una UI web amigable para el usuario para interactuar con el agente potenciado por Claude.