« ### 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.
last_shown_sec:\n yield f\» -{elapsed}s-\»\n last_shown_sec = elapsed\n\n time.sleep(0.2)\n\n # ——— Ответ с нового абзаца ———\n if result_holder[\»ok\»]:\n yield \»\\n\\n\» + (result_holder[\»text\»] or \»…\»)\n else:\n yield \»\\n\\n\» + (result_holder[\»err\»] or \»…\»)\n\n return _gen()\n»,»meta»:{«description»:»raumai4pro»,»manifest»:{}},»is_active»:true,»is_global»:false,»updated_at»:1775806109,»created_at»:1775573732}]
or {}).get(\n \»chat_id\», body.get(\»chat_id\», \»web-user\»)\n ),\n \»user_email\»: (__user__ or {}).get(\»email\», \»anonymous\»),\n }\n\n # ——— 2) Streaming generator ———\n def _gen():\n # Первая строка — статус\n yield \»⏳\»\n\n result_holder = {\»ok\»: False, \»text\»: \»\», \»err\»: \»\»}\n\n def _do_request():\n try:\n if files and files.get(\»data\»):\n r = requests.post(url, data=payload, files=files, timeout=300)\n else:\n # ИСПРАВЛЕНО: Прямая отправка payload без обертки \»body\»\n r = requests.post(url, json=payload, timeout=300)\n\n r.raise_for_status()\n\n try:\n data = r.json()\n\n out_obj = data.get(\»output\»)\n result_text =
[{«id»:»raumai4pro»,»user_id»:»58aa593f-3b9f-4895-b3f1-aeaf7097b14f»,»name»:»RaumAI4Pro»,»type»:»pipe»,»content»:»import requests\nimport base64\nimport io\nimport json\nimport threading\nimport time\nfrom typing import Union, Generator, Iterator\n\n\nclass Pipe:\n def __init__(self):\n self.type = \»manifold\»\n self.id = \»raumai_v4_pro\» # ИСПРАВЛЕНО: Уникальный ID\n self.name = \»RaumAI 4 Pro\» # ИСПРАВЛЕНО: Понятное имя в интерфейсе\n\n def pipe(\n self, body: dict, __user__: dict = None, __metadata__: dict = None\n ) -> Union[str, Generator, Iterator]:\n\n # ИСПРАВЛЕНО: Ваш локальный IP и точный путь вебхука\n url = \»http://10.0.0.20:5678/webhook/raumai04pro\»\n\n messages = body.get(\»messages\», [])\n user_message = \»\»\n files = {}\n\n # ——— 1) Сбор текста и изображений ———\n if messages:\n last_content = messages[-1].get(\»content\», [])\n text_part =
self, body: dict, __user__: dict = None, __metadata__: dict = None\n ) -> Union[str, Generator, Iterator]:\n\n messages = body.get(\»messages\», [])\n if not messages:\n return \»Ошибка: Сообщения не найдены.\»\n\n user_token = (__user__ or {}).get(\»token\»)\n user_email = (__user__ or {}).get(\»email\», \»anonymous\»)\n last_msg = messages[-1]\n\n user_message = \»\»\n send_files = {} # Для requests.post(files=…)\n attached_files_meta = []\n\n # — 1) СБОР ТЕКСТА И ИЗОБРАЖЕНИЙ (Base64) —\n last_content = last_msg.get(\»content\», [])\n if isinstance(last_content, list):\n for item in last_content:\n if not isinstance(item, dict):\n continue\n if item.get(\»type\») == \»text\»:\n user_message += item.get(\»text\») or item.get(\»content\») or \»\»\n\n if item.get(\»type\») == \»image_url\»:\n
result_holder[\»text\»] = r.text\n result_holder[\»ok\»] = True\n\n except Exception as e:\n result_holder[\»err\»] = f\»❌ Ошибка: {str(e)}\»\n\n t = threading.Thread(target=_do_request, daemon=True)\n t.start()\n\n start_time = time.time()\n while t.is_alive():\n elapsed = int(time.time() — start_time)\n if elapsed >= 3:\n yield f\» -{elapsed}s-\»\n time.sleep(0.5)\n\n yield \»\\n\\n\» + (\n result_holder[\»text\»] if result_holder[\»ok\»] else result_holder[\»err\»]\n )\n\n return _gen()\n»,»meta»:{«description»:»raumai04prov2″,»manifest»:{}},»is_active»:true,»is_global»:false,»updated_at»:1775822218,»created_at»:1775821476}]
}\n\n # — 4) ГЕНЕРАТОР (ОТПРАВКА) —\n def _gen():\n yield \»⏳ Анализирую вложения…\»\n result_holder = {\»ok\»: False, \»text\»: \»\», \»err\»: \»\»}\n\n def _do_request():\n try:\n if send_files:\n # Если есть файлы, n8n получит форму: поле ‘payload’ + бинарники\n r = requests.post(\n self.valves.N8N_WEBHOOK_URL,\n data={\»payload\»: json.dumps(payload, ensure_ascii=False)},\n files=send_files,\n timeout=300,\n )\n else:\n r = requests.post(\n self.valves.N8N_WEBHOOK_URL, json=payload, timeout=300\n )\n\n # Проверка на пустой ответ (защита от \»line 1 column 1\»)\n if not r.text.strip():\n
а этот? » ### 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.
last_shown_sec:\n yield f\» -{elapsed}s-\»\n last_shown_sec = elapsed\n\n time.sleep(0.2)\n\n # ——— Ответ с нового абзаца ———\n if result_holder[\»ok\»]:\n yield \»\\n\\n\» + (result_holder[\»text\»] or \»…\»)\n else:\n yield \»\\n\\n\» + (result_holder[\»err\»] or \»…\»)\n\n return _gen()\n»,»meta»:{«description»:»raumai4pro»,»manifest»:{}},»is_active»:true,»is_global»:false,»updated_at»:1775806109,»created_at»:1775573732}]
[{«id»:»raumai4pro»,»user_id»:»58aa593f-3b9f-4895-b3f1-aeaf7097b14f»,»name»:»RaumAI4Pro»,»type»:»pipe»,»content»:»import requests\nimport base64\nimport io\nimport json\nimport threading\nimport time\nfrom typing import Union, Generator, Iterator\n\n\nclass Pipe:\n def __init__(self):\n self.type = \»manifold\»\n self.id = \»raumai_v4_pro\» # ИСПРАВЛЕНО: Уникальный ID\n self.name = \»RaumAI 4 Pro\» # ИСПРАВЛЕНО: Понятное имя в интерфейсе\n\n def pipe(\n self, body: dict, __user__: dict = None, __metadata__: dict = None\n ) -> Union[str, Generator, Iterator]:\n\n # ИСПРАВЛЕНО: Ваш локальный IP и точный путь вебхука\n url = \»http://10.0.0.20:5678/webhook/raumai04pro\»\n\n messages = body.get(\»messages\», [])\n user_message = \»\»\n files = {}\n\n # ——— 1) Сбор текста и изображений ———\n if messages:\n last_content = messages[-1].get(\»content\», [])\n text_part =
or {}).get(\n \»chat_id\», body.get(\»chat_id\», \»web-user\»)\n ),\n \»user_email\»: (__user__ or {}).get(\»email\», \»anonymous\»),\n }\n\n # ——— 2) Streaming generator ———\n def _gen():\n # Первая строка — статус\n yield \»⏳\»\n\n result_holder = {\»ok\»: False, \»text\»: \»\», \»err\»: \»\»}\n\n def _do_request():\n try:\n if files and files.get(\»data\»):\n r = requests.post(url, data=payload, files=files, timeout=300)\n else:\n # ИСПРАВЛЕНО: Прямая отправка payload без обертки \»body\»\n r = requests.post(url, json=payload, timeout=300)\n\n r.raise_for_status()\n\n try:\n data = r.json()\n\n out_obj = data.get(\»output\»)\n result_text =
self, body: dict, __user__: dict = None, __metadata__: dict = None\n ) -> Union[str, Generator, Iterator]:\n\n messages = body.get(\»messages\», [])\n if not messages:\n return \»Ошибка: Сообщения не найдены.\»\n\n user_token = (__user__ or {}).get(\»token\»)\n user_email = (__user__ or {}).get(\»email\», \»anonymous\»)\n last_msg = messages[-1]\n\n user_message = \»\»\n send_files = {} # Для requests.post(files=…)\n attached_files_meta = []\n\n # — 1) СБОР ТЕКСТА И ИЗОБРАЖЕНИЙ (Base64) —\n last_content = last_msg.get(\»content\», [])\n if isinstance(last_content, list):\n for item in last_content:\n if not isinstance(item, dict):\n continue\n if item.get(\»type\») == \»text\»:\n user_message += item.get(\»text\») or item.get(\»content\») or \»\»\n\n if item.get(\»type\») == \»image_url\»:\n
}\n\n # — 4) ГЕНЕРАТОР (ОТПРАВКА) —\n def _gen():\n yield \»⏳ Анализирую вложения…\»\n result_holder = {\»ok\»: False, \»text\»: \»\», \»err\»: \»\»}\n\n def _do_request():\n try:\n if send_files:\n # Если есть файлы, n8n получит форму: поле ‘payload’ + бинарники\n r = requests.post(\n self.valves.N8N_WEBHOOK_URL,\n data={\»payload\»: json.dumps(payload, ensure_ascii=False)},\n files=send_files,\n timeout=300,\n )\n else:\n r = requests.post(\n self.valves.N8N_WEBHOOK_URL, json=payload, timeout=300\n )\n\n # Проверка на пустой ответ (защита от \»line 1 column 1\»)\n if not r.text.strip():\n
result_holder[\»text\»] = r.text\n result_holder[\»ok\»] = True\n\n except Exception as e:\n result_holder[\»err\»] = f\»❌ Ошибка: {str(e)}\»\n\n t = threading.Thread(target=_do_request, daemon=True)\n t.start()\n\n start_time = time.time()\n while t.is_alive():\n elapsed = int(time.time() — start_time)\n if elapsed >= 3:\n yield f\» -{elapsed}s-\»\n time.sleep(0.5)\n\n yield \»\\n\\n\» + (\n result_holder[\»text\»] if result_holder[\»ok\»] else result_holder[\»err\»]\n )\n\n return _gen()\n»,»meta»:{«description»:»raumai04prov2″,»manifest»:{}},»is_active»:true,»is_global»:false,»updated_at»:1775822218,»created_at»:1775821476}]
так сколько фото?