Omni-AI is an AI integration platform that allows users to interact with multiple AI systems, such as OpenAI's ChatGPT and Google's Gemini. This platform provides an innovative way to see how different AI entities collaborate to respond to prompts. It also offers a dynamic interaction model where users can guide the AI's conversation and observe how different AI systems generate responses.
The idea behind this app was to create a tool that would facilitate a more interactive and nuanced conversation with AI by bringing in the perspectives of multiple AI systems, providing a richer and more diverse user experience.
- Deployed App: https://omni-ai-app-fc082d83eddb.herokuapp.com/
- Planning Materials: https://trello.com/b/u1LgmzUw/unit-2-project
- ERD (Entity Relationship Diagram): https://www.figma.com/board/fz3IJeRhmb1F15ARa9XcoJ/ERD-%3E-Omni---AI?node-id=36-330&node-type=frame&t=fjAfmchKwpqTMhlT-0
git clone https://github.com/Keya-Moradi/Omni-AI.git
cd Omni-AI
npm install
cp .env.example .env # if present; otherwise create .env matching keys below
# fill in .env with:
# MONGODB_URI=...
# SESSION_SECRET=...
# OPENAI_API_KEY=...
# GOOGLE_API_KEY=...
# GOOGLE_GEMINI_MODEL=gemini-flash-latest (or a model your key supports)
npm run dev
# visit http://localhost:3000- User authentication (signup, login, logout) with session storage in MongoDB
- Create, edit, view, and delete conversations tied to the logged-in user
- Multi-AI back-and-forth: ChatGPT and Gemini alternate responses using shared conversation context (default 1 turn each per prompt; configurable)
- Form CSRF protection, input validation, and rate limiting on auth/AI routes
- Static EJS views for login, dashboard, and chatbox
- OpenAI - Used for the ChatGPT API integration.
- Google Cloud - Used for the Gemini AI API integration.
- Google Auth Library - For Google Cloud service account authentication.
- Axios - For making API requests.
- bcryptjs - For password hashing in user authentication.
- EJS - For rendering views.
- Express.js - As the web application framework.
- Mongoose - For MongoDB object modeling.
- dotenv - For environment variable management.
- Nodemon - For development server.
- JavaScript
- Node.js
- Express.js
- MongoDB (Mongoose)
- EJS (Embedded JavaScript Templates)
- Axios
- OpenAI API (ChatGPT)
- Google Generative Language API (Gemini)
- HTML/CSS
- Security middleware: Helmet, express-session with MongoStore, express-rate-limit, csurf, express-validator
- Improved UI/UX: Enhance the user interface for a more user-friendly experience.
- AI Conversation Logs: Display detailed conversation logs for each AI interaction.
- AI Model Customization: Allow users to choose specific AI models (e.g., GPT-4) and customize the interaction settings.
- Multi-Language Support: Enable AI interactions in multiple languages.
- AI Summary: Provide a feature where AI generates a summary of each conversation.
- Real-time Collaboration: Allow multiple users to observe and guide the AI interactions in real-time.
For the aiController.js API requests, below is the code for the next steps:
// Download the JSON key file, which contains the credentials needed for API access.
// Google Auth setup for Gemini API
const auth = new GoogleAuth({
keyFile: GOOGLE_SERVICE_ACCOUNT_PATH,
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
});
// Helper function to send a request to the ChatGPT API- UX/UI is minimal today; we welcome contributions to improve design, layout, and overall experience.
- Open issues/PRs for features, performance, or security. Please keep real secrets out of git—use
.envlocally and placeholders in.env.example.

