> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whaapy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Generar Sugerencia

> Genera una respuesta sugerida por la IA sin enviarla al cliente

Genera una respuesta usando el mismo modelo de IA del agente, incluyendo tu knowledge base y personalidad configurada, pero **sin enviar el mensaje**.

Útil para:

* **Modo Copilot**: Agentes humanos reciben sugerencias para revisar
* **Validación**: Verificar respuestas antes de enviarlas automáticamente
* **Analytics**: Comparar sugerencias vs respuestas reales

## Parámetros

<ParamField path="id" type="string" required>
  UUID de la conversación
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.whaapy.com/conversations/v1/550e8400-e29b-41d4-a716-446655440000/ai-suggest \
    -H "Authorization: Bearer wha_TU_API_KEY" \
    -H "Content-Type: application/json"
  ```

  ```javascript Node.js theme={null}
  const conversationId = '550e8400-e29b-41d4-a716-446655440000';

  const response = await fetch(
    `https://api.whaapy.com/conversations/v1/${conversationId}/ai-suggest`,
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer wha_TU_API_KEY',
        'Content-Type': 'application/json'
      }
    }
  );

  const data = await response.json();
  console.log(data.suggestion);
  ```

  ```python Python theme={null}
  import requests

  conversation_id = '550e8400-e29b-41d4-a716-446655440000'

  response = requests.post(
      f'https://api.whaapy.com/conversations/v1/{conversation_id}/ai-suggest',
      headers={
          'Authorization': 'Bearer wha_TU_API_KEY',
          'Content-Type': 'application/json'
      }
  )

  data = response.json()
  print(data['suggestion'])
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "suggestion": "¡Hola! Gracias por contactarnos. Nuestro horario de atención es de lunes a viernes de 9am a 6pm. ¿En qué puedo ayudarte?",
    "confidence": "high",
    "usedKnowledgeBase": true,
    "documentsCount": 3
  }
  ```

  ```json 400 Bad Request theme={null}
  {
    "error": "No hay mensajes en esta conversación",
    "message": "La conversación no tiene historial de mensajes"
  }
  ```

  ```json 404 Not Found theme={null}
  {
    "error": "Conversación no encontrada"
  }
  ```
</ResponseExample>

## Response

| Campo               | Tipo                              | Descripción                                |
| ------------------- | --------------------------------- | ------------------------------------------ |
| `suggestion`        | string                            | Texto sugerido por la IA                   |
| `confidence`        | `"high"` \| `"medium"` \| `"low"` | Nivel de confianza                         |
| `usedKnowledgeBase` | boolean                           | Si se usaron documentos del knowledge base |
| `documentsCount`    | number                            | Cantidad de documentos consultados         |

## Niveles de Confianza

| Nivel    | Score  | Significado                          |
| -------- | ------ | ------------------------------------ |
| `high`   | > 70%  | La IA encontró información relevante |
| `medium` | 40-70% | Información parcial disponible       |
| `low`    | \< 40% | Información insuficiente             |

<Tip>
  Si `confidence` es `low`, considera revisar tu knowledge base o agregar más documentos sobre el tema.
</Tip>

## Scope Requerido

Este endpoint requiere el scope `conversations:write` en tu API Key.

## Casos de Uso

<AccordionGroup>
  <Accordion title="Modo Copilot para agentes">
    Muestra sugerencias a agentes humanos:

    ```javascript theme={null}
    async function showSuggestion(conversationId) {
      const response = await fetch(
        `https://api.whaapy.com/conversations/v1/${conversationId}/ai-suggest`,
        {
          method: 'POST',
          headers: { 'Authorization': 'Bearer wha_TU_API_KEY' }
        }
      );
      
      const { suggestion, confidence } = await response.json();
      
      displayInUI({
        text: suggestion,
        badge: confidence === 'high' ? 'Alta confianza' : 'Revisar'
      });
    }
    ```
  </Accordion>

  <Accordion title="Validación antes de enviar">
    Valida la respuesta antes de enviarla:

    ```javascript theme={null}
    async function validateAndSend(conversationId) {
      const suggestion = await fetch(
        `https://api.whaapy.com/conversations/v1/${conversationId}/ai-suggest`,
        { method: 'POST', headers: { 'Authorization': 'Bearer wha_TU_API_KEY' } }
      ).then(r => r.json());
      
      if (suggestion.confidence === 'low') {
        await escalateToHuman(conversationId);
        return;
      }
      
      await sendMessage(conversationId, suggestion.suggestion);
    }
    ```
  </Accordion>
</AccordionGroup>
