Ctrl K
ComunidadGuías…

config.example.yml

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
logging:
  level: debug                    # logging level (panic, fatal, error, warn, info, debug, trace)

providers:                        # providers to be used for inboxes
  prov1:                          # provider name
    type: openai                  # provider type
    config:                       # provider specific configuration
      apikey: some-api-key        # openai apikey
      model: gpt-5-mini           # openai model to use
      maxsize: 100000             # optional message size limit for prompt (bytes)
      prompt: |                   # prompt to be sent to the model
        Analyze the following email for its spam potential.
        Return a spam score between 0 and 100. Only answer with the number itself.

        {{.RawHeader}}

        {{.Content}}
  prov2:                          # provider name
    type: ollama                  # provider type
    config:                       # provider specific configuration
      url: http://127.0.0.1:11434 # ollama url
      model: gpt-oss:20b          # ollama model to use
      maxsize: 100000             # optional message size limit for prompt (bytes)
      timeout: 5m                 # optional request timeout (default 2m)
  prov3:                          # provider name
    type: spamassassin            # provider type
    config:                       # provider specific configuration
      host: 127.0.0.1             # spamassassin host
      port: 783                   # spamassassin port
      maxsize: 1000000            # optional message size limit
      timeout: 10s                # connection timeout
  prov4:                          # provider name
    type: gemini                  # provider type
    config:                       # provider specific configuration
      apikey: some-api-key        # gemini apikey
      model: gemini-2.5-flash     # gemini model to use
      maxsize: 100000             # optional message size limit for prompt (bytes)
  prov5:                          # provider name
    type: rspamd                  # provider type
    config:                       # provider specific configuration
      url: http://127.0.0.1:11333 # API url
      timeout: 10s                # API timeout
  prov6:                          # provider name
    type: typesafe                # provider type
    config:                       # provider specific configuration
      apikey: some-api-key        # typesafe apikey
      model: jev-1.14.0           # jev model to use
      maxsize: 50000              # optional message size limit for prompt (bytes)

whitelists:                       # trusted senders as regexp, not to be analyzed
  whitelist1:                     # example with exact addresses
    - ^.* <info@example\.com>$    # matches <info@example.com>
    - ^.* <contact@domain\.com>$  # matches <contact@domain.com>
  whitelist2:                     # example with only domain match
    - ^.* <.*@example\.com>$      # matches for all @example.com addresses
    - ^.* <.*@domain\.com>$       # matches for all @domain.com addresses

inboxes:                          # inboxes to be checked
  - schedule: "*/5 * * * *"       # schedule in cron format (when to execute spam analysis)
    host: mail.domain.tld         # imap host
    port: 993                     # imap port
    tls: true                     # imap tls (false = unencrypted, no STARTTLS)
    username: user@domain.tld     # imap user
    password: mypass              # imap password
    provider: prov1               # provider used for spam analysis
    inbox: INBOX                  # inbox folder
    spam: INBOX.Spam              # spam folder
    markread: true                # mark message as read
    minscore: 75                  # min score to detect spam (0-100)
    minage: 0h                    # min age of message
    maxage: 15m                   # max age of message (messages in range are analyzed on every run)
    whitelist: whitelist1         # whitelist to use, empty/missing = no whitelist