2024-07-08 20:04:06 +00:00
|
|
|
package cli
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
cliContext "github.com/mudler/LocalAI/core/cli/context"
|
|
|
|
"github.com/mudler/LocalAI/core/p2p"
|
|
|
|
)
|
|
|
|
|
|
|
|
type FederatedCLI struct {
|
|
|
|
Address string `env:"LOCALAI_ADDRESS,ADDRESS" default:":8080" help:"Bind address for the API server" group:"api"`
|
|
|
|
Peer2PeerToken string `env:"LOCALAI_P2P_TOKEN,P2P_TOKEN,TOKEN" name:"p2ptoken" help:"Token for P2P mode (optional)" group:"p2p"`
|
2024-07-18 21:18:53 +00:00
|
|
|
LoadBalanced bool `env:"LOCALAI_LOAD_BALANCED,LOAD_BALANCED" default:"false" help:"Enable load balancing" group:"p2p"`
|
2024-07-08 20:04:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (f *FederatedCLI) Run(ctx *cliContext.Context) error {
|
|
|
|
|
2024-07-18 21:18:53 +00:00
|
|
|
fs := p2p.NewFederatedServer(f.Address, p2p.FederatedID, f.Peer2PeerToken, f.LoadBalanced)
|
2024-07-08 20:04:06 +00:00
|
|
|
|
2024-07-18 17:15:15 +00:00
|
|
|
return fs.Start(context.Background())
|
2024-07-08 20:04:06 +00:00
|
|
|
}
|