https://github.com/openedx/openedx-ai-extensions
An edx-platform plugin that will house tools and helpers for working with AI.
https://github.com/openedx/openedx-ai-extensions
Last synced: 30 days ago
JSON representation
An edx-platform plugin that will house tools and helpers for working with AI.
- Host: GitHub
- URL: https://github.com/openedx/openedx-ai-extensions
- Owner: openedx
- License: agpl-3.0
- Created: 2025-07-29T15:04:02.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2026-04-28T17:39:37.000Z (about 2 months ago)
- Last Synced: 2026-04-28T19:32:50.500Z (about 2 months ago)
- Language: Python
- Size: 2.59 MB
- Stars: 13
- Watchers: 0
- Forks: 6
- Open Issues: 24
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
Awesome Lists containing this project
README
AI Extensibility Framework
###########################
|Status Badge| |License Badge| |Documentation Badge|
.. |Status Badge| image:: https://img.shields.io/badge/Status-Experimental-orange
:alt: Experimental Status
.. |License Badge| image:: https://img.shields.io/badge/License-AGPL%20v3-blue
:alt: License
.. |Documentation Badge| image:: https://img.shields.io/badge/Documentation-green
:target: https://docs.openedx.org/projects/openedx-ai-extensions/en/latest/index.html
:alt: 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.
.. contents::
:local:
:depth: 2
Overview
********
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.
Current Status
**************
.. 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 `_.
Installation
************
Prerequisites
=============
- 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.)
Installation
============
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
Getting Started
===============
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``:
.. code-block:: yaml
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/``.
Usage
=====
Setting Up Development Environment
===================================
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``:
.. code-block:: yaml
AI_EXTENSIONS:
:
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:
.. code-block:: bash
tutor plugins enable openedx-ai-extensions
tutor images build openedx
tutor dev launch
3. **Initialize Database**:
Run migrations as a one-time setup step:
.. code-block:: bash
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",
},
},
}
Code Standards
==============
- 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.
Architecture Decisions
======================
Significant architectural decisions are documented in ADRs (Architectural Decision Records) located in the ``docs/decisions/`` directory.
Contributing
************
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 `_.
References
**********
- `Open edX Conference Paris 2025 Presentation `_
- `Open edX Plugin Development `_
- `LiteLLM Documentation `_
- `Architectural Decision Records (ADRs) `_
- `AI Extension WG Demo (before v1) `_
- `AI Extension Framework documentation `_
License
*******
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.
Maintainer
**********
This repository is covered by the Open edX maintainers program and the current maintainers are listed in the `catalog-info.yaml `_ file.
**Community Support:**
- Open edX Forum: https://discuss.openedx.org
- `GitHub Issues `_
**Note:** As this is an experimental project, support is provided on a best-effort basis.