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/.dialogfiles ({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.
Related projects
- OpenVoiceOS/ovos-plugin-manager: loads this plugin through the
opm.agents.chatentry point. - OpenVoiceOS/ovos-translate-plugin-server: recommended remote translate plugin for
enable_tx.
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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ovos_solver_aiml_plugin-0.0.2a7.tar.gz.
File metadata
- Download URL: ovos_solver_aiml_plugin-0.0.2a7.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef2c24dbe2f4efee586e874517aa1162c9a99a1e2365504a3737d59a040e8468
|
|
| MD5 |
c0be96eb5feb6a5b71c09055b66f42e6
|
|
| BLAKE2b-256 |
1600632e6e6b15295813f0bcbf11d0efbf0d4ff57a421c1eb51b11e05e5b14cf
|
File details
Details for the file ovos_solver_aiml_plugin-0.0.2a7-py3-none-any.whl.
File metadata
- Download URL: ovos_solver_aiml_plugin-0.0.2a7-py3-none-any.whl
- Upload date:
- Size: 1.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a4a849e5b9769ecb75ab9a7514d2cccbefd0f484a41de7163cc6c512c3c641f
|
|
| MD5 |
f3813654f599a6284316bef35f3ca6a5
|
|
| BLAKE2b-256 |
e93b5bff5ecb8b99359f4a9307c2d8810c2023b31d7c22ba0462923e498cebe6
|