Skip to content

openedx/openedx-ai-extensions

AI Extensibility Framework

Experimental Status License AI Extensibility Framework documentation

An experimental Open edX plugin for AI-powered educational workflows

The AI Extensibility Framework is a proof-of-concept plugin that explores artificial intelligence integration in the Open edX platform. It provides a modular, extensible architecture for building AI-powered workflows that enhance the learning experience.

This plugin demonstrates how AI capabilities can be integrated into Open edX in a modular and extensible way, following the principle of "open for extension, closed for modification." It provides infrastructure for AI workflows while maintaining compliance with educational requirements and Open edX standards.

Warning

Experimental - This plugin is in active development and should not be used in production environments.

This is an exploratory project developed by edunext as part of FC-111 to investigate AI extensibility patterns for the Open edX platform. The plugin serves as a testing ground for AI integration concepts that may inform future development.

What Works:

  • Frontend integration with Learning MFE and Authoring MFE via plugin slots
  • Basic content extraction from course unit
  • AI-powered content summarization
  • Modular workflow-based architecture for AI processing
  • Support for multiple LLM providers via LiteLLM (OpenAI, Anthropic, local models)
  • Context-aware AI assistance examples integrated into the learning experience
  • Observable workflows with event analytics in aspects
  • Configuration-driven behavior without code changes

Documentation

Documentation is available on ReadTheDocs.

  • Open edX installation (Tutor-based deployment recommended)
  • Python 3.11 or higher
  • Node.js 18.x or higher (for frontend development)
  • API key for supported LLM provider (OpenAI, Anthropic, etc.)

Install the plugin in your Open edX environment using the provided tutor plugin:

pip install git+https://github.com/openedx/openedx-ai-extensions.git
tutor plugins enable openedx-ai-extensions
tutor images build openedx
tutor images build mfe
tutor local launch

After installation, you need to configure the plugin with your AI provider and set up workflows. The configuration involves:

  1. Provider Setup: Configure authentication and model routing for your chosen AI service
  2. Scope Configuration: Define where AI workflows will be available (courses, locations)
  3. Profile Configuration: Define what the AI will do and what information it will access

For detailed configuration instructions, see the Configuration Guide.

Quick Configuration Example

Add to your Tutor config.yml:

AI_EXTENSIONS:
  openai:
    API_KEY: "sk-proj-your-api-key"
    MODEL: "openai/gpt-4o-mini"

PLUGINS:
  - openedx-ai-extensions

Then configure scopes and profiles in the Django admin at /admin/openedx_ai_extensions/.

For automated or non-interactive environments, configure the plugin via Tutor's config.yml and build the images.

  1. Configure the Extension: Add the repository and AI provider settings to your Tutor config.yml:

    AI_EXTENSIONS:
      <your-config-name>:
        API_KEY: "your-api-key"
        MODEL: "openai/gpt-4o-mini"
  2. Enable and Build: Enable the plugin and rebuild the Open edX images to bake in the dependencies:

    tutor plugins enable openedx-ai-extensions
    tutor images build openedx
    tutor dev launch
  3. Initialize Database: Run migrations as a one-time setup step:

    tutor dev exec lms python manage.py lms migrate openedx_ai_extensions

Loading Demo Fixtures

A set of demo fixtures is included to quickly populate the database with example AI workflow profiles and scopes. These cover several common configurations: flashcards, box chat with summary, chat with function calling, streaming chat, educator assistant, and mocked streaming.

Load them with:

tutor dev exec lms python manage.py lms loaddata demo_profiles

Important

The fixtures do not include inline API keys — they rely on the global provider configuration in your Tutor config.yml (the AI_EXTENSIONS block). Make sure you have configured at least one provider with a valid key before using the profiles that call a real LLM.

If you need a per-profile API key override instead, edit the profile's content_patch in the Django admin and add an options block:

"processor_config": {
  "LLMProcessor": {
    "options": {
      "API_KEY": "your-api-key-here",
    },
  },
}
  • All code, comments, and documentation must be in clear, concise English
  • Write descriptive commit messages using conventional commits.
  • Follow the CI instructions on code quality.

Significant architectural decisions are documented in ADRs (Architectural Decision Records) located in the docs/decisions/ directory.

We welcome contributions! This is an experimental project exploring AI integration patterns for the Open edX platform.

How to Contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Make your changes following the code standards
  4. Write or update tests as needed
  5. Submit a pull request with a clear description

See the Contributing to the Open edX Project quickstart for more details about the project's code quality standards and review norms.

For questions or discussions, please use the Open edX discussion forum.

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.

This repository is covered by the Open edX maintainers program and the current maintainers are listed in the catalog-info.yaml file.

Community Support:

Note: As this is an experimental project, support is provided on a best-effort basis.

About

An edx-platform plugin that will house tools and helpers for working with AI.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors