nextcloud / nextcloud/llm2

Report approximate task progress to the Assistant while generating

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

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
32
Forks
8
Avg merge
3d 14h
Merged PRs (30d)
8

Description

Background

llm2 is a Nextcloud External App (ExApp) that runs a local language model and answers AI requests -summarize, free prompt, reformulate, etc. - through Nextcloud's Task Processing framework: a user triggers an action, Nextcloud creates a task, llm2 picks it up, runs the model, and returns the result

Task Processing supports a progress value (0–100%) that a provider can report while it works, and the Assistant renders it as a progress bar. llm2 never reports it, so while the model generates the user sees no real progress - for a long summary the app can look frozen

Proposed change

Make llm2 report an approximate progress while it processes a task, so the Assistant's progress bar advances instead of staying at 0 until the result is suddenly ready. Reporting progress for at least one task type is a good starting point.

"Approximate" is deliberate: a language model generates text token by token and has no inherent notion of percent-complete, so a reasonable estimate — with its limitations understood - is what we are after.

Pointers

  • llm2's task handling - its main loop and the per-task processors - lives in this repo.
  • The library llm2 uses to talk to Nextcloud is
    nc_py_api; look at how a provider reports task
    results, and what else a provider can report back while a task runs.
  • Nextcloud's developer documentation has a Task Processing section worth reading.
  • Under the hood the model runs via llama.cpp (through llama-cpp-python / LangChain); text
    generation is where any real progress signal would come from.

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

Read llm2's task-handling main loop and per-task processors first, then inspect nc_py_api's task-result reporting and other in-progress provider updates. Check Nextcloud's Task Processing documentation and the llama.cpp generation path; done means at least one task type reports a reasonable approximate progress value that the Assistant renders while generation is ongoing.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.