________ __________.____ ._______ ____.___________ _______
\_____ \\______ \ | | \ \ / /| \_____ \ \ \
/ | \| | _/ | | |\ Y / | |/ | \ / | \
/ | \ | \ |___| | \ / | / | \/ | \
\_______ /______ /_______ \___| \___/ |___\_______ /\____|__ /
\/ \/ \/ \/ \/
A lightweight, high-performance AI assistant powered by Google's Gemini API
Oblivion is a modern C++ application that brings the power of large language models directly to your desktop without the computational overhead of running models locally. Designed with performance and efficiency in mind, it provides seamless AI assistance while maintaining minimal resource usage.
- Unnecessary API calls canceled.
- TTS integratred
| Component | Technology | Purpose |
|---|---|---|
| Core Language | C++17 | High-performance system programming |
| AI Provider | Google Gemini API | Advanced language model capabilities |
| HTTP Client | libcurl | Secure API communication |
| JSON Processing | nlohmann/json | Efficient data parsing |
| Build System | Make | Cross-platform compilation |
- Operating System: Windows 10/11 (Linux support in development)
- Compiler: GCC with C++17 support
- Internet Connection: Required for API communication
- Gemini API Key: Get your free key here
-
Clone the Repository
git clone https://github.com/Iftikha/Oblivion.git cd Oblivion -
Install libcurl
- Download from curl.se/windows
- Extract to
C://libcurl/ - Copy DLL files to project directory
-
Configure API Key To configure API-KEY, create .env and paste the following:
API_KEY=PASTE YOUR API KEY HERE
-
Create Required Directories
mkdir history touch history/history.txt -
Build and Run
make build make run
// Initialize Oblivion
Engine engine;
engine.init("your-api-key-here");
// Start conversation
cout << "You: Hello Oblivion";
string response = engine.sendRequest("Hello Oblivion");
cout << "Oblivion: " << response << endl;# Switch to new branch
git checkout v3.0
# Build
make build
# Run
make run=== OBLIVION - AI Assistant ===
Model: gemini-pro
Welcome, User!
You: > run chrome
Oblivion: Executing system command...
[ Chrome launched ]
You: Write a Python script to print numbers 1-10
Oblivion: Here's a simple script:
for i in range(1, 11):
print(i)
You: /bye
---
## π Project Structure
Oblivion/ | βββ main.cpp # Application entry point βββ audio_output/ # Saves the TTS audio files βββ include/ β βββ json.hpp # JSON library (included) β βββ Conversation.hpp # History class header β βββ Conversation.cpp # History management β βββ CommandParser.hpp # Parses and Executes Commands Class β βββ CommandParser.cpp # Parses and executes commands β βββ ResponseHandler.hpp # Manages the prompt Class β βββ ResponseHanlder.cpp # Manages Prompt β βββ Engine.hpp # Engine class header β βββ Engine.cpp # API communication βββ history/ β βββ history.txt # Conversation storage βββ commands/ β βββ commands.json # Conversation storage βββ Makefile # Build configuration βββ README.md # This file
---
## π§ Configuration
### Build Options
```makefile
# Build exe file
make build
# Run the exe file
make run
# Clean build files
make clean
- Model Selection: Supports
gemini-pro,gemini-2.0-flash - Response Length: Configurable token limits
- History Size: Adjustable conversation memory
We welcome contributions!
- Follow C++17 standards
- Include unit tests for new features
- Update documentation for API changes
- Ensure cross-platform compatibility
| Metric | Value |
|---|---|
| Startup Time | < 100ms |
| Memory Usage | ~15MB RAM |
| Response Time | 1-3 seconds (API dependent) |
| Storage | < 1MB per 1000 conversations |
This project is licensed under the MIT License - see the LICENSE file for details.
Iftikhar Ahmed
Software Engineer & AI Enthusiast
- GitHub: @khaixu30
- Email: [email protected]
- Google LLC - For the powerful Gemini API
- nlohmann - For the excellent JSON library
- curl team - For reliable HTTP client library
- C++ Community - For continuous language improvements
- β Core chat functionality
- β Conversation history
- β Gemini API integration
- β Windows support
- β System commands execution
- π TTS Integrated
- π Cross-platform support
- π Plugin architecture
- π Advanced automation
β Star this repository if you find it helpful!
Made with β€οΈ and C++