100 lines
2.2 KiB
Plaintext
100 lines
2.2 KiB
Plaintext
@startuml
|
|
|
|
hide circle
|
|
skinparam linetype ortho
|
|
|
|
package option {
|
|
|
|
entity moop_model_set {
|
|
id : binary(40) <<PK>>
|
|
name : longtext
|
|
--
|
|
}
|
|
|
|
entity moop_model_type {
|
|
id : binary(40) <<PK>>
|
|
type : longtext
|
|
--
|
|
* type availability =
|
|
"llm" | "embedding" | "image generation"
|
|
}
|
|
|
|
entity moop_model_set_type {
|
|
id : binary(40) <<PK>>
|
|
set : binary(40) <<FK>>
|
|
type : binary(40) <<FK>>
|
|
--
|
|
* set = moop_model_set.id
|
|
on update cascade
|
|
on delete cascade
|
|
* type = moop_model_type.id
|
|
on update cascade
|
|
on delete cascade
|
|
* unique(set, type)
|
|
}
|
|
moop_model_set ||--|{ moop_model_set_type
|
|
moop_model_type ||-o{ moop_model_set_type
|
|
|
|
entity moop_model_type_default {
|
|
id : binary(40) <<PK>>
|
|
type : binary(40) unique <<FK>>
|
|
set_type : binary(40) <<FK>>
|
|
--
|
|
* type = moop_model_type.id
|
|
on update cascade
|
|
on delete cascade
|
|
* set_type = moop_model_set_type.id
|
|
on update cascade
|
|
on delete cascade
|
|
* set_type.type must equal type
|
|
* one default set per model type
|
|
}
|
|
moop_model_type ||--|| moop_model_type_default
|
|
moop_model_set_type ||--o| moop_model_type_default
|
|
|
|
}
|
|
|
|
package provider {
|
|
|
|
entity moop_api {
|
|
id : binary(40) <<PK>>
|
|
name : longtext
|
|
baseurl : longtext
|
|
--
|
|
* empty key = no bearer
|
|
}
|
|
|
|
entity moop_key {
|
|
id : binary(40) <<PK>>
|
|
key : longtext
|
|
priority : int null
|
|
api : binary(40) <<FK>>
|
|
--
|
|
* api = moop_api.id
|
|
on update cascade
|
|
on delete cascade
|
|
* null priority = disabled
|
|
}
|
|
moop_api ||--o{ moop_key
|
|
|
|
entity moop_model {
|
|
id : binary(40) <<PK>>
|
|
api : binary(40) <<FK>>
|
|
set : binary(40) <<FK>>
|
|
model : longtext
|
|
priority : int null
|
|
--
|
|
* api = moop_api.id
|
|
on update cascade
|
|
on delete cascade
|
|
* set = moop_model_set.id
|
|
on update cascade
|
|
on delete cascade
|
|
* null priority = disabled
|
|
}
|
|
moop_model_set ||-|{ moop_model
|
|
moop_api ||--|{ moop_model
|
|
|
|
}
|
|
|
|
@enduml |