From 6564e7ea019f387cd3f6f542953d1e1a4d5bd94d Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Mon, 15 Jul 2024 08:31:38 +0200 Subject: [PATCH] docs(swagger): cover p2p endpoints (#2862) Signed-off-by: Ettore Di Giacinto --- Makefile | 2 +- core/http/endpoints/localai/p2p.go | 28 ++++++++++++++++++++++++++++ core/http/routes/localai.go | 12 ++---------- core/schema/localai.go | 6 ++++++ 4 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 core/http/endpoints/localai/p2p.go diff --git a/Makefile b/Makefile index 53e2843e..88a2b283 100644 --- a/Makefile +++ b/Makefile @@ -384,7 +384,7 @@ endif CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GOCMD) build -ldflags "$(LD_FLAGS)" -tags "$(GO_TAGS)" -o $(BINARY_NAME) ./ build-minimal: - BUILD_GRPC_FOR_BACKEND_LLAMA=true GRPC_BACKENDS="backend-assets/grpc/llama-cpp-avx2" GO_TAGS=none $(MAKE) build + BUILD_GRPC_FOR_BACKEND_LLAMA=true GRPC_BACKENDS="backend-assets/grpc/llama-cpp-avx2" GO_TAGS=p2p $(MAKE) build build-api: BUILD_GRPC_FOR_BACKEND_LLAMA=true BUILD_API_ONLY=true GO_TAGS=none $(MAKE) build diff --git a/core/http/endpoints/localai/p2p.go b/core/http/endpoints/localai/p2p.go new file mode 100644 index 00000000..cab0bb5d --- /dev/null +++ b/core/http/endpoints/localai/p2p.go @@ -0,0 +1,28 @@ +package localai + +import ( + "github.com/gofiber/fiber/v2" + "github.com/mudler/LocalAI/core/config" + "github.com/mudler/LocalAI/core/p2p" + "github.com/mudler/LocalAI/core/schema" +) + +// ShowP2PNodes returns the P2P Nodes +// @Summary Returns available P2P nodes +// @Success 200 {object} []schema.P2PNodesResponse "Response" +// @Router /api/p2p [get] +func ShowP2PNodes(c *fiber.Ctx) error { + // Render index + return c.JSON(schema.P2PNodesResponse{ + Nodes: p2p.GetAvailableNodes(""), + FederatedNodes: p2p.GetAvailableNodes(p2p.FederatedID), + }) +} + +// ShowP2PToken returns the P2P token +// @Summary Show the P2P token +// @Success 200 {string} string "Response" +// @Router /api/p2p/token [get] +func ShowP2PToken(appConfig *config.ApplicationConfig) func(*fiber.Ctx) error { + return func(c *fiber.Ctx) error { return c.Send([]byte(appConfig.P2PToken)) } +} diff --git a/core/http/routes/localai.go b/core/http/routes/localai.go index cc0b9d49..b8a811b5 100644 --- a/core/http/routes/localai.go +++ b/core/http/routes/localai.go @@ -59,16 +59,8 @@ func RegisterLocalAIRoutes(app *fiber.App, // p2p if p2p.IsP2PEnabled() { - app.Get("/api/p2p", auth, func(c *fiber.Ctx) error { - // Render index - return c.JSON(map[string]interface{}{ - "Nodes": p2p.GetAvailableNodes(""), - "FederatedNodes": p2p.GetAvailableNodes(p2p.FederatedID), - }) - }) - app.Get("/api/p2p/token", auth, func(c *fiber.Ctx) error { - return c.Send([]byte(appConfig.P2PToken)) - }) + app.Get("/api/p2p", auth, localai.ShowP2PNodes) + app.Get("/api/p2p/token", auth, localai.ShowP2PToken(appConfig)) } app.Get("/version", auth, func(c *fiber.Ctx) error { diff --git a/core/schema/localai.go b/core/schema/localai.go index 3253143e..1b75e384 100644 --- a/core/schema/localai.go +++ b/core/schema/localai.go @@ -1,6 +1,7 @@ package schema import ( + "github.com/mudler/LocalAI/core/p2p" gopsutil "github.com/shirou/gopsutil/v3/process" ) @@ -64,3 +65,8 @@ type StoresFindResponse struct { Values []string `json:"values" yaml:"values"` Similarities []float32 `json:"similarities" yaml:"similarities"` } + +type P2PNodesResponse struct { + Nodes []p2p.NodeData `json:"nodes" yaml:"nodes"` + FederatedNodes []p2p.NodeData `json:"federated_nodes" yaml:"federated_nodes"` +}