- 新增 Go 语言后端服务(server/),包含用户认证、Agent管理、数据库连接等API - 新增 Python Agent 服务(agent/),实现Agent核心逻辑和工具集 - 前端从原生HTML迁移到Vue.js框架(web/src/) - 添加 Docker Compose 支持(docker-compose.yml) - 添加项目架构文档(docs/ARCHITECTURE.md) - 添加环境变量示例(.env.example)和本地启动脚本(start-local.ps1) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
61 lines
1.1 KiB
Go
61 lines
1.1 KiB
Go
package handler
|
|
|
|
import (
|
|
"github.com/shirou/gopsutil/v3/cpu"
|
|
"github.com/shirou/gopsutil/v3/mem"
|
|
"x-agents/server/internal/model"
|
|
)
|
|
|
|
func getCPUPercent() (float64, error) {
|
|
percent, err := cpu.Percent(0, false)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
if len(percent) > 0 {
|
|
return percent[0], nil
|
|
}
|
|
return 0, nil
|
|
}
|
|
|
|
func getCPUCoreCount() (int, error) {
|
|
count, err := cpu.Counts(false)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return count, nil
|
|
}
|
|
|
|
func getCPUModelName() (string, error) {
|
|
info, err := cpu.Info()
|
|
if err != nil {
|
|
return "Unknown", err
|
|
}
|
|
if len(info) > 0 {
|
|
return info[0].ModelName, nil
|
|
}
|
|
return "Unknown", nil
|
|
}
|
|
|
|
func getMemoryInfo() (*model.MemoryInfo, error) {
|
|
v, err := mem.VirtualMemory()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// 计算使用率
|
|
percent := 0.0
|
|
if v.Total > 0 {
|
|
percent = float64(v.Used) / float64(v.Total) * 100
|
|
}
|
|
|
|
return &model.MemoryInfo{
|
|
Total: v.Total,
|
|
Used: v.Used,
|
|
Available: v.Available,
|
|
Percent: percent,
|
|
TotalGB: float64(v.Total) / 1024 / 1024 / 1024,
|
|
UsedGB: float64(v.Used) / 1024 / 1024 / 1024,
|
|
AvailableGB: float64(v.Available) / 1024 / 1024 / 1024,
|
|
}, nil
|
|
}
|