From d5a56f04be348ea94c12caa1a8ad28555be0e95c Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Tue, 9 Jul 2024 23:10:02 +0200 Subject: [PATCH] feat(p2p): allow to disable DHT and use only LAN (#2751) This allows LocalAI to be less noisy avoiding to connect outside. Needed if e.g. there is no plan into using p2p across separate networks. Signed-off-by: Ettore Di Giacinto --- core/p2p/p2p.go | 8 ++++++-- docs/content/docs/features/distributed_inferencing.md | 11 +++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/core/p2p/p2p.go b/core/p2p/p2p.go index 79e8051e..e0e46170 100644 --- a/core/p2p/p2p.go +++ b/core/p2p/p2p.go @@ -348,11 +348,15 @@ func newNodeOpts(token string) ([]node.Option, error) { llger := logger.New(log.LevelFatal) defaultInterval := 10 * time.Second + // TODO: move this up, expose more config options when creating a node + noDHT := os.Getenv("LOCALAI_P2P_DISABLE_DHT") == "true" + noLimits := os.Getenv("LOCALAI_P2P_DISABLE_LIMITS") == "true" + loglevel := "info" c := config.Config{ Limit: config.ResourceLimit{ - Enable: true, + Enable: !noLimits, MaxConns: 100, }, NetworkToken: token, @@ -372,7 +376,7 @@ func newNodeOpts(token string) ([]node.Option, error) { RateLimitInterval: defaultInterval, }, Discovery: config.Discovery{ - DHT: true, + DHT: noDHT, MDNS: true, Interval: 30 * time.Second, }, diff --git a/docs/content/docs/features/distributed_inferencing.md b/docs/content/docs/features/distributed_inferencing.md index 80a9a7cf..abe34373 100644 --- a/docs/content/docs/features/distributed_inferencing.md +++ b/docs/content/docs/features/distributed_inferencing.md @@ -98,3 +98,14 @@ The server logs should indicate that new workers are being discovered. - If running in p2p mode with container images, make sure you start the container with `--net host` or `network_mode: host` in the docker-compose file. - Only a single model is supported currently. - Ensure the server detects new workers before starting inference. Currently, additional workers cannot be added once inference has begun. + + +## Environment Variables + +There are options that can be tweaked or parameters that can be set using environment variables + +| Environment Variable | Description | +|----------------------|-------------| +| **LOCALAI_P2P_DISABLE_DHT** | Set to "true" to disable DHT and enable p2p layer to be local only (mDNS) | +| **LOCALAI_P2P_DISABLE_LIMITS** | Set to "true" to disable connection limits and resources management | +| **LOCALAI_P2P_TOKEN** | Set the token for the p2p network |