Install
openclaw skills install 1c-assistantИспользуй когда пользователь пишет /1c или /1c-help (команды справки по 1С), или задаёт вопросы про 1С ERP, 1С Бухгалтерию, ЗУП, BSL программирование, права и роли пользователей 1С, запросы к регистрам, управляемые формы, конфигуратор, начисление зарплаты, НДФЛ, НДС, проводки, печатные формы. Всегда отвечай только на русском языке.
openclaw skills install 1c-assistantОтвечает на вопросы по 1С через локальный RAG (Qdrant + bge-m3 + qwen3:14b).
При /1c или /1c-help или "покажи состояние базы 1С" — НЕМЕДЛЕННО выполнить:
bash /home/alexandr/.openclaw/workspace/1c-assistant/1c-help.sh 1360549978
Это всё. Больше ничего не делать, не генерировать текст. Скрипт сам отправит справку в Telegram.
Активировать при ключевых словах:
| Тема | Коллекция |
|---|---|
| BSL код, синтаксис, диагностики, оптимизация | kb_1c_code |
| Права, роли, пользователи, администрирование | kb_1c_admin |
| Бухгалтерия, налоги, отчётность, счета | kb_1c_buh |
| ЗУП, кадры, зарплата, отпуска, больничные | kb_1c_zup |
| Печатные формы, шаблоны, макеты | kb_1c_forms |
| Всё остальное (ERP, НСИ, настройка) | kb_1c_erp |
QUESTION="<вопрос пользователя>"
COLLECTION="<коллекция из таблицы>"
curl -s -X POST https://n8nwint.ru/webhook/1c-rag-query \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg question "$QUESTION" \
--arg chat_id "1360549978" \
--arg collection "$COLLECTION" \
--arg model "qwen3:14b" \
'{question: $question, chat_id: $chat_id, collection: $collection, model: $model}'
)"
Ответ придёт в Telegram (30-60 сек). Сообщить пользователю: "Запрос отправлен, ответ придёт в Telegram."
# Прямой запрос через Qdrant + Ollama
QUESTION="<вопрос>"
COLLECTION="<коллекция>"
QDRANT="http://192.168.0.200:6333"
OLLAMA="http://192.168.0.200:11434"
QDRANT_KEY="zkpDII8FaBpzpRke8uWWcOEJDGXxKNsn"
# 1. Получить embedding вопроса
VECTOR=$(curl -s -X POST "$OLLAMA/api/embeddings" \
-H "Content-Type: application/json" \
-d "{\"model\": \"bge-m3\", \"prompt\": \"$QUESTION\"}" | jq '.embedding')
# 2. Поиск в Qdrant
CONTEXT=$(curl -s -X POST "$QDRANT/collections/$COLLECTION/points/search" \
-H "Content-Type: application/json" \
-H "api-key: $QDRANT_KEY" \
-d "{\"vector\": $VECTOR, \"limit\": 5, \"with_payload\": true}" \
| jq -r '.result[] | .payload.text' | head -c 3000)
# 3. Ответ через Ollama
curl -s -X POST "$OLLAMA/api/generate" \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg model "qwen3:14b" \
--arg prompt "Ты старший специалист по 1С с 10+ годами опыта. Отвечай структурированно, на русском языке.\n\nКонтекст из базы знаний:\n$CONTEXT\n\nВопрос: $QUESTION\n\nОтвет:" \
'{model: $model, prompt: $prompt, stream: false}'
)" | jq -r '.response'
Когда пользователь просит добавить скриншот, фото, изображение:
# Изображение с сервера
bash /home/alexandr/.openclaw/workspace/1c-assistant/ingest_image.sh \
"/path/to/screenshot.png" \
"kb_devops" \
"Название скриншота"
# Изображение по URL
bash /home/alexandr/.openclaw/workspace/1c-assistant/ingest_image.sh \
"https://example.com/screenshot.png" \
"kb_python" \
"Название"
Что делает скрипт:
image_url в payloadКоллекции для изображений: те же что для текста (kb_python, kb_devops, kb_1c_code и т.д.)
Когда пользователь просит загрузить PDF — спросить:
Использовать универсальный скрипт (автоматически определяет скан и запускает OCR):
# PDF по пути на сервере
bash /tmp/1c-assistant/scripts/ingest_pdf.sh \
"/home/alexandr/docs/guide.pdf" \
"kb_1c_buh" \
"Название документа"
# PDF по URL
bash /tmp/1c-assistant/scripts/ingest_pdf.sh \
"https://example.com/doc.pdf" \
"kb_1c_zup" \
"Название документа"
Скрипт: текстовый PDF → pdftotext; скан → tesseract OCR (rus+eng). Уведомление придёт в Telegram.
# Добавить URL в базу знаний
curl -s -X POST https://n8nwint.ru/webhook/1c-ingest \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg type "url" \
--arg collection "<коллекция>" \
--arg title "<название>" \
--arg url "<url>" \
--arg chat_id "1360549978" \
--arg version_1c "8.3" \
'{type: $type, collection: $collection, title: $title, url: $url, chat_id: $chat_id, version_1c: $version_1c}'
)"
# Добавить текст напрямую
curl -s -X POST https://n8nwint.ru/webhook/1c-ingest \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg type "text" \
--arg collection "<коллекция>" \
--arg title "<название>" \
--arg text "<текст документа>" \
--arg chat_id "1360549978" \
--arg version_1c "8.3" \
'{type: $type, collection: $collection, title: $title, text: $text, chat_id: $chat_id, version_1c: $version_1c}'
)"
QDRANT="http://192.168.0.200:6333"
QDRANT_KEY="zkpDII8FaBpzpRke8uWWcOEJDGXxKNsn"
for coll in kb_1c_erp kb_1c_buh kb_1c_zup kb_1c_code kb_1c_admin kb_1c_forms; do
count=$(curl -s "$QDRANT/collections/$coll" \
-H "api-key: $QDRANT_KEY" | jq '.result.points_count')
echo "$coll: $count points"
done
| Ситуация | Действие |
|---|---|
| score < 0.7 (нет контекста) | Попробовать kb_1c_erp как fallback |
| Все коллекции пустые | Ответить из знаний модели с пометкой "из общих знаний" |
| Вопрос про разработку конфигурации | Передать Codex скилл |
| Нужно добавить документацию | Использовать ingest webhook выше |