Eloquent-Algorithmics / Automotive-AI

Developed to assist in managing day-to-day operations of a mobile automotive diagnostic, and car key replacement business. This project integrates several cutting-edge technologies to improve hands-free interaction while driving. Automotive-AI can be customized for 2-way interaction with any available API services.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Automotive AI: Voice Activated Vehicle Diagnostic Assistant πŸš—πŸ—£οΈ

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.

⚠️ This is a work in progress ⚠️

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.

πŸ› οΈ Built and tested using:

πŸš€ Installation

  1. 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

Running the Application

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

Running the Application

Without a vehicle communication interface:

python -m app

With an ELM327 device connected:

python -m app --device elm327

πŸŽ™οΈ Voice Commands

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"

πŸ“Ÿ Using an ELM Simulator

ELM327 emulator: [GitHub](https://github.com/Ircama/ELM327-emulator) com0com virtual serial port driver: [SourceForge](https://sourceforge.net/projects/com0com/) (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.

πŸ“ˆ Data Stream (Under Construction)

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.

About

Developed to assist in managing day-to-day operations of a mobile automotive diagnostic, and car key replacement business. This project integrates several cutting-edge technologies to improve hands-free interaction while driving. Automotive-AI can be customized for 2-way interaction with any available API services.

License:MIT License


Languages

Language:Python 99.4%Language:Batchfile 0.4%Language:Shell 0.2%