How is the application initialized?

Let's say the user launched the application using the REPL, i.e., by executing:

source venv/bin/activate
python3 -m aurora

Now, they want to just enter questions, which we shall answer.

But: A lot of stuff has to happen in between:

  1. We need to establish a connection to Ollama (under which URL?)
  2. We need to establish a connection to the vector database (where is it? which one?)
  3. Maybe there is no vector database yet, then we need to create it (how?)
  4. To do so, we need the data (where is it?)
  5. Then we need to load the model (which one?), system prompt etc.

Some of these things might be dynamically configured via config files. Others are okay to hard-code, but they still need to be hard coded somewhere.

Ultimately, the app needs an instance of KnowledgeBase and Assistant, so this question boils (from a technical perspective) down to: Where (which module, method, ...) do these instances come from?

Edited by Jakob Moser