Skip to content

feat: add model vendor and display group management - #576

Merged
chenyme merged 1 commit into
devfrom
provider
Aug 6, 2026
Merged

feat: add model vendor and display group management#576
chenyme merged 1 commit into
devfrom
provider

Conversation

@chenyme

@chenyme chenyme commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add an administrator-managed model vendor catalog with stable vendor keys, editable display names, and customizable icons.
  • Add optional model display groups. Models without an assigned display group continue to follow their technical vendor.
  • Support selecting group members directly while creating or editing a display group.
  • Apply vendor and display-group presentation consistently across admin model management, model ordering, permission rules, chat model selection, mentions, and chat settings.
  • Support built-in icon identifiers and custom HTTP(S) or local image URLs.
  • Add atomic bulk display-group assignment and transactional group update/delete behavior.
  • Seed built-in vendors and backfill vendor catalog entries for existing models.
  • Promote an existing same-key custom vendor to built-in when a later release introduces that vendor, while preserving its customized name, icon, and ordering.
  • Improve presentation dialogs with animated height transitions, reliable initial height measurement, compact delete confirmation, scrollable/virtualized model selection, and simplified visual separators.
  • Replace the project default MCP mode selector with the shared Tabs component.
  • Refactor model presentation request and editor state into focused hooks and remove obsolete LobeHub-specific component naming and compatibility aliases.

Change type

  • Bug fix
  • Feature
  • Documentation
  • Refactor
  • Configuration / deployment
  • Security hardening
  • Other

Affected areas

  • Frontend / UI
  • Backend / API
  • Authentication / authorization
  • Conversations / streaming
  • Files / RAG / extraction
  • Model routing / providers
  • MCP / tools
  • Billing / payments
  • Admin console
  • Deployment / Docker / configuration
  • Documentation

Verification

  • env GOCACHE=/private/tmp/deeix-chat-go-cache go test ./...
  • env GOCACHE=/private/tmp/deeix-chat-go-cache go vet ./...
  • env GOCACHE=/private/tmp/deeix-chat-go-cache go build ./cmd/server
  • pnpm --filter @deeix/web check
  • pnpm --filter @deeix/web test
  • pnpm api:check
  • git diff --check

The frontend production build was not rerun because this change does not modify routes, dependencies, or Next.js configuration. Frontend linting, type checking, and tests were completed.

Screenshots, API examples, or logs

Recommended screenshots:

  • Model vendor and display-group management dialog
  • Display-group member selector
  • Compact display-group deletion confirmation
  • Project default MCP selector using the shared Tabs component
  • Model picker showing customized vendor and display-group presentation

Configuration, migration, and compatibility notes

  • Adds the llm_model_vendors and llm_model_display_groups persistence models.
  • Adds optional display-group membership to platform models.
  • Existing models remain ungrouped and continue to display under their technical vendor.
  • Existing vendor values are backfilled into the vendor catalog during startup.
  • Built-in vendors are seeded by stable key.
  • A custom vendor with the same stable key as a newly introduced built-in vendor is promoted in place; customized presentation fields are preserved.
  • Vendor keys remain immutable after creation.
  • No environment variables or deployment configuration changes are required.
  • Swagger documents and generated TypeScript contracts are included.

Documentation

  • Documentation is not needed for this change.
  • Documentation was updated.
  • Documentation still needs to be updated.

Generated Swagger and TypeScript API contracts were updated.

Security and privacy

  • No secrets, tokens, credentials, local config, or personal data are included.
  • User data access remains scoped by authenticated user context unless an admin-only path explicitly requires broader access.
  • Security-sensitive behavior was reviewed, including authentication, authorization, provider routing, file processing, billing, and admin APIs where relevant.

Custom external model icons use a no-referrer policy.

Checklist

  • I searched existing issues and pull requests.
  • Changes are focused and do not include unrelated refactors.
  • Tests or static verification were run where practical.
  • User-facing behavior, API contracts, and migration behavior are documented.
  • Required generated Swagger and TypeScript contract artifacts are included.
  • Caches, build output, .pyc files, .env files, and local storage data are not included.

@chenyme chenyme linked an issue Aug 6, 2026 that may be closed by this pull request
3 tasks
@chenyme
chenyme merged commit a7c1d52 into dev Aug 6, 2026
11 checks passed
@chenyme
chenyme deleted the provider branch August 6, 2026 08:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: 允许创建厂商

1 participant