Sobes.tech
Middle

LLM'nin katı bir JSON döndürmesini ve yanıtı doğrulamasını nasıl sağlarım?

sobes.tech yapay zeka

AI'dan gelen yanıt

Чтобы заставить 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.