Studio: AI models settings, @embed and @decide in the schema editor, and the /v1 API
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- backend-api-design, full-stack
Direzione di ricerca
Start with the schema editor entry point in src/features/instance/applications/components/SchemaEditorView/FieldRow.tsx and the settings save flow in src/hooks/useRollingConfigUpdate.tsx; read the linked Harper source files to understand the supported settings and directives. Map the work across model settings, schema editing, and the /v1 controls, noting the Harper version gates and Fabric managed entries. Done means the acceptance criteria pass, including hidden keys, saved settings, and usable API and schema controls; adding customer models depends on HM#279.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Harper can call AI models: embeddings (turning text into vectors), generative models (writing text) and, from 5.3, decisions (picking a value). Apps use them through models.embed(), models.generate() and models.decide(), through the @embed and @decide schema directives, and through an OpenAI-style /v1 API. On Fabric, Fabric sets up some models behind the scenes. Studio shows none of this. A customer can't see which models their instance has, can't add their own, can't add @embed or @decide in the schema editor, and can't turn on the /v1 API without the raw settings editor.
What core already provides (harper)
- The
modelssettings block (5.1+). Each entry has a name (apps usedefaultunless they pick another) and abackend:embeddingandgenerativeentries useollama,openai,anthropicorbedrockdecisionentries (5.3+) use thegenerativebackend, which decides with a generative entryapiKeycan be a${ENV_VAR}placeholder instead of the key itself- any entry can name a
fallback - from 5.3, Harper reloads
modelsfrom the settings file without a restart
@embed(source, model)(5.1+) on a vector field fills it from another field whenever a record is written, and indexes it for vector search.@decide(source, ...)(5.3+) on aString,BooleanorIntfield fills it from another field using a decision model. AStringfield needsvalues, and anIntfield needsminimumandmaximum. Optional arguments:model,confidence,decisionandinstructions. If the model can't decide, the write fails.- The
/v1API (5.2+):/v1/embeddings,/v1/chat/completionsand/v1/models.- Off by default. It's turned on with
modelsGateway.enabled. - It's served only while REST is running, which an app's own
rest: trueor a rootrestsection turns on. - All three need an admin user.
- Off by default. It's turned on with
- Source (v5.3.4): configValidator.ts, graphql.ts, v1/index.ts, bootstrap.ts.
On Fabric today
- Fabric writes model entries on new instances:
- On a GPU host: the host's embedding models (by default
embedding.default, plusembedding.multimodalwhen the host runs one), andgenerative.defaultwhen the host is set up for it. - On other instances:
embedding.default, routed to the nearest GPU host. That route doesn't work across hosts yet (HM#178).
- On a GPU host: the host's embedding models (by default
- Fabric replaces the whole
modelsblock, so a customer's own entries are wiped. That's fixed by HM#279, and adding models in Studio waits on it.
What to build
- An "AI models" section in instance settings, shown only on Harper 5.1+ and only to admin users.
- Show the instance's models: for each kind, list each entry's name, backend and model, and mark the ones Fabric manages. Never show an
apiKeyor token. - Add, edit and remove the customer's own models (Harper 5.3+, once HM#279 lands):
- pick a kind, a name and a backend, then the backend's fields
- accept a key or a
${ENV_VAR}placeholder inapiKey, and never show a saved key back - save to Harper's settings. No restart is needed, since Harper reloads
modelsfrom 5.3 - don't offer to edit or remove entries Fabric manages
- Schema editor: Studio's schema editor offers neither directive today (FieldRow.tsx). Offer only model names the instance has.
@embedon vector fields: source field and model.@decideonString,BooleanandIntfields, on Harper 5.3+: source field, model, and values or a range.
-
/v1API (Harper 5.2+):- Turn it on or off, and show its address on the instance's HTTPS address.
- Save with Studio's existing settings save and restart (useRollingConfigUpdate.tsx).
- If no app or root setting turns on REST, say that
/v1won't answer until one does.
- Show Harper's own error when it refuses a setting or a schema.
- Explain, next to the controls:
- which models Fabric provides on this instance, and that Fabric manages them
@decidefails the write when the model can't decide- the
/v1API needs an admin user
Acceptance criteria
- A customer can see which models their instance has, without seeing any key.
- Once HM#279 lands, a customer can add their own model on Harper 5.3+, and it's still there after Fabric's next pass.
- A customer can add
@embedand@decidefields in the schema editor, and records written afterwards get the derived values. - A customer can turn the
/v1API on and reach it at the address Studio shows.
Dependencies
- Adding the customer's own models waits on HM#279.
- Studio already reads and saves settings through Fabric's command channel, and that requires "update" permission on the cluster in Fabric.
- Lingua principale
- TypeScript
- Stelle
- 5
- Fork
- 4
- Merge medio
- 1g 19h
- PR unite (30g)
- 144
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di HarperFast/studio
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
HarperFast/studio#2070 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
HarperFast/studio#2067 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
HarperFast/studio#2053 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
HarperFast/studio#2026 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
HarperFast/studio#2021 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di HarperFast/studio
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
complexity:simple priority:P3 ready-to-build
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
junruxiong/IncarnaMind#2919 ·
-
Runner API: GET /api/jobs/<id> returns branch: null; the branch only appears under input.branchAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
radiancelux/prgenie#204 ·
I maintainer di solito rispondono entro 1 giorno
-
bug documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
cqframework/vscode-cql#198 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
WalletConnect/walletconnect-monorepo#7392 · 1 commento ·