Better config format
This commit is contained in:
parent
07dd99ded4
commit
0bedda1c06
29
config.py
29
config.py
@ -33,22 +33,27 @@ XMPP_USERNAME = os.getenv("XMPP_USERNAME", default="")
|
|||||||
XMPP_PASSWORD = os.getenv("XMPP_PASSWORD", default="")
|
XMPP_PASSWORD = os.getenv("XMPP_PASSWORD", default="")
|
||||||
|
|
||||||
MODELS_ITEMS: list[dict] = []
|
MODELS_ITEMS: list[dict] = []
|
||||||
_models_config = _yaml_get("models", default={})
|
_providers = _yaml_get("llm", "providers", default=[])
|
||||||
_items = _models_config.get("items", [])
|
if isinstance(_providers, list):
|
||||||
if isinstance(_items, list):
|
for prov in _providers:
|
||||||
for entry in _items:
|
if not isinstance(prov, dict):
|
||||||
if not isinstance(entry, dict):
|
|
||||||
continue
|
continue
|
||||||
model = entry.get("model", "")
|
pname = prov.get("name", "")
|
||||||
provider = entry.get("provider", "")
|
base_url = prov.get("base_url", "").rstrip("/")
|
||||||
base_url = entry.get("base_url", "").rstrip("/")
|
api_key = prov.get("api_key", "") or llm_api_key
|
||||||
api_key = entry.get("key", "") or llm_api_key
|
models = prov.get("models", [])
|
||||||
|
if isinstance(models, list):
|
||||||
|
for m in models:
|
||||||
|
if not isinstance(m, dict):
|
||||||
|
continue
|
||||||
|
model_name = m.get("name", "")
|
||||||
|
is_default = m.get("default", False)
|
||||||
MODELS_ITEMS.append({
|
MODELS_ITEMS.append({
|
||||||
"model": model,
|
"model": model_name,
|
||||||
"provider": provider,
|
"provider": pname,
|
||||||
"base_url": base_url,
|
"base_url": base_url,
|
||||||
"api_key": api_key,
|
"api_key": api_key,
|
||||||
"default": entry.get("default", False),
|
"default": is_default,
|
||||||
})
|
})
|
||||||
|
|
||||||
def resolve_provider(base_url: str, model: str) -> str | None:
|
def resolve_provider(base_url: str, model: str) -> str | None:
|
||||||
|
|||||||
60
config.yaml
60
config.yaml
@ -1,60 +0,0 @@
|
|||||||
llm:
|
|
||||||
timeout: 3000 # second
|
|
||||||
|
|
||||||
agent:
|
|
||||||
max_iterations: 40 # step
|
|
||||||
max_tool_output: 40000
|
|
||||||
character: hendrik # Directory name in agent/characters/<character>/
|
|
||||||
|
|
||||||
xmpp:
|
|
||||||
enabled: false
|
|
||||||
muc_rooms: "" # comma-separated, e.g. "room1@conference.server,room2@conference.server"
|
|
||||||
nickname: "" # custom MUC nickname (empty = use username)
|
|
||||||
selective_response: true # true = only response if mentioned/relevant
|
|
||||||
|
|
||||||
telegram:
|
|
||||||
enabled: false
|
|
||||||
allowed_group_ids: "" # comma-separated, kosong = semua grup
|
|
||||||
selective_response: true
|
|
||||||
|
|
||||||
# Humanize Delay (anti-bot detection)
|
|
||||||
delay:
|
|
||||||
read_min: 1.0 # second
|
|
||||||
read_max: 2.0 # second
|
|
||||||
typing_speed: 15.0 # characters per second
|
|
||||||
typing_max: 10.0 # max typing delay limit per second
|
|
||||||
|
|
||||||
models:
|
|
||||||
items:
|
|
||||||
- model: "granite4.1:8b"
|
|
||||||
provider: "Ollama Local"
|
|
||||||
base_url: "http://localhost:11434/v1"
|
|
||||||
key: "ollama"
|
|
||||||
- model: "granite4.1:8b"
|
|
||||||
provider: "Transformers API Local"
|
|
||||||
base_url: "http://localhost:12345/v1"
|
|
||||||
key: "sk-not-needed"
|
|
||||||
- model: "ministral-3:14b-cloud"
|
|
||||||
provider: "Ollama Cloud"
|
|
||||||
base_url: "https://ollama.com/v1"
|
|
||||||
key: ""
|
|
||||||
- model: "gemma4:31b-cloud"
|
|
||||||
provider: "Ollama Cloud"
|
|
||||||
base_url: "https://ollama.com/v1"
|
|
||||||
key: ""
|
|
||||||
default: true
|
|
||||||
- model: "openrouter/owl-alpha"
|
|
||||||
provider: "OpenRouter"
|
|
||||||
base_url: "https://openrouter.ai/api/v1"
|
|
||||||
key: ""
|
|
||||||
- model: "nex-agi/nex-n2-pro:free"
|
|
||||||
provider: "OpenRouter"
|
|
||||||
base_url: "https://openrouter.ai/api/v1"
|
|
||||||
key: ""
|
|
||||||
- model: "z-ai/glm-5"
|
|
||||||
provider: "OpenRouter"
|
|
||||||
base_url: "https://openrouter.ai/api/v1"
|
|
||||||
key: ""
|
|
||||||
|
|
||||||
rag:
|
|
||||||
persist_dir: chroma_db # ChromaDB ONNX default (all-MiniLM-L6-v2, local)
|
|
||||||
56
default-config.yaml
Normal file
56
default-config.yaml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# Copy and edit to `config.yaml`
|
||||||
|
|
||||||
|
agent:
|
||||||
|
character: hendrik # Directory name in agent/characters/<character>/
|
||||||
|
max_iterations: 40 # step
|
||||||
|
max_tool_output: 40000
|
||||||
|
|
||||||
|
llm:
|
||||||
|
timeout: 3000 # second
|
||||||
|
providers:
|
||||||
|
- name : "Ollama Local"
|
||||||
|
base_url : "http://localhost:11434/v1"
|
||||||
|
api_key : "ollama"
|
||||||
|
models :
|
||||||
|
- name : "granite4.1:8b"
|
||||||
|
- name : "Transformers API Local"
|
||||||
|
base_url : "http://localhost:12345/v1"
|
||||||
|
api_key : "sk-not-needed"
|
||||||
|
models :
|
||||||
|
- name : "granite4.1:8b"
|
||||||
|
- name : "Ollama Cloud"
|
||||||
|
base_url : "https://ollama.com/v1"
|
||||||
|
api_key : ""
|
||||||
|
models :
|
||||||
|
- name : "ministral-3:14b-cloud"
|
||||||
|
- name : "gemma4:31b-cloud"
|
||||||
|
default : true
|
||||||
|
- name : "OpenRouter"
|
||||||
|
base_url : "https://openrouter.ai/api/v1"
|
||||||
|
api_key : ""
|
||||||
|
models :
|
||||||
|
- name : "openrouter/owl-alpha"
|
||||||
|
- name : "nex-agi/nex-n2-pro:free"
|
||||||
|
- name : "z-ai/glm-5"
|
||||||
|
|
||||||
|
rag:
|
||||||
|
persist_dir: chroma_db # ChromaDB ONNX default (all-MiniLM-L6-v2, local)
|
||||||
|
|
||||||
|
xmpp:
|
||||||
|
enabled: false
|
||||||
|
muc_rooms: "" # comma-separated, e.g. "room1@conference.server,room2@conference.server"
|
||||||
|
nickname: "" # custom MUC nickname (empty = use username)
|
||||||
|
selective_response: true # true = only response if mentioned/relevant
|
||||||
|
|
||||||
|
telegram:
|
||||||
|
enabled: false
|
||||||
|
allowed_group_ids: "" # comma-separated, empty = all group
|
||||||
|
selective_response: true # true = only response if mentioned/relevant
|
||||||
|
|
||||||
|
# Humanize Delay (anti-bot detection)
|
||||||
|
delay:
|
||||||
|
read_min: 1.0 # second
|
||||||
|
read_max: 2.0 # second
|
||||||
|
typing_speed: 15.0 # characters per second
|
||||||
|
typing_max: 10.0 # max typing delay limit per second
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user