60 lines
2.2 KiB
TOML
60 lines
2.2 KiB
TOML
# Copy this file to `config.toml` and edit. The path can be overridden with
|
|
# the LORABOT_CONFIG environment variable. Any field can be overridden with
|
|
# environment variables of the form LORABOT_<SECTION>__<KEY>, e.g.
|
|
# LORABOT_LLM__BASE_URL=http://llama:8080/v1
|
|
# LORABOT_MESHCORE__SERIAL_PORT=/dev/ttyACM0
|
|
|
|
[logging]
|
|
# DEBUG | INFO | WARNING | ERROR | CRITICAL (case-insensitive).
|
|
# DEBUG adds per-iteration LLM request logs and Tavily request details.
|
|
level = "INFO"
|
|
|
|
[meshcore]
|
|
serial_port = "/dev/ttyUSB0"
|
|
baud_rate = 115200
|
|
|
|
[llm]
|
|
base_url = "http://localhost:8080/v1"
|
|
api_key = "not-needed"
|
|
model = "gemma-4-E4B"
|
|
system_prompt = "You are a concise assistant on a low-bandwidth mesh radio. Replies must be brief — under 180 bytes."
|
|
temperature = 0.7
|
|
request_timeout_seconds = 60
|
|
|
|
[storage]
|
|
sqlite_path = "data/lorabot.db"
|
|
|
|
[message]
|
|
# MeshCore MAX_PACKET_PAYLOAD is 184 bytes. Lower this if your text-frame
|
|
# headers further constrain the usable payload on your device.
|
|
max_bytes = 184
|
|
# Seconds to wait for an ACK before treating a chunk as failed.
|
|
ack_timeout_seconds = 30
|
|
# How many times to retry a chunk after failure (0 = no retries).
|
|
send_retries = 1
|
|
|
|
[web]
|
|
# Built-in read-only web UI: stored conversations + live status.
|
|
enabled = true
|
|
host = "0.0.0.0"
|
|
port = 8080
|
|
|
|
[advertise]
|
|
# MeshCore companions don't advertise on their own. Lorabot can do it for them
|
|
# at a fixed cadence so the node stays visible on the mesh. Set
|
|
# interval_seconds = 0 to disable auto-advert (the web UI button still works).
|
|
enabled = true
|
|
interval_seconds = 3600
|
|
at_startup = true
|
|
# Flood = multi-hop advert across the mesh. False = zero-hop (neighbors only).
|
|
flood = false
|
|
|
|
# LLM tool calling. The weather tool (Open-Meteo, no key) is always on. Tools
|
|
# in this section are optional and only registered when configured. Requires a
|
|
# tool-capable model on the LLM server (Llama 3.1, Qwen, Hermes, …); models
|
|
# without tool support will simply ignore them.
|
|
[tools.tavily]
|
|
# Web search + page extraction via https://tavily.com (free tier available).
|
|
# Leave empty to disable both web_search and fetch_url tools.
|
|
api_key = ""
|