GitHub

Abbey 📚 Project Description

What is the project about?

Abbey is a self-hostable, private AI interface that acts as a central hub for interacting with various AI models and data sources. It's designed to be highly configurable, allowing users to choose their preferred Large Language Models (LLMs), Text-to-Speech (TTS) models, Optical Character Recognition (OCR) models, and search engines. It supports multiple users with custom authentication or can be used as a personal AI assistant.

What problem does it solve?

Abbey addresses several key problems:

  • Fragmentation of AI tools: It consolidates interaction with multiple AI models and services into a single, unified interface. Instead of juggling different platforms for different tasks, users can access everything through Abbey.
  • Privacy concerns: By being self-hosted, Abbey allows users to maintain control over their data and interactions with AI, avoiding sending sensitive information to third-party cloud services.
  • Lack of customization: Many AI platforms offer limited customization. Abbey provides extensive configuration options, letting users tailor the system to their specific needs and preferences.
  • Accessibility to AI: It provides a user-friendly interface for interacting with complex AI models, making them more accessible to a wider range of users, including students and professionals.

What are the features of the project?

  • Notebooks: A core feature for organizing thoughts, notes, and AI interactions (likely similar to Jupyter notebooks or collaborative documents).
  • Basic Chat: Direct interaction with chosen LLMs.
  • Document Handling: Upload and interact with documents, including OCR for scanned PDFs.
  • YouTube Video Integration: Likely allows summarizing, querying, or otherwise interacting with YouTube videos.
  • Multi-User Support: Can be run as a server with user authentication.
  • Highly Configurable: Users can select their preferred AI models and services for various tasks.
  • Private and Self-Hosted: Runs locally or on a private server, ensuring data privacy.
  • Extensible: Designed to be easily extended with new integrations and interfaces.
  • Web Search Integration: Incorporates web search capabilities using Bing and SearXNG.
  • File Storage Options: Supports local file storage and Amazon S3.
  • Authentication Options: Supports Google, GitHub, Keycloak, and Clerk for user authentication.
  • Email Integration: Sends email notifications for shared assets and other events (optional).
  • Customizable Branding: Allows changing the application name, logos, and background images.
  • Experimental Web Crawling: A new feature for scraping web content (with security caveats).

What are the technologies used in the project?

  • Backend:
    • Python (Flask framework)
    • MySQL (database)
    • Celery (task queue, likely for asynchronous AI tasks)
    • Docker and Docker Compose (for containerization and deployment)
  • Frontend:
    • Next.js (React framework)
  • AI Integrations:
    • LLMs: OpenAI, Anthropic, Ollama, Open Router, and other OpenAI-compatible APIs (e.g., LocalAI, LMStudio).
    • TTS: OpenAI, ElevenLabs, OpenAI-compatible APIs.
    • OCR: Mathpix.
    • Search Engines: Bing, SearXNG.
    • Embedding Models: OpenAI, Ollama, OpenAI-compatible APIs.
  • Authentication:
    • OAuth2 providers (Google, GitHub)
    • Keycloak (self-hosted identity and access management)
    • Clerk
  • File Storage:
    • Local file system
    • Amazon S3
  • Email:
    • Sendgrid
    • SMTP
  • Web Crawler:
    • Playwright

What are the benefits of the project?

  • Privacy: Data remains under the user's control.
  • Customization: Tailor the AI models and services to specific needs.
  • Consolidation: Access multiple AI tools in one place.
  • Cost Control: Potentially reduce costs by using self-hosted models or choosing cost-effective APIs.
  • Extensibility: Adapt and expand the system with new features and integrations.
  • Multi-User Collaboration: Share resources and collaborate with others (with authentication setup).

What are the use cases of the project?

  • Personal Knowledge Management: Organize notes, documents, and research, leveraging AI for summarization, question answering, and content generation.
  • Education: Students can use it for research, studying, and interacting with educational materials.
  • Professional Work: Professionals can use it for tasks like document analysis, content creation, and research.
  • AI Research and Development: Provides a platform for experimenting with different AI models and building custom AI-powered applications.
  • Team Collaboration: Teams can share knowledge, collaborate on projects, and leverage AI for various tasks.
  • Creating Custom AI Assistants: The extensible nature of Abbey allows developers to build specialized AI assistants tailored to specific domains or tasks.
abbey screenshot