Have you ever imagined training your own chatbot that doesn't even have any existing vocabulary, 100% with your own examples type question-answer, without requiring very good hardware? Well, PyRomusa AI will give you this possibility!
PyRomusa AI is a lightweight Python framework for creating simple AI chatbots with minimal code.
This πREADME.md file seems a bit long, right?
Well, just click on the section (the blue text) below that interests you and you'll be taken directly there! π
-
Complete Code Example Using
PyRomusa AI- Do you want to see what code using the
PyRomusa AIlibrary would look like or do you want some ready-to-copy-paste code to see how it works? Well, this is the section you should come to.
- Do you want to see what code using the
-
Why should I use
PyRomusa AI? π€- Do you want a reason to use
PyRomusa AIor still don't understand whatPyRomusa AIis? You could find this information right here
- Do you want a reason to use
-
How to download
PyRomusa AIdirectly from GitHub?- Are you ready to install PyRomusa AI directly from GitHub, on your hardware, and use PyRomusa AI? Here's a tutorial on how to install it from scratch.
-
- Are you new and still don't know what you can do and what capabilities
PyRomusa AIhas? Discover what you can do with this and what capabilitiesPyRomusa AIhas.
- Are you new and still don't know what you can do and what capabilities
-
- Are you new at this repository? Learn a little about the structure of this repository to find what you need.
-
- Here you will find several versions of
PyRomusa AI, each placed in a specific category, depending on how stable it is, how much effort has been put into fixing bugs, and what the respective version was released for.
- Here you will find several versions of
-
About Prepared Datasets ποΈ
- Did you know that you can use ready-to-use training datasets to save time creating input-output examples of a chatbot from scratch? Find here all available datasets, their specifications, and a complete example script with loading a dataset.
-
- Does your chatbot seem to not understand the prompt you wrote or is writing extremely unclearly? This can probably be solved by changing the engine. Click here if you want to learn more about these engines.
-
- Do you want to talk to the person that created this library called
PyRomusa AI? Here you will find all the available possibilities to contact me!
- Do you want to talk to the person that created this library called
-
- Still haven't found what you need? You'll probably find it here.
-
- Curious about what libraries and frameworks were used to create PyRomusa AI? Here you will find the answer + the main purpose of each
-
- There are some small things you should consider. Come here if you want to know these important things
"""
This code works correctly with the following versions:
BETA - v0.0.2
STABLE - v0.1.0, v0.1.1, v0.2.0, v0.3.0, v0.4.0, v0.4.1, v0.4.2, v0.4.3, v0.5.0
EXPERIMENTAL - v001, v002, v003
"""
from PyRomusa_AI import Chatbot
# Create a chatbot named "RomusaBot"
bot = Chatbot(chatbot_name="RomusaBot")
# Add some input/output training data
bot.trainer.add_data(
"Hello chatbot!",
"Hello human, how can I help you today?"
)
bot.trainer.add_data(
"Bye chatbot!",
"Bye human, see you next time!"
)
# Start the training process
bot.trainer.start()
# Generate a response to a user input
print(bot.reply_at("Hello chatbot!"))- It is a framework optimized only for creating chatbots from scratch, with your own input-output training examples.
- It has functions specifically for creating a chatbot, without unnecessary functions
-
Not much is known about this framework yet, and since it is a very young framework, it receives updates as often as possible. Any feedback and suggestions sent via email or TikTok are welcome!
-
It is not yet a framework that can be installed in the form of
pip install PyRomusa_AIin the console, but it is planned to be able to install in this form when there is a minimum community and/or when it will be necessary to make the major update to the STABLE version v0.9.X
-
The response generation time + training time in a single code run are generally much shorter than other major frameworks.
-
Want to see the real speed of the framework? Try the
π benchmark.pyscript: It creates an instance of a chatbot, loads all available datasets, starts training, and responds to 10 prompts using themodernreply engine (works on PyRomusa AI STABLE v0.4.1 or newer).
PyRomusa AIcomes with some more special concepts: Reply Engines and Prepared Datasets- It does not use some concepts from traditional AI, such as loss functions or hidden layers
- The syntax of this framework has been made as easy and logical as possible.
- Even though the learning resources for this framework, available in February 2026, are not very advanced and detailed, at least they are diversified directly by the creator.
- Make sure you have Python and pip installed (
PyRomusa AIworks with Python 3.8+). - Open a terminal on Windows, macOS, or Linux, open your command line or terminal.
- Install
PyRomusa AIdirectly from GitHub, writing this in your terminal:
pip install git+https://github.com/Robertinoos13/PyRomusa-AI-Library.git#subdirectory=pyromusa-aiThis command tells pip to clone the repository and install the package automatically. You donβt need to download anything manually.
4. Test the installation
Open Python in your terminal and try:
from pyromusa_ai import Chatbot
bot = Chatbot()
bot.trainer.show_number_of_examples()If no errors appear, PyRomusa AI is installed and ready to use.
(How do you open Python in your terminal? Just type the word
pythonbefore you type the python code, then you have the option to type whatever Python code you want.)
5. Load a prepared dataset (optional):
bot.prepared_datasets.romanian.load_prepared_dataset("low")
This loads a Romanian dataset into your chatbot for training or testing.
Did you know that to install older versions of PyRomusa AI, the most stable installation method is this? If you want to install older versions, then trust this method.
-
Go to one of these folders:
π all versions/orπ pyromusa-ai -
If you chose to go to folder
π all versions/, then select a version type, the exact version, and look for fileπPyRomusa_AI.py. If you went the other way, look for theπcore.pyfile. -
Once you've found one of the Python files, install it or copy all of its contents to a Python file you created on your hardware.
By the way, if you made it to step 3, make sure the Python file I told you about is in the same folder as the python file where you will use the
PyRomusa AIfunctionalities. We will talk more about this in step 4. -
In order to use
PyRomusa AIin your code, the 2 Python files must be in the same folder, with a structure something like this:|- πYour Folder/ |----- πPyRomusa_AI.py |----- πyou_code.py |----- πDatasets/ |--------- πother python filesWhere:
Name Description πYour Folder/The folder where your Python code should be located where you want to use PyRomusa AI+ the main framework codeπPyRomusa_AI.pyThe main code of the PyRomusa AIframeworkπyou_code.pyYour code, where you will use PyRomusa AIπDatasets/This is a folder with several optional Python files that πPyRomusa_AI.pyneeds to function fully and smoothly.Did you know that
PyRomusa AIuses several optional Python files that it needs to function fully and error-free? Well, they are found in the repository in a folder calledDatasets/
- Create a chatbot in just a few lines of Python
- Simple training process (no heavy frameworks involved)
- Multiple version types: Stable, Beta, and Experimental
- Beginner-friendly and easy to understand
- No high-end GPU required
All versions of PyRomusa AI from all time are stored inside the π all versions/ folder.
|-π all versions/
|
|----π BETA versions/
|--------π _PyRomusa_AI_ - v0.0.X
|
|----π EXPERIMENTAL versions/
|--------π _PyRomusa_AI_ - vXYZ
|
|----π STABLE versions/
|--------π _PyRomusa_AI_ - v0.X.Y
Each version folder contains:
- A full
πPyRomusa_AI.pyfile - A dedicated
πREADME.mdfor that version
π pyromusa-ai - This is the newest stable version of PyRomusa AI. Its structure is optimized so that you can install it with pip install from your terminal. Click on this text to learn how
π tutorials/ - This is a folder where all sorts of tutorials will be written to use the library.
π important updates/ - This folder will provide a more detailed description of all the important updates that PyRomusa AI has had so far.
π images/ - In this folder you will find all the images that the repository usually uses in README.md files.
π benchmark.py - A stress-free, ready-made script that uses PyRomusa AI to test the runtime on your hardware.
π ISSUE_TEMPLATE - Do you want a standard template to start a discussion about a bug or a new feature? Then you will find them in this folder
π CONTRIBUTING.md - A file where you can find details on how to contribute to PyRomusa AI
π CODE_OF_CONDUCT.md - Some rules you should respect if you want to join the community
π SECURITY.md - Here you will find out what you should do if you are using PyRomusa AI, but the output shows something that shouldn't be happening.
π PULL_REQUEST_TEMPLATE.md - What should your pull request describe and what should you check before making it public? Find out here
As this repository has various versions of PyRomusa AI that are older, newer, or more buggy, they have been grouped into 3 categories, placed in the π all versions/ folder:
- Still in development
- May contain bugs, incomplete features, or small issues
- Recommended for normal usage
- Fully functional, tested, and considered complete
- Radical changes and experimental ideas
- Not intended for production use
Did you know that from PyRomusa AI you can load a ready-made training dataset to the model? Well, here's an example below:
from PyRomusa_AI import Chatbot
# 1. Create your chatbot
bot = Chatbot(chatbot_name="MyChatbot")
# 2. Load a prepared dataset (in this example, you load the smallest default dataset in Romanian)
bot.prepared_datasets.romanian.load_prepared_dataset(dataset_name="low")
# 3. Start training
bot.trainer.start()
# 4. Enjoy to use the chatbot (Salut! = Hello!)
print(bot.reply_at(prompt="Salut!"))| Dataset Name | Vocabulary | Number of examples | Word to acces it | Language | Naturalness | Focus on same questions | Planned to be updated | Avaiable in |
|---|---|---|---|---|---|---|---|---|
| Default Romanian Dataset: LOW-END | 3625 | 250 | 'low' | Romanian | Critically Low | No Effort | NO β | BETA v0.0.1 or newer |
| Default Romanian Dataset: MID-RANGE | 8242 | 500 | 'mid' | Romanian | Critically Low | No Effort | NO β | BETA v0.0.1 or newer |
| Default Romanian Dataset: HIGH-END | 11581 | 1000 | 'high' | Romanian | Critically Low | No Effort | NO β | BETA v0.0.1 or newer |
| High Quality, Very Low Quantity Romanian Dataset | 496 | 50 | 'high-quality-very-low-quantity' | Romanian | Very High | Very Low | NO β | STABLE v0.1.1 or newer |
| High Quality, Low Quantity Romanian Dataset | 874 | 100 | 'high-quality-low-quantity' | Romanian | High | Very Low | NO β | EXPERIMENTAL v001 or newer |
| Teacher for PyRomusa AI | 397 - 784 | 110 - 250 | 'pyromusa-ai-teacher' | Romanian | Very High | High | YES π | STABLE v0.2.0 or newer |
| Default English Dataset: LOW-END | 949 | 250 | 'low' | English | No Effort | Balanced | NO β | STABLE v0.4.1 or newer |
| Default English Dataset: MID-RANGE | 1713 | 500 | 'mid' | English | No Effort | Balanced | NO β | STABLE v0.4.1 or newer |
| Default English Dataset: HIGH-END | 3100 | 1000 | 'high' | English | No Effort | Balanced | NO β | STABLE v0.4.1 or newer |
(Some values ββin the "Vocabulary" and "Number of examples" columns may be approximate.)
-
Dataset Name - The dataset name will be written here so that each dataset is unique.
-
Vocabulary - This is where you will write the total number of different words in the dataset. It is important for the chatbot to have a diverse vocabulary from different domains to talk about more things.
-
Number of examples - This is where you will put the total number of input-output examples that the dataset has. It is important to have a high number, because it is said that this way you have a better chance of answering more prompts correctly (theoretically speaking...).
-
Word to acces it - Here we will put a recommended option to access the dataset in the
bot.prepared_datasets. ...function, putting it indataset_namevariable. It is important to know how to access a specific dataset in your code. -
Language - This will be the language that most of the dataset examples are in. It's important to understand what the chatbot is saying.
-
Naturalness - This represents who the input/output examples are made by and how. Here only certain terms will be used, depending on each situation:
-
No Effort - The examples in the dataset are 100% AI-generated and not a single one is human-made.
-
Critically Low - The examples in the dataset are 99% generated with AI, but about 1% are human-made
-
Very Low - The examples in the dataset are 80% generated with AI, but about 20% are human-made
-
Low - The examples in the dataset are 60% generated with AI, but about 40% are human-made
-
Balanced - The examples in the dataset are 50% generated with AI, but about 50% are human-made
-
High - The examples in the dataset are 20% generated with AI, but about 80% are human-made
-
Very High - The examples in the dataset are 100% human-made, but probability some information in the examples in the dataset is not correct.
-
Perfectly - The examples in the dataset are 100% human-made, and also has verified information
(By the way: The datasets that are mostly human-made, the examples from them were added progressively, thus the chatbot "learns" from mistakes.)
-
-
Focus on same questions - Here you will find out how much focus was placed on the chatbot that has this dataset to recognize the same question, but written in a different form by the user. It is important to know how much patience you need to have for the chatbot to understand what you are saying, so that it does not fallback or write something difficult to understand. Here you can find the following values:
- No Effort - worst value
- Very Low
- Low
- Balanced
- High
- Very High - best value
-
Planned to be updated - This column will have only one of the 3 values: YES, NO or MAYBE. This column shows whether the prepared dataset will be updated in the future. If YES, the dataset specifications vary depending on the version of
PyRomusa AI. -
Avaiable In - Here you will find in which oldest version this dataset started appearing in. It is important to know which version to look for in the
versions/folder if you want to use a specific dataset.
Did you know that you can change the logic in which the chatbot will generate a response? Well, that's a new concept in the STABLE 0.2.0 release!
But why was this new concept added? Well, it was observed that with a changed logic for generating responses, the chatbot responds more chaotically, more stably, or more precisely to a certain length of the prompt, so that's how the concept of engines was born: to optimize the goal of your chatbot.
| Engine Name | Advantages | Disadvantages |
|---|---|---|
stable |
In general, it writes more correctly in terms of word order, and the chatbot's response is also much easier to read and understand. | High chances of not understanding an extremely short prompt (e.g. a word or two), even if it has it as an example in training, also returning a fairly easy fallback message. |
chaos |
Makes more of an effort to understand a message, so the chances of returning an automatic fallback message are lower. | In general, he writes some strange and quite difficult to understand messages, often not knowing what the chatbot meant. It can also write too many or too few words, thus compounding the difficulty of fully understanding what the chatbot meant. |
modern |
It is the first engine based on NumPy. It doesn't matter if you write letters with diacritics or accents or not, the chatbot will still understand. It can now return a generated answer to a one-word prompt, without returning a fallback message, as we encounter, completely the opposite, in the stable engine. |
In general, the response generation time is longer than in other available engines (chaos, stable). |
By the way: This is a complete tutorial. If you are only interested in how to select the engine when you want to generate a response, then skip to step 5.
# 1. First, import the Chatbot from PyRomusa AI
from PyRomusa_AI import Chatbot
# 2. Create an instance of the chatbot
bot = Chatbot(chatbot_name="test")
# 3. Add training examples or upload a prepared dataset
# ---
bot.trainer.add_data(
training_input_example= "...",
training_output_example= "..."
)
# AND / OR...
bot.prepared_datasets.romanian.load_prepared_dataset(
dataset_name="..."
)
# ---
# 4. Start the training
bot.trainer.start()
# 5. Generate the answer... **choosing the engine you want**
print(bot.reply_at(
prompt="Hey Chatbot!",
engine_name="chaos" # Here you write the name of the desired engine
))Do you want to give me a new idea for functionality for PyRomusa AI, have you detected a bug in a particular version, want to ask me something, give me feedback, need help, a tutorial from πtutorials/ is not cleary or just want to say hello? Anything friendly message and/or about PyRomusa AI is welcome!
-
e-mail: pyromusa.ai@gmail.com
-
TikTok: @pyromusa_ai
At the moment (February 19, 2026), these PyRomusa AI learning options are quite limited, but you have the following methods:
-
Find random codes through this repository
- In almost every README.md there is a piece of code where
PyRomusa AIis used. Look at these and get inspired
- In almost every README.md there is a piece of code where
-
Watch videos about
PyRomusa AI, specifically on the TikTok account @pyromusa_ai- Sometimes, videos are posted on this TikTok account just about
PyRomusa AI: from updates and little jokes to code and tutorials. Scroll through the videos here and find what you want.
- Sometimes, videos are posted on this TikTok account just about
-
Look in the
π tutorials/folder in this repository- This folder, at the moment, does not have a code tutorial, but only a few text guides to solve problems like 'Why can't I load a prepared dataset?' or 'How do I setup PyRomusa AI in my code?', but it is planned to include code tutorials here in the future.
-
Use the prepared dataset 'Teacher for PyRomusa AI'
- Yes, you can load this prepared dataset for your chatbot in your code, and then ask it questions. This dataset has input-output examples, specifically designed to answer your questions about
PyRomusa AI. Indeed, it can't answer every question because of the poor vocabulary specifications and the number of examples, but it can answer basic questions. (By the way, you need to know Romanian to use it)
- Yes, you can load this prepared dataset for your chatbot in your code, and then ask it questions. This dataset has input-output examples, specifically designed to answer your questions about
-
Install
PyRomusa AI& Run the code:
from PyRomusa_AI import Chatbot
# Create a chatbot
bot = Chatbot()
# Get help
bot.helper.how_to_start()PyRomusa AI uses several other external Python libraries to function properly and completely. In this table below, you will find each external library used and its most important purpose in PyRomusa AI:
| Library name | Objective | Name/Link of the repo in GitHub |
|---|---|---|
numpy |
The logic behind the 'modern' reply engine | numpy |
pandas |
To create tables (dataframes) for some functions in bot.helper. ... |
pandas |
pyrospeak |
For talking chatbots (TTS transformation) | PyroSpeak-Library |
Thank you for creating these Python frameworks/libraries π
-
Versions prior to
BETA 0.0.1were initially released under the namemuri_ai. The project has been renamed toPyRomusa_AIto avoid naming conflicts and for better branding. -
Do you notice that the codes in this repository that use
PyRomusa AI, you often findfrom PyRomusa_AI import Chatbot, and sometimes you also findfrom pyromusa_ai import Chatbot? Well, know that if you installPyRomusa AIviapip install ..., in your code you will usepyromusa_ai, AND if you install it manually from the repository and do not change its name, then you will usePyRomusa_AI -
Some information in this repository may be incorrect or outdated. Please manually verify the information you want before taking it 100% into account. If you do find incorrect or outdated information, please contact me.
Did you find the functionalities interesting, did it help you a lot in a project of yours, or do you think PyRomusa AI has potential? Then leave a β so I know this information, so I know what you think about PyRomusa AI at the moment.
