Files

1.9 KiB
Raw Permalink Blame History

Hermes Config — Правильный формат моделей

КРИТИЧЕСКИ: DICT, не LIST

Hermes читает модели в custom_providers только в DICT-формате. List-формат (с - name:) молча игнорируется — провайдер показывает 0 моделей.

✅ Правильный формат (DICT)

custom_providers:
  - name: lobehub-proxy
    api_key: local
    provider: openai
    base_url: http://localhost:20140/v1
    discover_models: false
    models:
      claude-opus-4.8:
        cost:
          input: 0
          output: 0
        ctx: 200000
      deepseek-v4-pro:
        cost:
          input: 0
          output: 0
        ctx: 131072

❌ Неправильный формат (LIST — 0 моделей в Hermes)

    models:
      - name: claude-opus-4.8
        context: 200000
      - name: deepseek-v4-pro
        context: 131072

Проверка

import yaml
with open(r'C:\Users\User\AppData\Local\hermes\config.yaml') as f:
    c = yaml.safe_load(f)
for p in c.get('custom_providers', []):
    models = p.get('models', {})
    t = type(models).__name__
    n = len(models)
    print(f"{p.get('name')}: {t} with {n} models")
    # Должно быть: dict with N models
    # Если list — Hermes покажет 0

Конвертация list → dict (ruamel.yaml)

from ruamel.yaml import YAML
yaml = YAML()
yaml.preserve_quotes = True

with open('config.yaml') as f:
    c = yaml.load(f)

for p in c['custom_providers']:
    if isinstance(p.get('models'), list):
        old = p['models']
        new = {}
        for m in old:
            name = m['name']
            ctx = m.get('context', 131072)
            new[name] = {'cost': {'input': 0, 'output': 0}, 'ctx': ctx}
        p['models'] = new

with open('config.yaml', 'w') as f:
    yaml.dump(c, f)