更改推理结构

This commit is contained in:
2023-06-28 14:29:44 +08:00
parent 9bcd9540ef
commit 723eca3353
7 changed files with 211 additions and 384 deletions

View File

@@ -51,6 +51,13 @@ var config = struct {
}{}
func init() {
configs.ORMDB().AutoMigrate(&Server{})
// 檢查所有服務器的狀態, 無效的服務器設置為異常
var servers []Server
configs.ORMDB().Find(&servers)
for _, server := range servers {
server.CheckStatus()
}
// 讀取配置文件
absPath, _ := filepath.Abs("./data/config.yaml")
configFile, err := ioutil.ReadFile(absPath)
@@ -60,10 +67,23 @@ func init() {
if err := yaml.Unmarshal(configFile, &config); err != nil {
panic(fmt.Errorf("格式化配置文件失敗: %v", err))
}
// 初始化检查默认服务器
if err := InitDefaultServer(); err != nil {
panic(fmt.Errorf("初始化默认服务器失败: %v", err))
}
}
// 检查默认服务器是否存在, 不存在则添加
func InitDefaultServer() (err error) {
if err = configs.ORMDB().Where("id = ?", "default").First(&Server{}).Error; err != nil {
server := Server{ID: "default", IP: "106.15.192.42", Port: 7860, Type: "推理", Status: "就绪"}
err = configs.ORMDB().Create(&server).Error
}
return
}
// 创建一台新服务器
func NewServer(server_type string) (server *Server, err error) {
func NewServer(server_type string) (server Server, err error) {
// 调用 API 创建一台新服务器(通過腾讯云API創建服務器)
client, err := cvm.NewClient(common.NewCredential(config.TencentCloud.SecretId, config.TencentCloud.SecretKey), config.TencentCloud.Region, profile.NewClientProfile())
if err != nil {
@@ -84,7 +104,7 @@ func NewServer(server_type string) (server *Server, err error) {
fmt.Println("創建服務器成功:", response.Response.InstanceIdSet[0])
// 获取服务器信息
var get_server_info = func(InstanceIdSet *string) (server *Server, err error) {
var get_server_info = func(InstanceIdSet *string) (server Server, err error) {
response2, err := client.DescribeInstances(cvm.NewDescribeInstancesRequest())
if err != nil {
return server, fmt.Errorf("獲取實例詳情失敗: %v", err)
@@ -169,13 +189,3 @@ func (server *Server) CheckStatus() error {
// 檢查服務器是否正常
return nil
}
func init() {
configs.ORMDB().AutoMigrate(&Server{})
// 檢查所有服務器的狀態, 無效的服務器設置為異常
var servers []Server
configs.ORMDB().Find(&servers)
for _, server := range servers {
server.CheckStatus()
}
}