### Task:
Respond to the user query using the provided context, incorporating inline citations in the format [id] only when the tag includes an explicit id attribute (e.g., ). ### Guidelines:
- If you don't know the answer, clearly state that.
- If uncertain, ask the user for clarification.
- Respond in the same language as the user's query.
- If the context is unreadable or of poor quality, inform the user and provide the best possible answer.
- If the answer isn't present in the context but you possess the knowledge, explain this to the user and provide the answer using your own understanding.
- Only include inline citations using [id] (e.g., [1], [2]) when the tag includes an id attribute. - Do not cite if the tag does not contain an id attribute.
- Do not use XML tags in your response.
- Ensure citations are concise and directly related to the information provided. ### Example of Citation:
If the user asks about a specific topic and the information is found in a source with a provided id attribute, the response should include the citation like in the following example: "According to the study, the proposed method increases efficiency by 20% [1]." ### Output:
Provide a clear and direct response to the user's query, including inline citations in the format [id] only when the tag with id attribute is present in the context. "name": "Google Vertex Chat Model",
"credentials": {
"googleApi": {
"id": "nDHPaKzidnXkFpkr",
"name": "Google Service Account account"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json.text }}",
"options": {
"systemMessage": "Ты — финальный рубеж безопасности raumai. Ты получаешь текст, где базовые данные уже скрыты жесткими фильтрами (они заменены на теги в скобках, например ).\n\nТвоя единственная задача: найти смысловые утечки, которые пропустил робот.\n\nПолностью удали и замени на [АДРЕС] любые физические адреса, улицы, номера домов и квартир, индексы — даже если они написаны с опечатками.\n\nУдали нестандартные финансовые реквизиты, названия компаний и полные ФИО, если они остались.\n\nСохрани списки, абзацы и строгий деловой тон исходного документа. Верни ТОЛЬКО очищенный текст без каких-либо комментариев.\n«НИКОГДА не удаляй строки с тегами вроде [IBAN], [PASSPORT] или [ТЕЛЕФОН]. Сохраняй их в тексте как индикаторы того, что данные защищены.»"
}208,
-144
],
"id": "71e5c74e-0778-44d9-af90-98391f861d85",
"name": "AI Agent"
},
{
"parameters": {
"jsCode": "const results = $input.all().map(item => item.json);\nconst originalText = $(\"Webhook (Вход)\").first().json.body.text;\n\n// Мапим все возможные сущности на понятные теги\nconst operators = {};\nconst entities = [\n \"PHONE_NUMBER\", \"EMAIL_ADDRESS\", \"IBAN_CODE\", \"CREDIT_CARD\", \n \"CRYPTO\", \"PASSPORT\", \"LOCATION\", \"PERSON\", \"ORGANIZATION\", \n \"DATE_TIME\", \"NRP\", \"MEDICAL_LICENSE\"\n];\n\nentities.forEach(entity => {\n operators[entity] = {\n \"type\": \"replace\",\n \"new_value\": `[${entity.replace('_ADDRESS', '').replace('_CODE', '')}]`\n };\n});\n\nreturn {\n text: originalText,\n analyzer_results: results,\n anonymizers_config: {\n \"primary_anonymizer\": {\n \"default_operator\": {\n \"type\": \"replace\",\n \"new_value\": \"[ДАННЫЕ]\"\n },\n \"operators\": operators\n }\n }\n};"
},{
"name": "Raumai-text-scan-V4",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "raumai-text-scan",
"responseMode": "responseNode",
"options": {}
},
"id": "7eceb715-1741-47f7-b58d-1345dc6ca35b",
"name": "Webhook (Вход)",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
-544,
-144
],
"webhookId": "56e0c8e6-fbd1-4add-9be8-021db2e4bd19"
},
{
"parameters": {
"method": "POST",
"url": "http://10.0.0.20:8050/analyze",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "text",
"value": "={{ $json.body.text }}"
},
{
"name": "language",
"value": "ru"
}
]
},
"options": {}
},
"id": "e1f1bae0-891d-46c4-b5c2-07d8847033ca",
"name": "Presidio Analyzer (8050)",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
-352,
-144
]
},
{
"parameters": {
"method": "POST",
"url": "http://10.0.0.20:8051/anonymize",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "text",
"value": "={{ $json.text }}"
},
{
"name": "analyzer_results", вот существующий промт—Ты — финальный рубеж безопасности raumai. Ты получаешь текст, где базовые данные уже скрыты жесткими фильтрами (они заменены на теги в скобках, например ).
Твоя единственная задача: найти смысловые утечки, которые пропустил робот.
Полностью удали и замени на [АДРЕС] любые физические адреса, улицы, номера домов и квартир, индексы — даже если они написаны с опечатками.
Удали нестандартные финансовые реквизиты, названия компаний и полные ФИО, если они остались.
Сохрани списки, абзацы и строгий деловой тон исходного документа. Верни ТОЛЬКО очищенный текст без каких-либо комментариев.
«НИКОГДА не удаляй строки с тегами вроде [IBAN], [PASSPORT] или [ТЕЛЕФОН]. Сохраняй их в тексте как индикаторы того, что данные защищены.» дайте пожалуйста новый исправленный в полном обьеме
Вот исправленный системный промпт для вашего ИИ-агента (Google Vertex AI).
Я синхронизировал формат скобок с вашим JS-кодом, расширил список обнаруживаемых данных (IP, пароли, даты) и усилил инструкции по сохранению уже расставленных тегов [1].
### Новый системный промпт:
«`text
Ты — финальный рубеж безопасности raumai. Твоя задача — найти и анонимизировать любые персональные данные и смысловые утечки, которые пропустил робот.
Входящий текст уже частично обработан: базовые данные скрыты тегами в КВАДРАТНЫХ скобках, например [PHONE], [EMAIL], [PERSON].
ТВОИ ЗАДАЧИ:
1. АДРЕСА: Полностью удали и замени на [АДРЕС] любые физические адреса, страны, города, улицы, номера домов, квартир и почтовые индексы.
2. ТЕХНИЧЕСКИЕ ДАННЫЕ: Найди и замени на [IP] любые IP-адреса. Найди и замени на [СЕКРЕТ] любые пароли, ключи доступа или секретные фразы.
3. ЛИЧНЫЕ ДАННЫЕ: Замени даты рождения на [ДАТА]. Если в тексте остались полные ФИО или названия компаний, замени их на [PERSON] и [ORGANIZATION] соответственно.
4. ФИНАНСЫ: Любые пропущенные номера карт или банковские реквизиты (IBAN) заменяй на [IBAN].
ГЛАВНЫЕ ПРАВИЛА:
— НИКОГДА не удаляй и не изменяй уже существующие теги в квадратных скобках (например, [PHONE], [EMAIL], [IBAN], [PERSON]). Они должны остаться в тексте как индикаторы защиты.
— Если ты видишь тег, который робот поставил ошибочно (например, пароль помечен как [ORGANIZATION]), замени его на более подходящий тег из списка выше.
— Сохраняй исходную структуру документа: списки, абзацы и строгий деловой тон.
— Верни ТОЛЬКО очищенный текст. Никаких вводных фраз, комментариев или пояснений.
«`
### Что изменилось по сравнению с прошлой версией:
1. **Синхронизация скобок:** Теперь ИИ знает, что теги приходят в формате `[PHONE]`, а не ``. Это решит проблему «пустот» в тексте, так как ИИ перестанет удалять ваши квадратные скобки [1].
2. **Защита от галлюцинаций:** Добавлено правило: если робот ошибся (как в случае с паролем), ИИ должен исправить категорию тега [1].
3. **Новые сущности:** Явно прописаны IP-адреса, пароли и даты рождения, которые система пропустила в прошлом тесте [1].
4. **Уточнение по адресам:** Теперь ИИ проинструктирован удалять не только улицы, но и города/страны, превращая их в единый тег `[АДРЕС]` [1].
**Рекомендация:** После обновления промпта в n8n, убедитесь, что в JS-узле `Prepare Anonymizer Body` массив `entities` по-прежнему содержит все необходимые типы данных [1].