O.A.I.S is an AI-powered system designed for dynamic interactions and integrations. The project leverages advanced language models and various tools to provide an extensible platform for development.
- Dynamic Code Generation: Generate and execute code on the fly using OpenAI models.
- Database Management: Manage user profiles, long-term memory, and chatroom memory with robust database systems.
- Multi-Model Support: Integrate and switch between OpenAI and Google Gemini for varied capabilities.
- User Profiles: Customize and manage different user profiles, including their unique memory databases.
- File Operations: Perform operations such as writing to files, capturing images, and recording audio.
- Hardware Interaction: List USB devices, discover Bluetooth devices, capture images from the webcam, and record audio.
- Extensible and Modular: Easily extend the system with additional functionality and integrations.
- Python 3.8 or higher
- pip
- Homebrew (for macOS)
-
Clone the repository:
git clone https://github.com/sulaimonao/O.A.I.S.git cd O.A.I.S
-
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # For macOS/Linux venv\Scripts\activate # For Windows
-
Install dependencies:
pip install -r requirements.txt
-
Initialize the database:
python -m utils.database
-
Generate 'secret-key':
python random_secret_key.py
-
Install additional system dependencies (macOS):
brew install portaudio
-
Run the application:
python app.py
-
Start the application by running:
python app.py
-
Open your web browser and navigate to
http://localhost:5000
. -
Interact with the system through the web interface.
/list_usb_devices
: List connected USB devices./list_bluetooth_devices
: Discover nearby Bluetooth devices./capture_image
: Capture an image from the webcam./record_audio
: Record audio from the microphone./execute_command
: Execute OS commands./api/profiles
: Manage user profiles (GET to list, POST to create)./api/profiles/select
: Select an active user profile./api/memory
: Manage memory settings (GET to check, POST to update).
-
Modifying Configurations: Edit the
.env
file to update API keys and other configurations. -
Adding New Functionality: Add new functions in the
utils/
directory and integrate them intoapp.py
.
- Validation: Ensure responses from both OpenAI and Google Gemini are validated for format and content integrity through validation.py.
- Error Handling: The system includes robust error logging to handle unexpected issues during interactions with AI models or database operations.
Contributions are welcome! Feebacks are even more appreciated