Генерация сущностей
Обновлено 14 ноября 2024
Пример промпта для генерации сущностей. Промпт содержит инструкцию по количеству синонимов сущности и формату ответа.
Структура промпта
- GigaChat API
- GigaChain
{
"model": "GigaChat",
"messages": [
{
"role": "system",
"content": "Сгенерируй от 5 до 10 объектов для сущности \"автомобиль\" для каждого объекта сгенерируй до 10 синонимов. Придерживайся следующих правил: объекты и синонимы должны быть уникальны, не придумывай несуществующие слова и выражения, если у тебя закончились варианты, то не генерируй ничего. Результат верни в формате JSON-массива без каких-либо пояснений, например, [{\"entity\": \"название объекта\", \"synonyms\": [\"синоним1\", \"синоним2\"]}]."
},
],
}
input_variables: [dataset_size_min, dataset_size_max, subject]
output_parser: null
template: 'Сгенерируй от {dataset_size_min} до {dataset_size_max} объектов для сущности "{subject}" для каждого объекта сгенерируй до 10 синонимов. Придерживайся следующих правил: объекты и синонимы должны быть уникальны, не придумывай несуществующие слова и выражения, если у тебя закончились варианты, то не генерируй ничего. Результат верни в формате JSON-массива без каких-либо пояснений, например, [{"entity": "название объекта", "synonyms": ["синоним1", "синоним2"]}].'
template_format: f-string
_type: prompt
Пример запроса
- GigaChat API
- GigaChain
curl --location 'https://gigachat.devices.sberbank.ru/api/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: <токен_доступа>' \
--data '{
"model": "GigaChat",
"temperature": 0.87,
"top_p": 0.47,
"n": 1,
"max_tokens": 512,
"repetition_penalty": 1.07,
"stream": false,
"update_interval": 0,
"messages": [
{
"role": "system",
"content": "Сгенерируй от 5 до 10 объектов для сущности \"автомобиль\" для каждого объекта сгенерируй до 10 синонимов. Придерживайся следующих правил: объекты и синонимы должны быть уникальны, не придумывай несуществующие слова и выражения, если у тебя закончились варианты, то не генерируй ничего. Результат верни в формате JSON-массива без каких-либо пояснений, например, [{\"entity\": \"название объекта\", \"synonyms\": [\"синоним1\", \"синоним2\"]}]."
},
]
}'
from langchain_gigachat.tools.load_prompt import load_from_giga_hub
from langchain.chains import LLMChain
from langchain_gigachat.chat_models import GigaChat
giga = GigaChat(credentials="ключ авторизации")
synonyms_with_examples = load_from_giga_hub('lc://prompts/synonyms/entity_generation.yaml')
text = prompt.format(dataset_size_min=5,
dataset_size_max=10,
subject="автомобиль")