Join the Discord Server
An experimental open-source application that integrates the OpenAi gpt-3.5-turbo-0125 or gpt-4-turbo models via API, NLP, TTS, STT, and an OBD-II ELM327 device to create a voice-activated, hands-free, vehicle diagnostic assistant.
03/17/2024: Updated to use OpenAI v1
11/14/2023: Added "development" branch with the option to use text input in the terminal instead of voice commands.
- Windows 11 & Ubuntu 22.04
- Python 3.12
- Requires Miniconda
- OBDlink MX+ Bluetooth ELM327
- Desktop testing is possible using an ELM327 emulator
- Fork the repository and clone it to your local machine:
git clone https://github.com/<your_username>/Automotive-AI.git
Linux Installation and use Instructions
./install.sh
Set your API keys and variables in .env.template
and save it as .env
cp .env.template .env
Without a vehicle communication interface:
python -m app
With an ELM327 device connected:
python -m app --device elm327
Windows Installation an Use Instructions
.\install.bat
Set your API keys and variables in .env.template
and save it as .env
copy .env.template .env
Without a vehicle communication interface:
python -m app
With an ELM327 device connected:
python -m app --device elm327
Current voice commands include:
- "engine rpm"
- "intake air temperature"
- "fuel tank level"
- "time run with MIL on"
- "engine coolant temperature"
- "read trouble codes"
- "freeze frame data"
- "pending trouble codes"
- "clear trouble codes"
- "vehicle identification number"
- "calibration id message count"
- "calibration id"
- "calibration verification numbers"
- "start a diagnostic report"
- "send a diagnostic report"
- "next on outlook calendar"
- "create a new outlook appointment"
- "check outlook"
- "send an email with outlook"
- "ask question"
- "start a conversation"
- "check gmail"
- "what's next on my google calendar"
To start a conversation that uses JSON for conversation history, use the "start a conversation" command.
After a conversation has been started you can use the following voice commands to manage the conversation history:
- "clear all history"
- "delete the last message"
- "summarize the conversation history"
- "end the conversation"
After installing com0com, run:
elm -p COM6 -a 500000
Set the COM port in the .env
file to COM7
.
python air_fuel_datastream.py
Streams data from the OBD-II ELM327 device to the console, but there's currently no way to stop the stream other than closing the application.