Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

AIML Chatbot

An OVOS question solver plugin that answers with an AIML chatbot. It uses the Alice chatbot brain to hold open-ended conversation. It answers utterances that no other skill or solver handles, so most utterances get some response.

Examples

  • "Do you like ice cream"
  • "Do you like dogs"
  • "I have a jump rope"

Install

pip install ovos-solver-aiml-plugin

Usage

from ovos_solver_aiml_plugin import AIMLChatEngine
from ovos_plugin_manager.templates.agents import AgentMessage, MessageRole

engine = AIMLChatEngine({"lang": "en-us"})
reply = engine.continue_chat([AgentMessage(role=MessageRole.USER, content="hello")])
print(reply.content)
# Hi there!

Language support

The bundled AIML brain is English. Brain files live under ovos_solver_aiml_plugin/aiml_data/<lang>/ (bundled) or ~/.local/share/aiml/<lang>/ (user-supplied).

Opt-in query translation (enable_tx)

Set enable_tx: true in the plugin config to answer non-English queries. The plugin translates the user utterance into the brain language (English), answers it, then translates the answer back.

This is off by default, so a plain install needs no translate plugin and English deployments pay no extra cost.

{
  "ovos-solver-aiml-plugin": {
    "lang": "pt-pt",
    "enable_tx": true,
    "translate_plugin": "ovos-translate-plugin-server"
  }
}

The plugin loads the translator lazily, on the first non-English turn. If the translator fails to load, or a translation fails, the plugin answers in the original text instead of raising an error.

Translator plugin note: translation agents tend to be instantiated repeatedly, so a local model-based translate plugin pays its full model-load cost each time. Use a remote translate service, such as ovos-translate-plugin-server.

Converter scripts

The bundled aiml_data/<lang>/*.aiml files are the brain. The helper scripts in scripts/ are an optional convenience for authoring or inspecting content in OVOS notation. They are not part of the runtime and not wired into CI:

  • brain_to_locale.py: exports the cleanly-mappable subset of an AIML or RiveScript brain to paired .intent / .dialog files ({query} slot for wildcards).
  • locale_to_brain.py: the reverse. It regenerates a brain from such files.

The conversion is deliberately partial. Entries that rely on constructs with no direct OVOS equivalent (<srai>, <condition>, <star>, topic state, and so on) are skipped, and exports never emit residual <…> markup. See docs/converters.md.

Docker

This repo publishes ghcr.io/openvoiceos/ovos-solver-plugin-aiml, a standalone ovos-persona-server that serves one persona, AimlBot, backed by the AIMLChatEngine in this plugin. Matching runs entirely offline against the bundled aiml_data, so the image needs no key and no network access to answer.

docker run -p 8391:8337 ghcr.io/openvoiceos/ovos-solver-plugin-aiml:dev
curl http://localhost:8391/v1/models
curl http://localhost:8391/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{"model": "AimlBot", "messages": [{"role": "user", "content": "hello"}]}'

A compose snippet:

services:
  ovos-aiml-persona:
    image: ghcr.io/openvoiceos/ovos-solver-plugin-aiml:dev
    ports:
      - "8391:8337"
    restart: unless-stopped

The image builds on every pull request touching Dockerfile, .dockerignore, pyproject.toml, or the docker workflow itself (build only, no push), and publishes on pushes to master (latest), dev (dev), and version tags. See the docker workflow.

License

Apache License 2.0

Metadata

Release files for ovos-solver-aiml-plugin 0.0.2a11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-solver-aiml-plugin 0.0.2a11
File Size Uploaded
ovos_solver_aiml_plugin-0.0.2a11.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-solver-aiml-plugin 0.0.2a11
File Interpreter ABI Platform
ovos_solver_aiml_plugin-0.0.2a11-py3-none-any.whl Python 3 none any Details

Total release size: 2.1 MB

Release files / ovos_solver_aiml_plugin-0.0.2a11.tar.gz

Download URL ovos_solver_aiml_plugin-0.0.2a11.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
e0814fed0340a5cc8c93a52779858aaad8f50cac5e07acb2461680989a05e670
BLAKE2b-256 checksum
How to use checksums
95cf65812c57c94788d79634abf3fff10f26cb90dc5160d6a0d38558e786eeb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / ovos_solver_aiml_plugin-0.0.2a11-py3-none-any.whl

Download URL ovos_solver_aiml_plugin-0.0.2a11-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6ef5d91791bcfacf0bbb69ef392a638ce8de0958a9c5bd69d747200a0d4adb50
BLAKE2b-256 checksum
How to use checksums
9d6f664ef08fc7c6aa0b555d11787d0deb1c3c034b8faa8bca3de91dc2d3c3d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page