Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Main = gcmd.Command{ Name: "main", Usage: "main", Brief: "start http server", Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { s := g.Server() if config.Cfg.Debug.Open { runtime.SetMutexProfileFraction(1) runtime.SetBlockProfileRate(1) s.EnablePProf() } s.BindHookHandler("/*", ghttp.HookBeforeServe, beforeServeHook) s.SetServerRoot("./resource/index/") s.Group("/", func(g *ghttp.RouterGroup) { g.Middleware(middlewareHandlerResponse) g.Bind( health.NewV1(), ) }) s.BindHandler("/v1/realtime", func(r *ghttp.Request) { middleware(r) if err := service.Realtime().Realtime(r.GetCtx(), r, model.RealtimeRequest{ Model: r.FormValue("model"), }, nil, nil); err != nil { err := errors.Error(r.GetCtx(), err) r.Response.Header().Set("Content-Type", "application/json") r.Response.WriteStatus(err.Status(), gjson.MustEncodeString(err)) r.Exit() } }) s.Group("/v1", func(v1 *ghttp.RouterGroup) { v1.Middleware(middlewareHandlerResponse) v1.Middleware(middleware) v1.Group("/", func(g *ghttp.RouterGroup) { g.Bind( dashboard.NewV1(), openai.NewV1(), anthropic.NewV1(), google.NewV1(), embedding.NewV1(), moderation.NewV1(), general.NewV1(), ) }) v1.Group("/dashboard", func(g *ghttp.RouterGroup) { g.Bind( dashboard.NewV1(), ) }) v1.Group("/chat", func(g *ghttp.RouterGroup) { g.Bind( chat.NewV1(), ) }) v1.Group("/images", func(g *ghttp.RouterGroup) { g.Bind( image.NewV1(), ) }) v1.Group("/audio", func(g *ghttp.RouterGroup) { g.Bind( audio.NewV1(), ) }) v1.Group("/videos", func(g *ghttp.RouterGroup) { g.Bind( video.NewV1(), ) }) v1.Group("/files", func(g *ghttp.RouterGroup) { g.Bind( file.NewV1(), ) }) v1.Group("/batches", func(g *ghttp.RouterGroup) { g.Bind( batch.NewV1(), ) }) v1.Group("/contents/generations", func(g *ghttp.RouterGroup) { g.Bind( volcengine.NewV1(), ) }) }) s.Group("/v1beta", func(v1 *ghttp.RouterGroup) { v1.Middleware(middlewareHandlerResponse) v1.Middleware(middleware) v1.Bind( google.NewV1(), ) }) s.Group("/mj**", func(v1 *ghttp.RouterGroup) { v1.Middleware(middlewareHandlerResponse) v1.Middleware(middleware) v1.Bind( midjourney.NewV1(), ) }) s.Group("/api/v3", func(v1 *ghttp.RouterGroup) { v1.Middleware(middlewareHandlerResponse) v1.Middleware(middleware) v1.Group("/contents/generations", func(g *ghttp.RouterGroup) { g.Bind( volcengine.NewV1(), ) }) }) s.Group("/{provider}/v1", func(v1 *ghttp.RouterGroup) { v1.Middleware(middlewareHandlerResponse) v1.Middleware(middleware) v1.Group("/files", func(g *ghttp.RouterGroup) { g.Bind( file.NewV1(), ) }) v1.Group("/batches", func(g *ghttp.RouterGroup) { g.Bind( batch.NewV1(), ) }) }) if config.Cfg.ApiServerAddress != "" { s.SetAddr(config.Cfg.ApiServerAddress) } if _, err = redis.HSet(ctx, consts.SERVERS_KEY, g.Map{fmt.Sprintf("api:%s", util.GetLocalIp()): s.GetListenedAddress()}); err != nil { logger.Error(ctx, err) } s.Run() return nil }, } )
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.