gestion des providers
This commit is contained in:
1 parent
357bf9b41c
commit
4d72952b2c
46 files changed
+995
-150
No files matched your search
@@ -0,0 +1,26 @@
|
||||
package domain
|
||||
|
||||
import "context"
|
||||
|
||||
type LLMModelDetail struct {
|
||||
ParentModel string `json:"parent_model"`
|
||||
Format string `json:"format"`
|
||||
Family string `json:"family"`
|
||||
Families []string `json:"families"`
|
||||
ParameterSize string `json:"parameter_size"`
|
||||
QuantizationLevel string `json:"quantization_level"`
|
||||
}
|
||||
|
||||
type LLMModel struct {
|
||||
Name string `json:"name"`
|
||||
Model string `json:"model"`
|
||||
ModifiedAt int64 `json:"modified_at"`
|
||||
Size int64 `json:"size"`
|
||||
Digest string `json:"digest"`
|
||||
Detail *LLMModelDetail `json:"detail"`
|
||||
}
|
||||
|
||||
type LLMEngine interface {
|
||||
ListProviderTypes() []Item
|
||||
ListModelsFromProvider(ctx context.Context, provider *Provider) ([]string, error)
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
type Provider struct {
|
||||
ID string `db:"id" json:"id"`
|
||||
TeamID string `db:"team_id" json:"teamId"`
|
||||
Type string `db:"type" json:"type"`
|
||||
Name string `db:"name" json:"name"`
|
||||
APIKey string `db:"key" json:"apiKey"`
|
||||
URL string `db:"url" json:"baseUrl"`
|
||||
Models string `db:"models" json:"models"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
type ProviderRepository interface {
|
||||
ListProviders(userID string, teamID string) ([]*Provider, error)
|
||||
GetProvider(userID string, teamID string, id string) (*Provider, error)
|
||||
CreateProvider(userID string, provider *Provider) (*Provider, error)
|
||||
UpdateProvider(userID string, provider *Provider) (*Provider, error)
|
||||
DeleteProvider(userID string, teamID string, id string) error
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package domain
|
||||
|
||||
type Item struct {
|
||||
ID string `json:"id"`
|
||||
Text string `json:"text"`
|
||||
}
|
||||
@@ -15,27 +15,27 @@ type User struct {
|
||||
Theme string `db:"theme" json:"theme"`
|
||||
Lang string `db:"lang" json:"lang"`
|
||||
Timezone string `db:"timezone" json:"timezone"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_dateCreated"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_dateUpdated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
type Team struct {
|
||||
ID string `db:"id" json:"id"`
|
||||
Label string `db:"label" json:"label"`
|
||||
DefaultModelID *string `db:"default_model_id" json:"default_model_id"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
DefaultModelID *string `db:"default_model_id" json:"defaultModelId"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_dateCreated"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_dateUpdated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
type UserTeam struct {
|
||||
ID string `db:"id" json:"id"`
|
||||
UserID string `db:"user_id" json:"user_id"`
|
||||
TeamID string `db:"team_id" json:"team_id"`
|
||||
UserID string `db:"user_id" json:"userId"`
|
||||
TeamID string `db:"team_id" json:"teamId"`
|
||||
Administrator bool `db:"administrator" json:"administrator"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_dateCreated"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_dateUpdated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
@@ -44,8 +44,8 @@ type UserAddress struct {
|
||||
UserID string `db:"user_id" json:"user_id"`
|
||||
Type string `db:"type" json:"type"`
|
||||
Address string `db:"address" json:"address"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_date_created"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
||||
DateCreated time.Time `db:"_date_created" json:"_dateCreated"`
|
||||
DateUpdated *time.Time `db:"_date_updated" json:"_dateUpdated"`
|
||||
VersionId string `db:"_version" json:"_version"`
|
||||
}
|
||||
|
||||
@@ -55,8 +55,9 @@ type TeamRelation struct {
|
||||
}
|
||||
|
||||
type UserWithTeams struct {
|
||||
User *User `json:"user"`
|
||||
Teams []*TeamRelation `json:"teams"`
|
||||
User *User `json:"user"`
|
||||
UserTeams []*UserTeam `json:"user_teams"`
|
||||
Teams []*Team `json:"teams"`
|
||||
}
|
||||
|
||||
func AddressTypes() []string {
|
||||
@@ -88,8 +89,6 @@ type UserRepository interface {
|
||||
UpdateUserTeam(userid string, team *UserTeam) (*UserTeam, error)
|
||||
DeleteUserTeam(userid string, teamid string) error
|
||||
|
||||
PopulateUserWithTeams(user *User) (*UserWithTeams, error)
|
||||
|
||||
ListUserAddresses(userid string) ([]*UserAddress, error)
|
||||
GetUserAddress(addrID string) (*UserAddress, error)
|
||||
CreateUserAddress(addr *UserAddress) (*UserAddress, error)
|
||||
|
||||
Reference in new issue
Block a user