Middle
22
Как заставить LLM возвращать строгий JSON и валидировать ответ?
Компании, где спрашивали
Автомакон
Ответ от нейросети
sobes.tech AI
Чтобы заставить LLM (Large Language Model) возвращать строго валидный JSON, важно правильно сформулировать запрос (prompt) с чёткими инструкциями. Например, можно явно указать, что ответ должен быть в формате JSON, без лишнего текста, и даже привести пример желаемой структуры.
Пример подсказки:
Пожалуйста, верни ответ строго в формате JSON, без дополнительного текста. Вот пример структуры:
{
"name": "",
"age": 0,
"email": ""
}
Для валидации ответа можно использовать парсеры JSON в вашем языке программирования. Если парсер выдаёт ошибку, значит ответ невалиден. Также можно использовать JSON Schema для проверки структуры и типов данных.
Пример на Python с валидацией через json и jsonschema:
import json
from jsonschema import validate, ValidationError
schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
"email": {"type": "string", "format": "email"}
},
"required": ["name", "age", "email"]
}
response = '{"name": "Иван", "age": 30, "email": "ivan@example.com"}'
try:
data = json.loads(response)
validate(instance=data, schema=schema)
print("Ответ валиден")
except (json.JSONDecodeError, ValidationError) as e:
print(f"Ошибка валидации: {e}")
Таким образом, комбинация чётких инструкций в prompt и программной валидации позволяет добиться строгого JSON-ответа от LLM.