Project

rails_ai

0.0
The project is in a healthy, maintained state
A comprehensive AI toolkit for Rails with multi-provider support, context awareness, and performance optimizations
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 2.4
~> 0.14
~> 3.10
~> 3.12
~> 1.50
~> 0.22
~> 1.0
~> 6.2
~> 3.19

Runtime

 Project Readme

Rails AI

A comprehensive AI toolkit deeply integrated into Rails applications with multi-provider support, context awareness, performance optimizations, and Agent AI system for autonomous multi-agent collaboration.

๐Ÿš€ Features

Core AI Capabilities

  • Multi-Provider Support: OpenAI (GPT-5, GPT-4o, DALL-E 3, Sora), Anthropic (Claude 3.5 Sonnet), Google Gemini (2.0 Flash), with zero dependencies!
  • Text Generation: Advanced text generation with streaming support
  • Image Generation & Analysis: DALL-E 3, Gemini 2.0 Flash image generation and analysis
  • Video Generation: Sora and Gemini 2.0 Flash video generation
  • Audio Processing: Text-to-speech and audio transcription
  • Embeddings: High-quality text embeddings for semantic search

๐Ÿค– Agent AI System (NEW!)

  • Autonomous Agents: Create multiple AI agents that work independently and collaboratively
  • Specialized Agent Types: Research, Creative, Technical, and Coordinator agents
  • Agent Teams: Organize agents into teams with different collaboration strategies
  • Task Management: Intelligent task assignment and delegation between agents
  • Agent Communication: Built-in messaging system for agent-to-agent communication
  • Memory System: Persistent memory for each agent with importance-based retention
  • Health Monitoring: Comprehensive health checks and performance monitoring

Context Awareness

  • User Context: Track user-specific information and preferences
  • Window Context: Capture application state and request context
  • Image Context: Analyze and understand image metadata and content
  • Temporal Context: Time-aware AI operations

Performance Optimizations

  • Smart Caching: Intelligent caching with compression and TTL
  • Request Deduplication: Prevent duplicate API calls
  • Connection Pooling: Efficient HTTP connection management
  • Batch Processing: Process multiple operations efficiently
  • Performance Monitoring: Built-in metrics and monitoring

Rails Integration

  • Rails 5.2+ Support: Backward compatible with Rails 5.2 through 8.0
  • Controller Concerns: Easy integration with Rails controllers
  • Helper Methods: View helpers for AI operations
  • Rails Events: Integration with Rails event system
  • Configuration: Flexible configuration system

๐Ÿ“ฆ Installation

Add this line to your application's Gemfile:

gem 'rails_ai'

And then execute:

$ bundle install

โš™๏ธ Configuration

Basic Setup

# config/initializers/rails_ai.rb
RailsAi.configure do |config|
  config.provider = :openai  # or :anthropic, :gemini, :dummy
  config.default_model = "gpt-5"  # Latest GPT-5 model!
  config.token_limit = 4000
  config.cache_ttl = 1.hour
  config.stub_responses = false
end

Environment Variables

# .env
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here

๐ŸŽฏ Quick Start

Basic AI Operations

# Text generation
response = RailsAi.chat("Write a blog post about AI")
puts response

# Image generation
image = RailsAi.generate_image("A sunset over mountains", model: "dall-e-3")
puts image

# Video generation
video = RailsAi.generate_video("A cat playing with a ball", model: "sora")
puts video

# Audio generation
speech = RailsAi.generate_speech("Hello world", voice: "alloy")
puts speech

# Image analysis
analysis = RailsAi.analyze_image(image_file, "What do you see?")
puts analysis

๐Ÿค– Agent AI System

Creating Agents

# Create specialized agents
research_agent = RailsAi.create_research_agent(name: "ResearchBot")
creative_agent = RailsAi.create_creative_agent(name: "CreativeBot")
tech_agent = RailsAi.create_technical_agent(name: "TechBot")
coordinator = RailsAi.create_coordinator_agent(name: "CoordinatorBot")

# Start the agent system
RailsAi.start_agents!

