On essai de contraindre le modèle utilisé par ollama à répondre dans un certain format et ne plus mettre à l'interieur sa "réflexion"
All checks were successful
All checks were successful
This commit is contained in:
@@ -131,8 +131,10 @@ class GeminiLLMProvider:
|
||||
if temperature is not None:
|
||||
body["temperature"] = temperature
|
||||
# Mode JSON natif (supporté par l'endpoint OpenAI-compatible de Gemini) :
|
||||
# supprime fences ```json et JSON invalide, principale cause de morceaux ignorés.
|
||||
if output_format == "json":
|
||||
# supprime fences ```json et JSON invalide, principale cause de morceaux
|
||||
# ignorés. Un SCHÉMA (dict) est traduit en json_object : suffisant, les
|
||||
# grands modèles cloud respectent la structure demandée par le prompt.
|
||||
if output_format is not None:
|
||||
body["response_format"] = {"type": "json_object"}
|
||||
|
||||
async with httpx.AsyncClient(timeout=self._timeout) as client:
|
||||
|
||||
@@ -138,8 +138,10 @@ class MistralLLMProvider:
|
||||
body["temperature"] = temperature
|
||||
# Mode JSON natif : TOUS les modèles Mistral le supportent → plus de fences
|
||||
# ```json ni de JSON invalide (retours à la ligne bruts dans les chaînes),
|
||||
# principale cause de morceaux d'import ignorés.
|
||||
if output_format == "json":
|
||||
# principale cause de morceaux d'import ignorés. Un SCHÉMA (dict) est
|
||||
# traduit en json_object : suffisant ici, les grands modèles cloud
|
||||
# respectent la structure demandée par le prompt.
|
||||
if output_format is not None:
|
||||
body["response_format"] = {"type": "json_object"}
|
||||
|
||||
async with httpx.AsyncClient(timeout=self._timeout) as client:
|
||||
|
||||
@@ -48,7 +48,7 @@ class OllamaLLMProvider:
|
||||
self,
|
||||
prompt: str,
|
||||
*,
|
||||
output_format: str | None = None,
|
||||
output_format: str | dict | None = None,
|
||||
temperature: float | None = None,
|
||||
) -> str:
|
||||
url = f"{self._base_url}/api/generate"
|
||||
@@ -58,6 +58,10 @@ class OllamaLLMProvider:
|
||||
"stream": False,
|
||||
"options": self._build_options(temperature),
|
||||
}
|
||||
# "json" (mode JSON simple) ou un SCHÉMA JSON complet (structured outputs) :
|
||||
# Ollama contraint alors la grammaire de génération au schéma — un petit
|
||||
# modèle local ne PEUT physiquement plus produire d'objets imbriqués, de
|
||||
# clés "thought" bavardes ou de texte hors JSON.
|
||||
if output_format is not None:
|
||||
payload["format"] = output_format
|
||||
|
||||
|
||||
Reference in New Issue
Block a user