mirror of
https://github.com/mudler/LocalAI.git
synced 2026-04-01 13:42:20 -04:00
* feat(mlx-distributed): add new MLX-distributed backend Add new MLX distributed backend with support for both TCP and RDMA for model sharding. This implementation ties in the discovery implementation already in place, and re-uses the same P2P mechanism for the TCP MLX-distributed inferencing. The Auto-parallel implementation is inspired by Exo's ones (who have been added to acknowledgement for the great work!) Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * expose a CLI to facilitate backend starting Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * feat: make manual rank0 configurable via model configs Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Add missing features from mlx backend Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Apply suggestion from @mudler Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
32 lines
1.1 KiB
Go
32 lines
1.1 KiB
Go
package localai
|
|
|
|
import (
|
|
"github.com/labstack/echo/v4"
|
|
"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(appConfig *config.ApplicationConfig) echo.HandlerFunc {
|
|
// Render index
|
|
return func(c echo.Context) error {
|
|
return c.JSON(200, schema.P2PNodesResponse{
|
|
LlamaCPPNodes: p2p.GetAvailableNodes(p2p.NetworkID(appConfig.P2PNetworkID, p2p.LlamaCPPWorkerID)),
|
|
FederatedNodes: p2p.GetAvailableNodes(p2p.NetworkID(appConfig.P2PNetworkID, p2p.FederatedID)),
|
|
MLXNodes: p2p.GetAvailableNodes(p2p.NetworkID(appConfig.P2PNetworkID, p2p.MLXWorkerID)),
|
|
})
|
|
}
|
|
}
|
|
|
|
// 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) echo.HandlerFunc {
|
|
return func(c echo.Context) error { return c.String(200, appConfig.P2PToken) }
|
|
}
|