Install
openclaw skills install receipt-trackerРаспознает фотографии чеков, разбивает расходы по категориям (продукты, заправка, аптека, такси, животные и др.) и сохраняет их в базу (expenses.csv). Генери...
openclaw skills install receipt-trackerЭтот навык предназначен для автоматического извлечения данных из фотографий кассовых чеков, категоризации покупок и ведения базы данных расходов в формате CSV. Он позволяет пользователю просто отправить фото чека в чат, а агент сделает всю остальную работу: распознает текст, определит категории и запишет результат.
База данных хранится в файле: /opt/.openclaw/.openclaw/workspace/memory/expenses.csv
При анализе чека используйте следующие основные категории:
Когда пользователь присылает фото чека:
/opt/.openclaw/.../file_XX.jpg).sessions_spawn (runtime="subagent", mode="run"), чтобы запустить изолированного субагента для анализа картинки.
model: "google/gemini-2.5-flash" (или gemini-2.5-flash, как указано в запросе пользователя), так как эта модель быстрая, дешевая/бесплатная и отлично справляется с OCR и анализом одновременно.attachments передайте путь к фото чека.task попросите субагента: "Прочитай чек на фото. Извлеки все позиции, их стоимость и дату покупки. Каждой позиции присвой одну из категорий: Продукты, Заправка, Аптека, Такси, Животные, Дом, Развлечения, Одежда, Прочее. Верни результат строго в формате JSON: [{"date": "YYYY-MM-DD", "item": "Название", "category": "Категория", "price": 100.50}]"exec (bash/python) допишите эти данные в файл /opt/.openclaw/.openclaw/workspace/memory/expenses.csv.Date,Item,Category,Price
Date,Item,Category,PriceКогда пользователь просит "Отчет за месяц" или "Сколько я потратил":
expenses.csv (например, через exec(cat expenses.csv) или read).Вы можете использовать Python для добавления строк:
import csv
import os
file_path = '/opt/.openclaw/.openclaw/workspace/memory/expenses.csv'
file_exists = os.path.isfile(file_path)
data = [
{"date": "2026-03-10", "item": "Молоко", "category": "Продукты", "price": 89.90},
{"date": "2026-03-10", "item": "Корм для кота", "category": "Животные", "price": 450.00}
]
with open(file_path, 'a', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
if not file_exists:
writer.writerow(['Date', 'Item', 'Category', 'Price'])
for row in data:
writer.writerow([row['date'], row['item'], row['category'], row['price']])
gemini-2.5-flash для чтения чеков (это экономит ресурсы и деньги).