Welcome to RIXA
"Real tIme eXplainable Artificial Intelligence"
A project for end user focused XAI (and other stuff)
You are entering an active construction zone!
⚠️ A stable release is expected in the middle of November to early DecemberInstall, program and deploy is currently not possible except for a few handpicked cases.
However we would love to see RIXA deployed. If you would like to try out or use RIXA contact finn.schwall@iosb.fraunhofer.de with a rough idea of usage and timeline.
A version that works (for a case) should be ready in < 2 weeks.
This is mainly due to dev priorities. We intend RIXA to be easily locally installable at some point, where installing plugins will just be drag and drop. But as of now more pressing is optimizing the LLM pipeline and the stability of the plugin system.
However deploying RIXA is the highest priority so if you are reading this and can think of a use case we will gladly try to finish up the areas that would be required to allow for timely use.
The plugin system is changed from the ground up to make it more stable and ease its use. Reworked RIXA will break parts of the current API. Installations will not be compatible as the project is refactored into smaller, more manageable projects.
Current development is mainly going on in
RIXA is primarily a combination of dashboard and NLP for integration between XAI code and a more "natural" interface. The underlying paper is Coming soon (~December).
This readme aims to give a quick overview for getting started. All technical questions and advanced infos are in the docs .
There is no demo currently :(
Here for the latest main branch version. For all other versions (also locally) it is under docs/build/html. For branches other than main you will have to build it.
Hardware requirements
Basically none for the pure server (<300 MB of RAM, negligible CPU time). The requirements come from the plugins and the chat backend. If you want to run the latter one locally they are substantial. For usable results near real time I would recommend at least 12 GB RAM, 8 GB VRAM and a decent CPU with AVX2 support. It also works with way less but the experience will be subpar.
If you do not intend to develop plugins or don't have any idea how package management works you are probably better off with the integrated solution. It comes with a python/C environment and an automatic package manager.
UNFINISHED
For the server you need Python>=3.10.
Server + Plugin API:
pip3 install rixa
Plugin API only. Works with lower python versions but functionality may be reduced.
pip3 install git+https://github.com/finnschwall/RIXA#subdirectory=plugins
RIXA works fine without venvs, conda, pyenv etc. But it comes with extensive support for all of those. The "RIXA way" is to install plugins with different requirements in different environments so plugin dependencies don't interfere with each other.
Just start RIXA via terminal
rixaserver runserver
or desktop shortcut.
The instructions below can also be used in the enduser installation, however defaults are supplied. Also a working directory is automatically created and managed in the RIXA data folder.
The server requires a directory to work from that contains temporary files, databases, config files etc. Such a directory can be created either by supplying path or by navigating to a folder.
#A
rixaserver initialize-dir PATH
#B
rixapserver initialize-dir
A local database is automatically created when you create a new WD. Should you switch the RIXA version and encounter errors you can update the db scheme with
rixaserver update_db
Should you otherwise encounter errors and there is nothing of interest in the db you can rebuild it at any time with
rixaserver update_db --rebuild
That is also necessary should you e.g. switch to mysql.
If conservation of the dbs contents is important you will have to use djangos managment commands to manually alter the db. All of djangos managment commands are available through
rixaserver django
To run the server you must be in the wd. Alternatively you can set the wd as an env var like this:
export RIXA_WD=PATH
Then you can run
rixaserver runserver
#or alternatively specify port and ip. This will open the server to your entire network.
rixaserver runserver localhost:8000
The runserver
command is a link to djangos runserver
with some settings of paths before running.
In the wd there is a plugin folder. This folder is always added to the search paths for plugins.
Other search paths and more complex configurations have to be done using the config.ini
.
There are some helpful commands for all of this available in
rixaserver
UserWarning: resource_tracker: There appear to be 1 leaked shared_memory objects to clean up at shutdown
If it looks something like this then you can ignore it. See issues pages.
I recommend pyenv with venv plugin. In the docs under the advanced installation page the most important steps are listed to get both running with RIXA.
You can install from three branches. There is main
, beta
and dev
.
main
aims to provide stable code.
beta
is semistable and should reflect newer features currently nonexistent. dev
is for ongoing development.
Unless you have a very good reason don't touch the dev
branch. It seldom contains a working version.
If you install it will automatically be built from main
. For dev
or beta
you can use for the server:
pip3 install git+https://gitlab.cc-asp.fraunhofer.de/xai-hiwi/rixa/rixawebserver.git@dev
and for the plugins
pip3 install git+https://gitlab.cc-asp.fraunhofer.de/xai-hiwi/rixa/rixawebserver.git@dev#subdirectory=plugins
For options add a hashtag at the end with the build option following. Several options can be delimited by an ampersand.
If you wish to have a look at the dev branch then a local installation is recommended. Pull the repo and1
pip install -e PATH_TO_PROJECT
Options are supported here too.
pip install -e PATH_TO_PROJECT[OPTION]
There are currently two options for the installation: standard
and doc
. It is strongly recommended to install
with standard
. Otherwise the standard plugins will not work.
If you want to be able to build the docs you also need doc
. For installing e.g. with full:
Footnotes
-
Pulling and not installing is not supported. It will likely lead to path issues. ↩