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

# Criar/Atualizar Treinamento

> Criar ou atualizar dados de treinamento para um agente específico

# Criar/Atualizar Treinamento

Criar ou atualizar dados de treinamento para um agente específico. Adiciona perguntas e respostas para melhorar o desempenho do agente.

## Endpoint

```
POST /api/v1/agents/{agent_id}/trainings
```

## Parâmetros de caminho

<ParamField path="agent" type="string" required>
  O identificador único do agente. Você pode encontrá-lo na lista de agentes.
</ParamField>

## Cabeçalhos da requisição

<ParamField header="Authorization" type="string" required>
  Token Bearer para autenticação. Formato: `Bearer talq_your_environment_token_here`
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Application JSON. Formato: `application/json`
</ParamField>

## Corpo da requisição

<ParamField body="question" type="string" required>
  Pergunta para o treinamento (máximo 1000 caracteres).
</ParamField>

<ParamField body="answer" type="string" required>
  Resposta para o treinamento (máximo 2000 caracteres).
</ParamField>

## Exemplos de Requisição

<RequestExample>
  ```bash theme={null}
  # Requisição 1: Criar novo treinamento
  curl -X POST "https://app.talkover.ai/api/v1/agents/agent-uuid-1/trainings" \
    -H "Authorization: Bearer talq_your_environment_token_here" \
    -H "Content-Type: application/json" \
    -d '{
      "question": "Como posso ajudar com informações sobre produtos?",
      "answer": "Posso fornecer informações detalhadas sobre nossos produtos, incluindo especificações, preços e disponibilidade. Qual produto você gostaria de conhecer?"
    }'
  ```

  ```javascript theme={null}
  // Requisição 1: Criar novo treinamento
  const response = await fetch('https://app.talkover.ai/api/v1/agents/agent-uuid-1/trainings', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer talq_your_environment_token_here',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      question: 'Como posso ajudar com informações sobre produtos?',
      answer: 'Posso fornecer informações detalhadas sobre nossos produtos, incluindo especificações, preços e disponibilidade. Qual produto você gostaria de conhecer?'
    })
  });

  const result = await response.json();
  console.log(result);
  ```
</RequestExample>

<RequestExample>
  ```bash theme={null}
  # Requisição 2: Criar treinamento para suporte técnico
  curl -X POST "https://app.talkover.ai/api/v1/agents/agent-uuid-1/trainings" \
    -H "Authorization: Bearer talq_your_environment_token_here" \
    -H "Content-Type: application/json" \
    -d '{
      "question": "Qual é o processo de suporte técnico?",
      "answer": "Para suporte técnico, posso ajudá-lo a identificar o problema e orientá-lo sobre os próximos passos. Posso também agendar um técnico se necessário. Qual é o problema que você está enfrentando?"
    }'
  ```

  ```javascript theme={null}
  // Requisição 2: Criar treinamento para suporte técnico
  const response = await fetch('https://app.talkover.ai/api/v1/agents/agent-uuid-1/trainings', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer talq_your_environment_token_here',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      question: 'Qual é o processo de suporte técnico?',
      answer: 'Para suporte técnico, posso ajudá-lo a identificar o problema e orientá-lo sobre os próximos passos. Posso também agendar um técnico se necessário. Qual é o problema que você está enfrentando?'
    })
  });

  const result = await response.json();
  console.log(result);
  ```
</RequestExample>

## Resposta

### Resposta de Sucesso (201 Created)

<ResponseExample>
  ```json theme={null}
  {
    "success": true,
    "message": "Treinamento criado com sucesso",
    "data": {
      "id": "training-uuid-1",
      "question": "Como posso ajudar com informações sobre produtos?",
      "answer": "Posso fornecer informações detalhadas sobre nossos produtos, incluindo especificações, preços e disponibilidade. Qual produto você gostaria de conhecer?",
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z"
    }
  }
  ```
</ResponseExample>

### Campos da Resposta

<ResponseField name="success" type="boolean" required>
  Indica se a operação foi bem-sucedida.
</ResponseField>

<ResponseField name="message" type="string" required>
  Mensagem de sucesso descrevendo a operação.
</ResponseField>

<ResponseField name="data" type="object" required>
  Dados do treinamento criado.

  <Expandable title="Dados do Treinamento">
    <ResponseField name="id" type="string" required>
      Identificador único do treinamento criado.
    </ResponseField>

    <ResponseField name="question" type="string" required>
      Pergunta do treinamento.
    </ResponseField>

    <ResponseField name="answer" type="string" required>
      Resposta do treinamento.
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      Timestamp ISO 8601 quando o treinamento foi criado.
    </ResponseField>

    <ResponseField name="updated_at" type="string" required>
      Timestamp ISO 8601 quando o treinamento foi atualizado pela última vez.
    </ResponseField>
  </Expandable>
</ResponseField>

## Respostas de erro

### 404 Não Encontrado

<ResponseExample>
  ```json theme={null}
  {
    "success": false,
    "message": "Agent not found"
  }
  ```
</ResponseExample>

### 422 Erro de Validação

<ResponseExample>
  ```json theme={null}
  {
    "success": false,
    "message": "The given data was invalid.",
    "errors": {
      "question": [
        "The question field is required."
      ],
      "answer": [
        "The answer field is required."
      ],
      "question": [
        "The question may not be greater than 1000 characters."
      ],
      "answer": [
        "The answer may not be greater than 2000 characters."
      ]
    }
  }
  ```
</ResponseExample>

### 401 Não Autorizado

<ResponseExample>
  ```json theme={null}
  {
    "success": false,
    "message": "Unauthorized"
  }
  ```
</ResponseExample>

### 500 Erro do Servidor

<ResponseExample>
  ```json theme={null}
  {
    "success": false,
    "message": "Internal server error."
  }
  ```
</ResponseExample>

## Códigos de erro

| Código             | Descrição                                 | Status HTTP |
| ------------------ | ----------------------------------------- | ----------- |
| `AGENT_NOT_FOUND`  | Agente especificado não existe            | 404         |
| `VALIDATION_ERROR` | Validação da requisição falhou            | 422         |
| `INVALID_TOKEN`    | Token de autenticação inválido ou ausente | 401         |
| `SERVER_ERROR`     | Erro interno do servidor ocorreu          | 500         |

## Notas Importantes

<Info>
  **Limites de caracteres.** Perguntas têm limite de 1000 caracteres e respostas de 2000 caracteres.
</Info>

<Info>
  **Melhoria de desempenho.** Dados de treinamento ajudam a melhorar o desempenho do agente.
</Info>

<Info>
  **Perguntas claras.** Use perguntas claras e específicas para melhor treinamento.
</Info>

<Warning>
  **Respostas úteis.** Forneça respostas completas e úteis para melhor experiência do usuário.
</Warning>

## Melhores Práticas

1. **Perguntas específicas** - Use perguntas claras e específicas para melhor treinamento
2. **Respostas detalhadas** - Forneça respostas completas e úteis
3. **Variedade de cenários** - Crie treinamentos para diferentes cenários de uso
4. **Atualização regular** - Regularmente atualize os dados de treinamento
5. **Teste o desempenho** - Monitore como os treinamentos afetam o desempenho do agente

## Endpoints relacionados

* **Listar Treinamentos**: `GET /api/v1/agents/{agent_id}/trainings`
* **Excluir Treinamento**: `DELETE /api/v1/agents/{agent_id}/trainings/{training_id}`
* **Obter Agente**: `GET /api/v1/agents/{agent_id}`
* **Listar Agentes**: `GET /api/v1/agents`
