mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 23:18:13 +02:00
Vision : la sonde /props s'authentifie
engineSeesImages interrogeait /props sans en-tête Bearer. Moteur lancé avec --api-key (backend_serve.go), la sonde recevait 401, concluait « pas de vision » et les deux appelants — pièces jointes et captures — retombaient sur le texte seul : aucune image ne partait, projecteur chargé ou non. Le modèle brodait à partir du seul chemin de fichier. Vérifié en production : /props authentifié renvoie modalities.vision true avec le mmproj bien passé au moteur. authHeader est le helper déjà utilisé par tous les autres appels internes ; c'était le seul client.Get nu du paquet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0a3af60715
commit
781520afd8
1 file changed
+11
-1
@@ -105,6 +105,11 @@ func screenshotVisionNote() string {
|
|||||||
// modèle, ou avec un modèle sans vision (gpt-oss), le gabarit sérialise le
|
// modèle, ou avec un modèle sans vision (gpt-oss), le gabarit sérialise le
|
||||||
// base64 de l'image en TEXTE — la requête vue en production pesait 55 000
|
// base64 de l'image en TEXTE — la requête vue en production pesait 55 000
|
||||||
// tokens pour 32 768 de contexte, et tous les tours suivants échouaient.
|
// tokens pour 32 768 de contexte, et tous les tours suivants échouaient.
|
||||||
|
//
|
||||||
|
// La sonde est un appel interne comme les autres : elle DOIT s'authentifier.
|
||||||
|
// Sans l'en-tête Bearer, un moteur protégé par API_KEY répond 401 et la sonde
|
||||||
|
// conclut « pas de vision » — le projecteur était bien chargé, les images ne
|
||||||
|
// partaient jamais et le modèle brodait à partir du seul chemin de fichier.
|
||||||
var (
|
var (
|
||||||
visionProbeMu sync.Mutex
|
visionProbeMu sync.Mutex
|
||||||
visionProbeAt time.Time
|
visionProbeAt time.Time
|
||||||
@@ -120,7 +125,12 @@ func engineSeesImages() bool {
|
|||||||
visionProbeAt = time.Now()
|
visionProbeAt = time.Now()
|
||||||
visionProbeSeen = false
|
visionProbeSeen = false
|
||||||
client := &http.Client{Timeout: 2 * time.Second}
|
client := &http.Client{Timeout: 2 * time.Second}
|
||||||
resp, err := client.Get(fmt.Sprintf("http://localhost:%d/props", LLMPort()))
|
req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("http://localhost:%d/props", LLMPort()), nil)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
authHeader(req)
|
||||||
|
resp, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user