- 后端:新增 /api/audio/transcribe 接口,调用 Ollama whisper 进行语音识别 - 前端:新增 AudioTranscribePage.vue 页面,支持 MP3/WAV/M4A/OGG/FLAC 等格式 - 注册路由、工具卡片、智能助手欢迎语更新 Co-Authored-By: Claude Code <noreply@anthropic.com>
63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"eai_agentplatform/backend/internal/api"
|
|
"eai_agentplatform/backend/internal/auth"
|
|
"eai_agentplatform/backend/internal/config"
|
|
"eai_agentplatform/backend/internal/model"
|
|
"eai_agentplatform/backend/internal/store"
|
|
)
|
|
|
|
func main() {
|
|
// 交付维护子命令(不进服务主流程)
|
|
if len(os.Args) > 1 {
|
|
switch os.Args[1] {
|
|
case "-reset-admin":
|
|
resetAdmin(os.Args[2:])
|
|
return
|
|
}
|
|
}
|
|
|
|
cfg := config.Load()
|
|
|
|
if _, err := store.Init(cfg.DBPath); err != nil {
|
|
log.Fatalf("数据库初始化失败: %v", err)
|
|
}
|
|
if err := store.SeedDefaults(); err != nil {
|
|
log.Fatalf("种子数据初始化失败: %v", err)
|
|
}
|
|
|
|
r := gin.Default()
|
|
|
|
api.RegisterRoutes(r, cfg)
|
|
|
|
log.Printf("eai_agentplatform 后端启动,端口 :%s", cfg.Port)
|
|
if err := r.Run(":" + cfg.Port); err != nil {
|
|
log.Fatalf("启动失败: %v", err)
|
|
}
|
|
}
|
|
|
|
// resetAdmin 交付前重置管理员密码:eai_agentplatform-server -reset-admin <新密码>
|
|
func resetAdmin(args []string) {
|
|
if len(args) < 1 || args[0] == "" {
|
|
log.Fatal("用法: eai_agentplatform-server -reset-admin <新密码>")
|
|
}
|
|
cfg := config.Load()
|
|
if _, err := store.Init(cfg.DBPath); err != nil {
|
|
log.Fatalf("数据库初始化失败: %v", err)
|
|
}
|
|
hash, err := auth.HashPassword(args[0])
|
|
if err != nil {
|
|
log.Fatalf("密码加密失败: %v", err)
|
|
}
|
|
if err := store.DB.Model(&model.User{}).Where("username = ?", "admin").Update("password_hash", hash).Error; err != nil {
|
|
log.Fatalf("重置密码失败: %v", err)
|
|
}
|
|
log.Println("[OK] 管理员密码已重置")
|
|
}
|