Agent Teams

# Create a content creation team
content_team = RailsAi.create_agent_team(
  "ContentTeam",
  [research_agent, creative_agent, coordinator],
  strategy: :collaborative
)

# Assign tasks to the team
content_team.assign_task({
  description: "Create a comprehensive marketing strategy",
  type: :creative
})

Agent Communication

# Agents can communicate with each other
RailsAi.send_agent_message("ResearchBot", "CreativeBot", {
  type: :research_findings,
  data: "AI market will reach $1.8T by 2030"
})

# Broadcast messages to all agents
RailsAi.broadcast_agent_message("CoordinatorBot", {
  type: :status_update,
  message: "All systems operational"
})

Task Management

# Submit tasks to the system
task = RailsAi.submit_task({
  id: "task_001",
  description: "Analyze customer feedback data",
  required_capabilities: [:analysis, :data_processing],
  priority: :high
})

# Auto-assign to best agent
RailsAi.auto_assign_task(task)

# Or manually assign
RailsAi.assign_task(task, "ResearchBot")

๐ŸŽจ Real-World Examples

Content Creation Pipeline

# Create content creation workflow
def create_blog_post(topic)
  # Research phase
  research_task = {
    description: "Research #{topic} for blog post",
    type: :analysis
  }
  content_team.assign_task(research_task)
  
  # Writing phase
  writing_task = {
    description: "Write blog post about #{topic}",
    type: :creative,
    dependencies: [research_task[:id]]
  }
  content_team.assign_task(writing_task)
  
  # Editing phase
  editing_task = {
    description: "Edit and optimize blog post",
    type: :problem_solving,
    dependencies: [writing_task[:id]]
  }
  content_team.assign_task(editing_task)
end

Customer Support System

# Create support agents
triage_agent = RailsAi.create_agent(
  name: "TriageAgent",
  role: "Support Triage",
  capabilities: [:classification, :routing]
)

technical_agent = RailsAi.create_technical_agent(name: "TechSupport")
billing_agent = RailsAi.create_agent(
  name: "BillingAgent",
  role: "Billing Support",
  capabilities: [:billing, :account_management]
)

# Support workflow
def handle_support_ticket(ticket)
  # Triage the ticket
  triage_result = triage_agent.think("Classify this support ticket: #{ticket[:description]}")
  
  case triage_result
  when /technical/
    technical_agent.assign_task(ticket)
  when /billing/
    billing_agent.assign_task(ticket)
  else
    # Escalate to human
    Rails.logger.info("Ticket requires human intervention: #{ticket[:id]}")
  end
end

Research and Development

# Create R&D team
researcher = RailsAi.create_research_agent(name: "R&D_Researcher")
architect = RailsAi.create_technical_agent(name: "SystemArchitect")
prototyper = RailsAi.create_creative_agent(name: "PrototypeDesigner")
coordinator = RailsAi.create_coordinator_agent(name: "R&D_Coordinator")

# R&D workflow
def develop_new_feature(requirements)
  # Research phase
  research_task = {
    description: "Research existing solutions for #{requirements[:feature]}",
    type: :analysis
  }
  researcher.assign_task(research_task)
  
  # Architecture phase
  architecture_task = {
    description: "Design architecture for #{requirements[:feature]}",
    type: :problem_solving,
    dependencies: [research_task[:id]]
  }
  architect.assign_task(architecture_task)
  
  # Prototype phase
  prototype_task = {
    description: "Create prototype for #{requirements[:feature]}",
    type: :creative,
    dependencies: [architecture_task[:id]]
  }
  prototyper.assign_task(prototype_task)
  
  # Coordination
  coordinator.coordinate_task(requirements, [researcher, architect, prototyper])
end

Advanced Usage

Context-Aware AI

# User context
user_context = RailsAi::UserContext.new(
  id: 123,
  email: "user@example.com",
  role: "premium",
  preferences: { language: "en", theme: "dark" }
)

# Window context
window_context = RailsAi::WindowContext.from_controller(self)

