技能:1C AI Assistant
通过本地RAG(Qdrant + bge-m3 + qwen3:14b)回答1C相关问题。
触发器
当输入/1c或/1c-help或“显示1C数据库状态”时,立即执行:
bash /home/alexandr/.openclaw/workspace/1c-assistant/1c-help.sh 1360549978
这就是全部,不要生成文本,脚本会自动将帮助发送到Telegram。
激活关键词:
1C通用:“1с”,“1с erp”,“1с бухгалтерия”,“配置器”,“1с企业”,“1с zup”,“1с зуп”
开发:“bsl”,“内置语言”,“1C查询”,“数据模式”,“注册表”,“托管表单”,“公共模块”
管理:“1C权限”,“1C角色”,“1C用户”,“工作站”,“访问限制”
文档/参考书:“参考书”,“1C文档”,“属性”,“表格部分”
主题集合定义
主题 集合
BSL代码,语法,诊断,优化 kb_1c_code
权限,角色,用户,管理 kb_1c_admin
会计,税务,报告,账户 kb_1c_buh
ZUP,人事,工资,休假,病假 kb_1c_zup
打印表单,模板,布局 kb_1c_forms
其他(ERP,NSI,设置) kb_1c_erp
执行算法
- 从上表确定集合
- 调用RAG Query webhook
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}' )"
答案将在30-60秒内通过Telegram发送。
告诉用户:“请求已发送,答案将通过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 "您是1C的高级专家,拥有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" \
"名称"
脚本执行以下操作:
通过tesseract(rus+eng)执行OCR——提取文本
将图像复制到/tmp/mcp-serve/——图像通过URL可访问
将image_url发送到wf21的payload中
在RAG搜索时——Telegram将收到带有图像的文本答案
图像集合与文本集合相同(kb_python,kb_devops,kb_1c_code等)
加载PDF文档
当用户要求加载PDF时,询问:
服务器上的文件路径
或PDF的URL
集合(从上表中选择)
文档名称
使用通用脚本(自动检测扫描并启动OCR):
# 服务器上的PDF
bash /tmp/1c-assistant/scripts/ingest_pdf.sh \
"/home/alexandr/docs/guide.pdf" \
"kb_1c_buh" \
"文档名称"
# URL上的PDF
bash /tmp/1c-assistant/scripts/ingest_pdf.sh \
"https://example.com/doc.pdf" \
"kb_1c_zup" \
"文档名称"
脚本:
文本PDF → pdftotext;
扫描 → tesseract OCR(rus+eng)。
通知将通过Telegram发送。
加载新文档(文本/URL)
# 将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 "" \
--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}' )"