Better config format

This commit is contained in:
Dita Aji Pratama 2026-06-17 15:04:54 +07:00
parent 07dd99ded4
commit 0bedda1c06
3 changed files with 77 additions and 76 deletions

View File

@ -33,23 +33,28 @@ XMPP_USERNAME = os.getenv("XMPP_USERNAME", default="")
XMPP_PASSWORD = os.getenv("XMPP_PASSWORD", default="")
MODELS_ITEMS: list[dict] = []
_models_config = _yaml_get("models", default={})
_items = _models_config.get("items", [])
if isinstance(_items, list):
for entry in _items:
if not isinstance(entry, dict):
_providers = _yaml_get("llm", "providers", default=[])
if isinstance(_providers, list):
for prov in _providers:
if not isinstance(prov, dict):
continue
model = entry.get("model", "")
provider = entry.get("provider", "")
base_url = entry.get("base_url", "").rstrip("/")
api_key = entry.get("key", "") or llm_api_key
MODELS_ITEMS.append({
"model": model,
"provider": provider,
"base_url": base_url,
"api_key": api_key,
"default": entry.get("default", False),
})
pname = prov.get("name", "")
base_url = prov.get("base_url", "").rstrip("/")
api_key = prov.get("api_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({
"model": model_name,
"provider": pname,
"base_url": base_url,
"api_key": api_key,
"default": is_default,
})
def resolve_provider(base_url: str, model: str) -> str | None:
"""Cari nama provider yg cocok dengan (base_url, model) dari MODELS_ITEMS."""

View File

@ -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
View 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