# Generate with context
response = RailsAi.generate_with_context(
  "Write a personalized email",
  user_context: user_context,
  window_context: window_context
)

Performance Optimization

# Warm up the system
RailsAi.warmup!

# Check performance metrics
metrics = RailsAi.metrics
puts "Average response time: #{metrics[:average_response_time]}ms"

# Clear cache if needed
RailsAi.clear_cache!

Agent Monitoring

# Check system status
status = RailsAi.agent_system_status
puts "Active agents: #{status[:active_agents]}"
puts "Pending tasks: #{status[:pending_tasks]}"

# Health check
health = RailsAi.agent_health_check
puts "System healthy: #{health[:system_healthy]}"

๐Ÿ“š Documentation

๐Ÿงช Testing

# In your tests
RSpec.describe "AI Features" do
  before do
    RailsAi.configure do |config|
      config.provider = :dummy
      config.stub_responses = true
    end
  end

  it "generates content" do
    result = RailsAi.chat("Hello")
    expect(result).to include("Hello")
  end
end

๐Ÿš€ Performance

Rails AI is optimized for performance with:

  • Smart Caching: Intelligent caching with compression
  • Request Deduplication: Prevents duplicate API calls
  • Connection Pooling: Efficient HTTP connection management
  • Batch Processing: Process multiple operations efficiently
  • Lazy Loading: Components loaded only when needed
  • Memory Management: Efficient memory usage with cleanup

๐Ÿ”’ Security

  • Input Sanitization: Automatic redaction of sensitive information
  • API Key Management: Secure API key handling
  • Error Handling: Comprehensive error handling and logging
  • Audit Logging: Full audit trail of AI operations

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

๐Ÿ“„ License

โš ๏ธ IMPORTANT: This is a NON-COMMERCIAL license

  • โœ… Personal use: Allowed
  • โœ… Open source projects: Allowed
  • โœ… Forking: Allowed for non-commercial purposes
  • โŒ Commercial use: Prohibited without explicit permission
  • ๐Ÿ’ฐ Commercial license: $999 per year
  • ๐Ÿ“ง Contact: amahdanieljack@gmail.com

See LICENSE_SUMMARY.md for complete details.

๐Ÿ“„ License

This project is licensed under the MIT License with Non-Commercial Use Restriction - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • OpenAI for GPT-5, GPT-4o, DALL-E 3, and Sora
  • Anthropic for Claude 3.5 Sonnet
  • Google for Gemini 2.0 Flash
  • The Rails community for inspiration and support

Rails AI - The future of AI in Rails applications! ๐Ÿš€

Now with Agent AI system for autonomous multi-agent collaboration! ๐Ÿค–

Zero dependencies, maximum performance, infinite possibilities! โœจ

๐Ÿ“„ License

โš ๏ธ IMPORTANT: This is a NON-COMMERCIAL license

  • โœ… Personal use: Allowed
  • โœ… Open source projects: Allowed
  • โœ… Forking: Allowed for non-commercial purposes
  • โŒ Commercial use: Prohibited without explicit permission
  • ๐Ÿ’ฐ Commercial license: $999 per year
  • ๐Ÿ“ง Contact: amahdanieljack@gmail.com

See LICENSE_SUMMARY.md for complete details.

๐Ÿ“„ License

This project is licensed under the MIT License with Non-Commercial Use Restriction.

โœ… Permitted Uses (No Permission Required)

  • Personal projects and learning
  • Educational purposes
  • Open source projects (non-commercial)
  • Forking and contributing to the project
  • Research and development

โŒ Restricted Uses (Permission Required)

  • Commercial software products
  • Commercial web applications
  • Commercial services or platforms
  • Any use that generates revenue
  • Use by commercial entities for business operations

๐Ÿ”’ Commercial Licensing

For commercial use, you must:

  1. Contact the author at amahdanieljack@gmail.com
  2. Obtain explicit written permission
  3. Agree to commercial licensing terms
  4. Pay the required annual licensing fee of $999 per year

Important: This license change protects the intellectual property while still allowing open source collaboration and personal use.