Skip to content

A collection of Python scripts to monitor the Elite Dangerous journal files and provide audio feedback using OpenRouter services.

License

Notifications You must be signed in to change notification settings

druellan/ED-AI-Companion

Repository files navigation

ED:AI Companion

A collection of Python scripts to monitor the Elite Dangerous journal files and provide audio feedback using OpenRouter services.

This script is a work in progress, primarily for personal use, as a learning experience, and to have fun with LLMs and ED. For something more complete and polished, I recommend checking out the COVAS:NEXT project.

Goal

The idea is to provide audio feedback for the most common events in the game, such as jumps, combat, docking, etc., while using the small and free LLMs from OpenRouter. Unlike COVAS:NEXT, this project does not provide interactivity with the AI, and the intention is to have an intelligence that can provide really useful information to the player without any input.

Features

  • Descriptive system prompt setups the instructions and information for the AI to decide what to say or just remain silent.
  • Each event can have a personalized parser that can be used to preprocess and enrich the information with web content and third-party APIs.
  • Grouping of consecutive events to send them in bulk to the AI.
  • The AI can make use of tools; we are injecting them directly in the system prompt to bypass the restrictions free LLMs usually have, so results can vary.
  • Memory:
    • ship-state.json - (fuel levels, last place visited, etc)
    • missions_memory.json - active missions
    • event_memory.json - list of the last 20.000 events in the game, last 20 are injected in the system prompt
    • response_memory.json - list of the last 20.000 AI responses, last 20 are injected in the system prompt
  • Average token count of 3.000 tokens per event.

Demo Videos

Reacting to undock, new destination, radio chatter and system arrival (Edge TTS without audio filters)

Reacting to mining: core found (Edge TTS with audio filters)

To make it work

You might need Python 3.x installed in the system.

  • Install the requirements with pip install -r requirements.txt
  • Copy or rename the config.py.example file to config.py
  • Open the config.py and paste your OpenRouter key on the LLM_API_KEY variable. The script should work without any other modification, but take a look at the settings in case you want to change something.
  • To run the script use python start.py You can run the script right from the start or when ED: Dangerous is already working.

You want to create your own parsers? Just create a new file in the /parsers directory using the exact name of the event you want to parse. I recommend copying another parser that provides a similar functionality to use as a template. Do you want to use Cortana/Eva voice on Windows? Use the registry patch file included: Microsoft-Eva-Mobile.reg to make that voice available.

About the config file

I'm changing the configurations a LOT, so new versions of the project might require update the config.py file.

Inspired by the work of:

Third party APIs used:

About

A collection of Python scripts to monitor the Elite Dangerous journal files and provide audio feedback using OpenRouter services.

Topics

Resources

License

Stars

Watchers

Forks

Languages