openedx / openedx/openedx-ai-extensions

Allow have more than one processor in an orchestrator action

Open
#144 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
17
Forks
11
Avg merge
5h 33m
Merged PRs (30d)
4

Description

Use Case

Human in the loop for Badges requires at least 3 calls to LLMProcessor:

  1. Generate badge attributes based on course content
  2. Regenerate just in case
  3. Generate Badge json following Open Badges standard (Or any)

Our current config method with profiles don't allow to do this:

  "processor_config": {
    ...
    "LLMProcessor": {
      "function": "summarize_content",
      "provider": "qwen25"
    }
  },

With that config, if i try to call LLMProcessor two times, it will be call the same function.

  "processor_config": {
    ...
    "LLMProcessor": {
      "function": "summarize_content",
    },
  "LLMProcessor": {
      "function": "regenerate",
    },
  },

with this one, it will fail looking for a single object named with class_name

Suggested solution

Allow the profile to have many processor with a key.

{
  "processor_config": {

    "LLMProcessor": [
      {
      "summary": {
          "function": "summarize_content",
          "prompt": "summary_prompt"
          }
      },
      {
      "regenerate": {
          "function": "regenerate_response",
          "prompt": "regenerate_prompt"
          }
      }
    ]
  }
}

Then parse it as expected in the orchestrator to enable the conf of many processors.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the orchestrator action's processor configuration parsing and the LLMProcessor handling. Trace how a single processor is selected, then determine how keyed processor definitions could be represented and invoked distinctly; done means multiple LLMProcessor configurations can be used in one action without ambiguity.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
ai
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.