mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-09 02:24:42 +02:00
Serveur : /v1/ask accepte un model optionnel (validé contre STT_ALLOWED_MODELS), nouvel endpoint GET /v1/models (défaut + alias autorisés). Pas de switch global. Client : 'stt --text' (chat texte simple sans micro/HUD), '--model hermes|claude|qwen|opus' (noms courts → alias LiteLLM), commandes /model et /models en mode texte. Le modèle choisi est envoyé au serveur à chaque requête (voix comme texte). Claude-Session: https://claude.ai/code/session_013FmcxGsyXZXogiAHQLjnZT Co-authored-by: Claude <noreply@anthropic.com>
29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
"""Orchestration AI : route les requêtes des clients vers LiteLLM (s01).
|
|
|
|
LiteLLM (:4000) est OpenAI-compatible et route lui-même vers Qwen3 (g01) ou Claude
|
|
selon l'alias `hermes-default` / `hermes-switch`. L'intégration des outils Hermes
|
|
(« agir sur Funk » via le gateway :8080) est une étape ultérieure.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import httpx
|
|
|
|
from stt_server.config import settings
|
|
|
|
|
|
async def ask(text: str, model: str | None = None) -> str:
|
|
payload = {
|
|
"model": model or settings.model,
|
|
"messages": [
|
|
{"role": "system", "content": settings.system_prompt},
|
|
{"role": "user", "content": text},
|
|
],
|
|
"max_tokens": settings.max_tokens,
|
|
"temperature": settings.temperature,
|
|
}
|
|
headers = {"Authorization": f"Bearer {settings.litellm_key}"}
|
|
async with httpx.AsyncClient(timeout=settings.request_timeout) as client:
|
|
r = await client.post(settings.litellm_url, json=payload, headers=headers)
|
|
r.raise_for_status()
|
|
return r.json()["choices"][0]["message"]["content"].strip()
|