Studio: AI models settings, @embed and @decide in the schema editor, and the /v1 API
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- TypeScript
- スター
- 5
- フォーク
- 4
- 平均マージ
- 1日 19時間
- マージ済み PR(30日)
- 144
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
HarperFast/studio のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
HarperFast/studio#2070 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
HarperFast/studio#2067 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
HarperFast/studio#2053 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
HarperFast/studio#2026 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
HarperFast/studio#2021 ·
メンテナーはふだん 2 日以内に返信
HarperFast/studio の issue をすべて見る
似ている issue
-
e2e-failure ready-to-code
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
redhat-developer/rhdh-plugin-export-overlays#4733 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
S-Needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 2 日以内に返信
-
CLI Empathy needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
chromaui/chromatic-cli#1665 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
software-mansion/argent#1854 ·
メンテナーはふだん 1 日以内に返信
-
FAQ Spacing Issueオープン
難易度 2/5 1時間未満 初心者へのやさしさ 65/100
nilbuild/developer-roadmap#10557 ·
メンテナーはふだん 1 日以内に返信