db5d114428
- 实现了管理后台模型渠道的增删改查功能 - 将前端直接调用API改为通过后端接口代理获取模型列表 - 添加了渠道测试连接和模型可用性检测功能 - 实现了API Key安全存储机制,前端不再明文显示 - 更新了管理后台设置页面的渠道配置界面 - 添加了表格选中行背景色主题配置支持 - 重构了错误处理机制,统一返回安全错误信息 - 整理了后端模型代理路径为OpenAI风格的/api/v1/*
67 lines
1.5 KiB
Go
67 lines
1.5 KiB
Go
package handler
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
|
|
"github.com/basketikun/infinite-canvas/model"
|
|
"github.com/basketikun/infinite-canvas/service"
|
|
)
|
|
|
|
type adminChannelActionRequest struct {
|
|
Index *int `json:"index"`
|
|
Channel model.ModelChannel `json:"channel"`
|
|
Model string `json:"model"`
|
|
}
|
|
|
|
func Settings(w http.ResponseWriter, r *http.Request) {
|
|
settings, err := service.PublicSettings()
|
|
if err != nil {
|
|
FailError(w, err)
|
|
return
|
|
}
|
|
OK(w, settings)
|
|
}
|
|
|
|
func AdminSettings(w http.ResponseWriter, r *http.Request) {
|
|
settings, err := service.AdminSettings()
|
|
if err != nil {
|
|
FailError(w, err)
|
|
return
|
|
}
|
|
OK(w, settings)
|
|
}
|
|
|
|
func AdminSaveSettings(w http.ResponseWriter, r *http.Request) {
|
|
var settings model.Settings
|
|
_ = json.NewDecoder(r.Body).Decode(&settings)
|
|
result, err := service.SaveSettings(settings)
|
|
if err != nil {
|
|
FailError(w, err)
|
|
return
|
|
}
|
|
OK(w, result)
|
|
}
|
|
|
|
func AdminChannelModels(w http.ResponseWriter, r *http.Request) {
|
|
var request adminChannelActionRequest
|
|
_ = json.NewDecoder(r.Body).Decode(&request)
|
|
models, err := service.AdminChannelModels(request.Index, request.Channel)
|
|
if err != nil {
|
|
FailError(w, err)
|
|
return
|
|
}
|
|
OK(w, models)
|
|
}
|
|
|
|
func AdminTestChannelModel(w http.ResponseWriter, r *http.Request) {
|
|
var request adminChannelActionRequest
|
|
_ = json.NewDecoder(r.Body).Decode(&request)
|
|
result, err := service.AdminTestChannelModel(request.Index, request.Channel, request.Model)
|
|
if err != nil {
|
|
FailError(w, err)
|
|
return
|
|
}
|
|
OK(w, result)
|
|
}
|