AI + автоматизация
Связка локальных моделей с бизнес-процессами, скриптами и расписаниями.
Нужны основы? basics/ — AI-термины, железо, установка Ollama.
← Практические кейсы · Мульти-агентные системы →
Содержание
- Связки
- Базовый скрипт: обработка через Ollama
- cron + Ollama: периодическая обработка
- n8n + Ollama: визуальная автоматизация
- Telegram-бот с локальной моделью
- Что дальше
1. Связки
| Компонент | Роль | Установка |
|---|---|---|
| Ollama | Локальная модель (API на :11434) | brew install ollama |
| Python скрипт | Логика, вызов API, обработка | Встроен в macOS |
| cron | Запуск по расписанию | Встроен в macOS/Linux |
| n8n | Self-hosted визуальная автоматизация | npx n8n |
| Make | No-code облачная автоматизация | Регистрация на сайте |
2. Базовый скрипт: обработка через Ollama
Самый простой способ автоматизации — Python-скрипт, который вызывает Ollama по API.
#!/usr/bin/env python3
"""ai_process.py — универсальный скрипт для обработки текста через Ollama."""
import requests
import json
import sys
OLLAMA = "http://localhost:11434/api/chat"
MODEL = "qwen3.5:4b"
def ai_process(text: str, instruction: str = "Ответь кратко") -> str:
"""Отправляет текст модели и возвращает ответ."""
response = requests.post(OLLAMA, json={
"model": MODEL,
"messages": [
{"role": "system", "content": instruction},
{"role": "user", "content": text}
],
"stream": False
})
return response.json()["message"]["content"]
def ai_process_json(text: str, json_schema: dict) -> dict:
"""Отправляет текст и получает структурированный JSON."""
response = requests.post(OLLAMA, json={
"model": MODEL,
"messages": [{"role": "user", "content": text}],
"format": json_schema,
"stream": False
})
return json.loads(response.json()["message"]["content"])
# Примеры использования
if __name__ == "__main__":
# Простой вызов
result = ai_process(
"Напиши краткое саммари: 'Компания выпустила новую версию продукта...'",
"Ты — ассистент. Составляй краткие саммари (2-3 предложения)."
)
print(f"📝 {result}")
# JSON-вывод
schema = {
"type": "object",
"properties": {
"summary": {"type": "string"},
"sentiment": {"type": "string", "enum": ["positive", "negative", "neutral"]},
"keywords": {"type": "array", "items": {"type": "string"}}
}
}
data = ai_process_json(
"Продукт отличный, но интерфейс немного запутанный",
schema
)
print(f"📊 {json.dumps(data, ensure_ascii=False, indent=2)}")
3. cron + Ollama: периодическая обработка
Запуск скрипта каждый день в 9 утра для обработки новых данных.
# Создайте скрипт обработки
cat > ~/scripts/daily_report.sh << 'EOF'
#!/bin/bash
cd ~/scripts
# Прочитать входящие данные
cat today_notes.txt | \
python3 -c "
import sys, requests
text = sys.stdin.read()
resp = requests.post('http://localhost:11434/api/chat', json={
'model': 'qwen3.5:4b',
'messages': [
{'role': 'system', 'content': 'Составь краткий отчёт по заметкам'},
{'role': 'user', 'content': text}
],
'stream': False
})
print(resp.json()['message']['content'])
" > daily_report.md
echo "Отчёт сохранён: daily_report.md"
EOF
# Сделайте исполняемым
chmod +x ~/scripts/daily_report.sh
# Добавьте в crontab
echo "0 9 * * * $HOME/scripts/daily_report.sh" | crontab -
Важно: cron использует абсолютные пути. Убедитесь, что ollama serve запущен.
4. n8n + Ollama: визуальная автоматизация
n8n позволяет строить автоматизации без кода.
Установка
npx n8n
Готовый workflow: саммари входящих писем
[IMAP Email] → [HTTP Request (Ollama)] → [Slack/Telegram]
Настройка HTTP-ноды для Ollama:
Method: POST
URL: http://localhost:11434/api/chat
Body (JSON):
{
"model": "qwen3.5:4b",
"messages": [
{"role": "system", "content": "Напиши краткую сводку письма (3-5 предложений)"},
{"role": "user", "content": "={{ $json.emailBody }}"
],
"stream": false
}
Примеры workflow
| Сценарий | Триггер | Действие |
|---|---|---|
| Саммари писем | Новое письмо (IMAP) | Ollama → Telegram |
| Классификация тикетов | Новый тикет (webhook) | Ollama → Jira |
| Перевод документов | Новый файл в папке | Ollama → сохранение |
| Мониторинг новостей | RSS фид | Ollama → база данных |
5. Telegram-бот с локальной моделью
#!/usr/bin/env python3
"""telegram_ai_bot.py — Telegram-бот на локальной модели."""
import requests
import logging
from http.server import HTTPServer, BaseHTTPRequestHandler
OLLAMA = "http://localhost:11434/api/chat"
MODEL = "qwen3.5:4b"
class AIBotHandler(BaseHTTPRequestHandler):
"""Простой HTTP-сервер, принимающий запросы и отвечающий через AI."""
def do_POST(self):
content_length = int(self.headers['Content-Length'])
body = self.rfile.read(content_length).decode()
response = requests.post(OLLAMA, json={
"model": MODEL,
"messages": [
{"role": "system", "content": "Ты — полезный ассистент. Отвечай кратко."},
{"role": "user", "content": body}
],
"stream": False
})
answer = response.json()["message"]["content"]
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
self.wfile.write(f'{{"response": "{answer}"}}'.encode())
if __name__ == "__main__":
server = HTTPServer(("localhost", 8888), AIBotHandler)
print("🤖 AI Bot запущен на http://localhost:8888")
server.serve_forever()
Для полноценного Telegram-бота используйте python-telegram-bot + Ollama.
6. Что дальше
| Если хотите | Переходите |
|---|---|
| Создать multi-agent систему для автоматизации | ../agents/multi-agent.ru.md |
| Написать агента-исполнителя с инструментами | ../agents/tutorials/01-first-agent.ru.md |
| Разобраться с API Ollama | ../agents/ollama-for-agents.ru.md |
| Вернуться к списку кейсов | README.ru.md |
В разделе: coding · rag · automation · writing
Связанные разделы: Локальные модели · AI-агенты · Нулевой уровень
Навигация: ← Use Cases · ↑ На главную · 🇬🇧 English