4009214cbc
CI / docker (push) Successful in 7m4s
引入用户端对话/生图与管理端 Provider 配置,统一 invoke 编排、Gateway、请求日志与模型管理;前端按设计规范拆分布局,Go module 更名为 github.com/rose_cat707/Atlas;生图长任务 SSE 推送;管理端登录防爆破;协议与服务类型联动;Replicate 模型同步修复;用户端创作台 UI 重构;管理端创作历史替代请求日志。 Co-authored-by: Cursor <cursoragent@cursor.com>
54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
package store
|
|
|
|
import "context"
|
|
|
|
type ProviderModel struct {
|
|
ID int64 `json:"id"`
|
|
ProviderID int64 `json:"provider_id"`
|
|
ModelID string `json:"model_id"`
|
|
Name string `json:"name"`
|
|
CreatedAt string `json:"created_at"`
|
|
}
|
|
|
|
func (s *Store) ListProviderModels(ctx context.Context, providerID int64) ([]ProviderModel, error) {
|
|
rows, err := s.db.QueryContext(ctx,
|
|
`SELECT id, provider_id, model_id, name, created_at FROM provider_models WHERE provider_id = ? ORDER BY id ASC`, providerID,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []ProviderModel
|
|
for rows.Next() {
|
|
var m ProviderModel
|
|
if err := rows.Scan(&m.ID, &m.ProviderID, &m.ModelID, &m.Name, &m.CreatedAt); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, m)
|
|
}
|
|
return items, rows.Err()
|
|
}
|
|
|
|
func (s *Store) CreateProviderModel(ctx context.Context, m *ProviderModel) (int64, error) {
|
|
res, err := s.db.ExecContext(ctx,
|
|
`INSERT INTO provider_models (provider_id, model_id, name) VALUES (?, ?, ?)`,
|
|
m.ProviderID, m.ModelID, m.Name,
|
|
)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return res.LastInsertId()
|
|
}
|
|
|
|
func (s *Store) DeleteProviderModel(ctx context.Context, providerID int64, modelID string) error {
|
|
_, err := s.db.ExecContext(ctx,
|
|
`DELETE FROM provider_models WHERE provider_id = ? AND model_id = ?`, providerID, modelID,
|
|
)
|
|
return err
|
|
}
|
|
|
|
func (s *Store) DeleteProviderModelsByProvider(ctx context.Context, providerID int64) error {
|
|
_, err := s.db.ExecContext(ctx, `DELETE FROM provider_models WHERE provider_id = ?`, providerID)
|
|
return err
|
|
}
|