- 后端:新增 /api/audio/transcribe 接口,调用 Ollama whisper 进行语音识别 - 前端:新增 AudioTranscribePage.vue 页面,支持 MP3/WAV/M4A/OGG/FLAC 等格式 - 注册路由、工具卡片、智能助手欢迎语更新 Co-Authored-By: Claude Code <noreply@anthropic.com>
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package api
|
|
|
|
import (
|
|
"eai_agentplatform/backend/internal/config"
|
|
"eai_agentplatform/backend/internal/web"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// routeItem 路由摘要(返回给前端选择器)
|
|
type routeItem struct {
|
|
ID string `json:"id"`
|
|
Provider string `json:"provider"`
|
|
Model string `json:"model"`
|
|
BaseURL string `json:"base_url"`
|
|
Description string `json:"description"`
|
|
}
|
|
|
|
func toRouteItems(routes []*config.RouteConfig) []routeItem {
|
|
items := make([]routeItem, 0, len(routes))
|
|
for _, r := range routes {
|
|
items = append(items, routeItem{
|
|
ID: r.RouteID,
|
|
Provider: r.Provider,
|
|
Model: r.Model,
|
|
BaseURL: r.BaseURL,
|
|
Description: r.Description,
|
|
})
|
|
}
|
|
return items
|
|
}
|
|
|
|
// ListChatRoutes 返回可用 chat 路由列表(供前端选择器使用)
|
|
func ListChatRoutes(c *gin.Context) {
|
|
routes, err := config.GetRoutesByCategory("chat")
|
|
if err != nil {
|
|
web.Fail(c, web.NewLLMNotConfigured("路由加载失败: "+err.Error()))
|
|
return
|
|
}
|
|
web.OK(c, gin.H{"routes": toRouteItems(routes)})
|
|
}
|
|
|
|
// ListEmbedRoutes 返回可用 embedding 路由列表
|
|
func ListEmbedRoutes(c *gin.Context) {
|
|
routes, err := config.GetRoutesByCategory("embed")
|
|
if err != nil {
|
|
web.Fail(c, web.NewLLMNotConfigured("路由加载失败: "+err.Error()))
|
|
return
|
|
}
|
|
web.OK(c, gin.H{"routes": toRouteItems(routes)})
|
|
} |