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

# Create Chat

> Gera uma resposta com base no histórico de mensagens enviado.



## OpenAPI

````yaml POST /chat
openapi: 3.1.0
info:
  title: Muffins AI API
  description: >-
    API oficial da Muffins AI, oferecendo ferramentas avançadas de inteligência
    artificial para integração com seus sistemas.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://chat.muffinscorp.com/api/public
security:
  - apiKeyAuth: []
paths:
  /chat:
    post:
      description: Gera uma resposta com base no histórico de mensagens enviado.
      requestBody:
        description: Dados para geração de resposta
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatRequest'
        required: true
      responses:
        '200':
          description: Resposta gerada com sucesso.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatResponse'
        '400':
          description: Erro na solicitação.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Não autorizado - API key inválida ou faltando.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ChatRequest:
      type: object
      required:
        - messages
      properties:
        messages:
          description: Histórico de mensagens para gerar a resposta.
          type: array
          items:
            type: object
            required:
              - role
              - content
            properties:
              id:
                description: Identificador único da mensagem.
                type: string
                pattern: ^msg_[0-9a-f]{3}$
              role:
                description: O papel da mensagem (user, system, assistant).
                type: string
                enum:
                  - user
                  - system
                  - assistant
              content:
                description: O conteúdo da mensagem.
                type: string
          minItems: 1
        model:
          description: 'Modelo a ser usado para geração (ex: chat-model-small).'
          type: string
          pattern: ^[a-z-]+$
        stream:
          description: Se verdadeiro, a resposta será enviada como stream de eventos.
          type: boolean
          default: false
        search:
          description: >-
            Se verdadeiro, o modelo faz busca pela internet (modelos
            suportados!)
          type: boolean
          default: false
        temperature:
          description: >-
            Controla a aleatoriedade das respostas (0-2). Valores mais altos são
            mais aleatórios.
          type: number
          minimum: 0
          maximum: 2
          default: 1
    ChatResponse:
      oneOf:
        - description: Non-streaming response format
          type: object
          properties:
            id:
              description: ID único da interação.
              type: string
              format: uuid
            content:
              description: Conteúdo completo da resposta do assistente.
              type: string
            role:
              description: Papel do respondente (sempre 'assistant').
              type: string
              enum:
                - assistant
            createdAt:
              description: Timestamp de criação da resposta.
              type: string
              format: date-time
            creditsUsed:
              description: Créditos consumidos pela operação.
              type: integer
            creditsRemaining:
              description: Créditos restantes após a operação.
              type: integer
            model:
              description: Modelo usado para gerar a resposta.
              type: string
          required:
            - id
            - content
            - role
            - createdAt
            - creditsUsed
            - creditsRemaining
        - description: Streaming response format
          type: object
          properties:
            event:
              type: string
              enum:
                - f
                - '0'
                - e
                - d
              description: 'Tipo de evento do stream (f: início, 0: chunks, e: erro, d: fim)'
            messageId:
              description: ID da mensagem (apenas evento 'f').
              type: string
            data:
              description: Conteúdo do chunk (apenas evento '0').
              type: string
            finishReason:
              description: Razão do término (apenas eventos 'e' e 'd').
              type: string
            usage:
              type: object
              properties:
                promptTokens:
                  description: Tokens usados no prompt.
                  type: integer
                completionTokens:
                  description: Tokens gerados na resposta.
                  type: integer
            isContinued:
              description: Indica se a resposta continua (apenas evento 'e').
              type: boolean
          required:
            - event
    Error:
      type: object
      required:
        - error
        - code
        - success
      properties:
        error:
          description: Descrição legível do erro.
          type: string
          example: Invalid API Key
        code:
          description: Código de erro padrão para tratamento programático.
          type: string
          enum:
            - AUTH_FAILED
            - INVALID_INPUT
            - RATE_LIMITED
            - SERVER_ERROR
          example: AUTH_FAILED
        message:
          description: Mensagem detalhada do erro (opcional).
          type: string
        traceId:
          description: ID único para rastreamento do erro no servidor.
          type: string
          format: uuid
        success:
          description: Indica se a requisição foi bem sucedida (sempre false para erros).
          type: boolean
          enum:
            - false
        details:
          description: Informações técnicas adicionais para depuração.
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      name: x-api-key
      in: header
      description: API key for authentication

````