Files
X-Agents/server/internal/handler/system_helper.go
DESKTOP-72TV0V4\caoxiaozhu b2bc9988a9 feat: 重构前后端架构,添加Go后端和Python Agent服务
- 新增 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>
2026-03-06 16:39:42 +08:00

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
}