Join the Discord Server (https://discord.gg/VsVuxche)
An experimental open-source application that integrates GPT-3.5-turbo (or GPT-4), NLP, TTS, STT, and an OBD-II ELM327 device to create a voice-activated, hands-free, vehicle diagnostic assistant.
๐ ElevenLabs TTS, Google Calendar integration coming soon.
- Windows 11
- Python 3.11.3
- OBDlink MX+ Bluetooth ELM327
- 2005 and 2021 Ford Vehicles
- Desktop testing using an ELM327 emulator
- Clone the repository:
git clone https://github.com/Explorergt92/Automotive-AI.git
- Run the following command in the root directory:
./install.sh
.\install.bat
- Set your API keys and variables in the
.env.template
file and save it as.env
without a file extension.
Without a vehicle communication interface:
python main.py
With an ELM327 device connected:
python main.py --device elm327
Current voice commands include:
- "engine rpm": "010C",
- "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 conversation"
- "check gmail"
- "what's next on my google calendar"
After a conversation has been started you can use the following voice commands to manage the conversation:
- "clear all history"
- "delete the last message"
- "end the conversation"
- "summarize the conversation history"
ELM327 emulator: GitHub com0com virtual serial port driver: SourceForge (to create a virtual COM port pair).
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.