This release is a pre-release and may not be stable for production use.
ovos-spec-tools
Reference implementation of the OVOS formal specifications, the low-level, dependency-light primitives those specifications describe.
OVOS components reimplement template expansion, resource loading, and language matching in several places, and the copies drift. This package is the single conformant implementation those components, and any third-party tool, can depend on.
Status
| Tool | Spec | Code |
|---|---|---|
| Sentence template expander | OVOS-INTENT-1 v2 | expansion.py |
| Locale resource loader | OVOS-INTENT-2 | resources.py |
| Dialog renderer | OVOS-INTENT-2 §4.2 | dialog.py |
| Prompt renderer | OVOS-INTENT-2 §4.4 | prompt.py |
| Tool | Spec | Code |
|---|---|---|
| Language-tag matching | OVOS-INTENT-2 §2.2 | language.py |
| Bus message envelope | OVOS-MSG-1 | message.py |
| Intent dispatch topics | OVOS-MSG-1 §2.1.1 / OVOS-INTENT-4 | intent_topics.py |
ovos-spec-lint locale linter |
OVOS-INTENT-1 / -2 | lint.py |
Install
pip install ovos-spec-tools # core — no dependencies
pip install ovos-spec-tools[langcodes] # adds the smart language fallback
Requires Python 3.10+.
Quick taste
from ovos_spec_tools import (expand, LocaleResources, render, render_prompt,
closest_lang, Message)
expand("(turn|switch) [the] light") # all 4 sentences it denotes
res = LocaleResources("my-skill/locale")
res.load_intent("play", "en-US") # a skill's intent samples
render(res.load_dialog("weather", "en-US"), # a spoken response
slots={"temperature": 21})
render_prompt(res.load_prompt("system", "en-US"), # a language-model prompt
slots={"query": "what time is it"})
closest_lang("en-AU", ["pt-BR", "en-US"]) # 'en-US'
# OVOS-MSG-1 envelope: a bus message and its 'send back to the asker' reply
m = Message("ovos.intent.list", {}, {"source": "skill.id"})
res = m.response({"intents": ["..."]}) # 'ovos.intent.list.response'
res.serialize() # single UTF-8 JSON object
ovos-spec-lint my-skill/locale # validate a locale folder
Documentation
A zero-to-hero guide lives in docs/:
-
Getting started, install, and a first taste of every tool.
-
Sentence templates, the grammar: alternatives, optionals, slots, vocabulary references, malformed forms.
-
Locale resources, the
locale/folder, the six file roles, loading across languages, override precedence. -
Dialog, choosing and filling a spoken response, and rendering language-model prompts.
-
Language matching, tag standardization, distance, and closest-match resolution.
-
Bus messages, the on-the-wire envelope, the
forward/reply/responsederivations, and the session carrier. -
Linting, validating a locale folder, on the CLI or in CI.
-
API reference, every public name, in brief.
Runnable example scripts are in examples/.
See docs/prerelease-quirks.md for what changed since the last stable release (there has not been one yet, so it covers everything since the first alpha).
Credits
Developed by TigreGótico for OpenVoiceOS.
This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429.
License
Apache 2.0
Metadata
Release files for ovos-spec-tools 1.14.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ovos_spec_tools-1.14.0a2.tar.gz | 173.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ovos_spec_tools-1.14.0a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 289.4 kB
Release files / ovos_spec_tools-1.14.0a2.tar.gz
| Download URL | ovos_spec_tools-1.14.0a2.tar.gz |
|---|---|
| Size | 173.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04dd56868d029e8f7132d7cad6583af6ce5e8318bfb8a16dfe6bd349ca0119f4
|
|
BLAKE2b-256 checksum How to use checksums |
ceb9a6618a1e160f8398597c0b5516e5443caeeaf4d614fa8f38804bd629304f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ovos_spec_tools-1.14.0a2-py3-none-any.whl
| Download URL | ovos_spec_tools-1.14.0a2-py3-none-any.whl |
|---|---|
| Size | 116.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a75de3105d7ecce639e759a763b4472e3a95244c575ecb653f74421aa09788c1
|
|
BLAKE2b-256 checksum How to use checksums |
3d442480f29c2b568c32287080ecacab3476af0d478980b8b5a94e2935a08f86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|