Skip to content

Keya-Moradi/Omni-AI

Repository files navigation

Omni-AI: AI Integration Platform

Omni-AI Login Screen

Description

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.

Getting Started

Run Locally

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

Features

  • 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

Screenshot

User Experience

Attributions

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

Technologies Used

  • 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

Next Steps (Stretch Goals)

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

Next Steps for API Requests in aiController.js

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

Contributing / Collaboration

  • 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 .env locally and placeholders in .env.example.

About

An AI Integration Platform where users can interact with multiple AI systems, such as ChatGPT and Gemini, which will collaborate to answer questions or offer solutions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors