nextcloud / nextcloud/integration_openai
Models should be exposed to admins as TaskProcessing providers to make fine-granular model selection possible
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 75
- Forks
- 32
- Avg merge
- 9d 8h
- Merged PRs (30d)
- 4
Description
I think the way we currently expose models in integration_openai is wrong.
Status quo
We have one TaskProcessing provider per task type for integration open ai. For these providers we add an optional input shape of "model" that allows users to select the model the task should be run with. Additionally, we allow configuring different openAI-compatible service providers for categories of tasks (e.g. text processing, I believe).
My opinion on the status quo
- Users should not be able to change the model in the assistant UI, because it's error-prone (shows models that may not even work for the modality of the task type) and because the admin may not even want to expose all models that the service provider offers.
- The UI for configuring additional service providers is confusing (from a UX perspective), but still not fine-grained enough for some use cases and would get more confusing if we implemented model and/or service provider choice for the admin, per task type.
My preferred solution
I think we should take a look at how llm2 and stt_whisper2 expose models. There should be a one-to-one correspondence between task processing providers and the models that will execute the task. This will allow the admin to use the TaskProcessing provider selection UI to select the model they want per task type. The integration_openai settings would shrink to just entering the credentials of one or multiple service providers, whose models would be automatically exposed to the admin. The optional "model" input shape would be removed.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing how llm2 and stt_whisper2 expose models through TaskProcessing providers. Then inspect integration_openai's current task providers, model input shape, and service-provider settings to define the required provider and admin-selection changes; done means each model is exposed as a selectable provider and the optional model input is removed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- ai, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100