Главная / ИИ агент для программиста / Нейросеть для Python

Нейросеть для Python

Скинь задачу или кусок кода — агент напишет рабочий Python-скрипт, объяснит логику и исправит ошибки

10 мин типовой Python-скрипт с нуля
pandas / FastAPI / Selenium популярные библиотеки
×3 быстрее ручного написания

Знакомо?

🔍
Stack Overflow — не всегда помогает
Нашёл похожий вопрос, скопировал код — не работает. Версия библиотеки другая, контекст другой. Переделывать под свою задачу — ещё пара часов.
📊
pandas — магия и непредсказуемость
DataFrame готов, но groupby возвращает что-то не то. merge добавил NaN. apply работает на 1000 строк, зависает на 100 000. Документация огромная.
🌐
API и парсинг — отдельный квест
Rate limit, авторизация, пагинация, ротация прокси, CAPTCHA — за каждой задачей парсинга стоят часы отладки.
Медленный код не оптимизировать
Скрипт работает, но 10 000 записей обрабатывает 40 минут. Как ускорить? vectorize, multiprocessing, asyncio — что использовать и когда?

Реальные кейсы: Python с агентом

1
Анализ продаж с pandas — обработка CSV
Аналитик Дима получил CSV с 50 000 строк продаж за год. Нужно найти топ-продукты, сезонность и аномалии. Обычно — полдня, с агентом — 30 минут.
Настройка
👤
Пользователь
Есть CSV: date, product_id, product_name, category, quantity, price, region. 50 000 строк, данные за 2024. Нужно: топ-20 продуктов по выручке, помесячная динамика, и найти аномалии (дни когда продажи > 3σ от среднего).
🤖
Агент
🐍 Скрипт анализа продаж:

import pandas as pd
import numpy as np

df = pd.read_csv('sales.csv', parse_dates=['date'])
df['revenue'] = df['quantity'] * df['price']

# Топ-20 по выручке
top20 = (df.groupby(['product_id', 'product_name'])['revenue']
.sum().reset_index()
.sort_values('revenue', ascending=False)
.head(20))

# Помесячная динамика
monthly = (df.groupby(df['date'].dt.to_period('M'))['revenue']
.sum().reset_index())

# Аномалии: дни > mean + 3*std
daily = df.groupby('date')['revenue'].sum().reset_index()
mean, std = daily['revenue'].mean(), daily['revenue'].std()
anomalies = daily[daily['revenue'] > mean + 3 * std]

print(f"Топ-20:\n{top20.to_string()}")
print(f"\nАномальные дни ({len(anomalies)}):\n{anomalies}")


Добавить экспорт в Excel с несколькими листами?
Ежедневное использование
👤
Пользователь
Да, экспортируй в Excel: лист 1 — топ-20, лист 2 — помесячная, лист 3 — аномалии. И добавь хитмап выручки по регионам и месяцам.
🤖
Агент
📊 Обновлённый скрипт с Excel и хитмапом:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# ... (загрузка и расчёты как выше)

# Хитмап: регионы × месяцы
pivot = df.pivot_table(
values='revenue', index='region',
columns=df['date'].dt.month, aggfunc='sum'
)
pivot.columns = ['Янв','Фев','Мар','Апр','Май','Июн',
'Июл','Авг','Сен','Окт','Ноя','Дек']

plt.figure(figsize=(14, 8))
sns.heatmap(pivot / 1e6, annot=True, fmt='.1f',
cmap='YlOrRd', linewidths=0.5)
plt.title('Выручка по регионам и месяцам, млн ₽')
plt.savefig('heatmap.png', dpi=150, bbox_inches='tight')

# Excel с 3 листами
with pd.ExcelWriter('analysis.xlsx', engine='openpyxl') as w:
top20.to_excel(w, sheet_name='Топ-20', index=False)
monthly.to_excel(w, sheet_name='По месяцам', index=False)
anomalies.to_excel(w, sheet_name='Аномалии', index=False)


Запускай, файлы analysis.xlsx и heatmap.png появятся в текущей папке.
2
FastAPI REST API с авторизацией по JWT
Бэкенд-разработчик Саша строил API для мобильного приложения. Нужен endpoint регистрации, логина и защищённый роут. С агентом — за 20 минут вместо 2 часов.
Настройка
👤
Пользователь
Строю API на FastAPI. Нужно: регистрация (email + password), логин (возвращает JWT), защищённый endpoint /me. Хранить пользователей в PostgreSQL через SQLAlchemy.
🤖
Агент
⚡ FastAPI + JWT + PostgreSQL:

from fastapi import FastAPI, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
from sqlalchemy.orm import Session
from jose import JWTError, jwt
from passlib.context import CryptContext
from datetime import datetime, timedelta

SECRET_KEY = "your-secret" # из env в проде
ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES = 30

pwd_context = CryptContext(schemes=["bcrypt"])
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/login")
app = FastAPI()

def create_access_token(data: dict):
expire = datetime.utcnow() + timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
return jwt.encode({**data, "exp": expire}, SECRET_KEY, ALGORITHM)

@app.post("/auth/register")
def register(email: str, password: str, db: Session = Depends(get_db)):
if db.query(User).filter(User.email == email).first():
raise HTTPException(400, "Email already registered")
user = User(email=email, hashed_password=pwd_context.hash(password))
db.add(user); db.commit()
return {"message": "Registered"}

@app.post("/auth/login")
def login(form: OAuth2PasswordRequestForm = Depends(), db=Depends(get_db)):
user = db.query(User).filter(User.email == form.username).first()
if not user or not pwd_context.verify(form.password, user.hashed_password):
raise HTTPException(401, "Invalid credentials")
token = create_access_token({"sub": str(user.id)})
return {"access_token": token, "token_type": "bearer"}

@app.get("/me")
def get_me(token: str = Depends(oauth2_scheme), db=Depends(get_db)):
try:
payload = jwt.decode(token, SECRET_KEY, [ALGORITHM])
user = db.get(User, int(payload["sub"]))
except JWTError:
raise HTTPException(401, "Invalid token")
return {"id": user.id, "email": user.email}


Нужна SQLAlchemy-модель User и настройка БД?
Ежедневное использование
👤
Пользователь
Да, дай модель User и подключение к Postgres. И добавь refresh token.
🤖
Агент
🗄️ SQLAlchemy модель + Postgres:

from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

DATABASE_URL = "postgresql://user:pass@localhost/dbname"
engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(bind=engine)
Base = declarative_base()

class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
email = Column(String, unique=True, nullable=False)
hashed_password = Column(String, nullable=False)
refresh_token = Column(String, nullable=True)
created_at = Column(DateTime, default=datetime.utcnow)

Base.metadata.create_all(engine)

def get_db():
db = SessionLocal()
try: yield db
finally: db.close()


🔄 Refresh token эндпоинт:
@app.post("/auth/refresh")
def refresh(refresh_token: str, db=Depends(get_db)):
user = db.query(User).filter(User.refresh_token == refresh_token).first()
if not user:
raise HTTPException(401, "Invalid refresh token")
new_access = create_access_token({"sub": str(user.id)})
return {"access_token": new_access}
3
Selenium-скрипт для автоматизации парсинга
Маркетолог Оля каждую неделю вручную собирала цены конкурентов с сайта. 2 часа в неделю. Агент написал скрипт — теперь запускает раз в неделю по cron.
Настройка
👤
Пользователь
Нужен скрипт на Selenium: заходить на сайт конкурента market-example.ru, находить товары в категории /catalog/phones, собирать название и цену, сохранять в CSV. Около 200 товаров, пагинация.
🤖
Агент
🤖 Selenium-скрипт с пагинацией:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd, time

options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("--no-sandbox")
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 10)

results = []
page = 1

while True:
url = f"https://market-example.ru/catalog/phones?page={page}"
driver.get(url)
time.sleep(1.5) # вежливая пауза

items = driver.find_elements(By.CSS_SELECTOR, ".product-card")
if not items:
break

for item in items:
try:
name = item.find_element(By.CSS_SELECTOR, ".product-title").text
price = item.find_element(By.CSS_SELECTOR, ".product-price").text
results.append({"name": name, "price": price, "page": page})
except Exception:
continue

# Проверка следующей страницы
try:
next_btn = driver.find_element(By.CSS_SELECTOR, ".pagination-next")
if "disabled" in next_btn.get_attribute("class"):
break
page += 1
except Exception:
break

driver.quit()
df = pd.DataFrame(results)
df.to_csv(f"prices_{pd.Timestamp.now().date()}.csv", index=False)
print(f"Собрано {len(df)} товаров")


CSS-селекторы нужно уточнить под реальную структуру страницы. Как скопировать селектор в DevTools — объяснить?
Ежедневное использование
👤
Пользователь
Да, объясни. И добавь: если сайт показывает CAPTCHA — пропустить страницу и логировать.
🤖
Агент
🔧 Как найти CSS-селектор:
1. F12 → Elements
2. Ctrl+Shift+C → клик по элементу
3. Правая кнопка на элементе → Copy → Copy selector
4. Подставить вместо .product-card

🛡️ Обработка CAPTCHA:
import logging
logging.basicConfig(filename='parser.log', level=logging.WARNING)

# Внутри цикла, перед парсингом элементов:
page_source = driver.page_source
captcha_signals = ["captcha", "robot", "verify you are human", "cloudflare"]
if any(s in page_source.lower() for s in captcha_signals):
logging.warning(f"CAPTCHA на странице {page}, пропускаю")
page += 1
time.sleep(10) # подождать дольше
continue


Лог будет в parser.log — там все пропущенные страницы.

Вопросы про Python с ИИ

Агент пишет рабочий код или только объясняет?
Пишет рабочий код. Скажите задачу — получите готовый скрипт с комментариями. Код можно сразу запускать (с учётом ваших реальных данных и окружения).
Какие библиотеки знает?
Все популярные: pandas, numpy, matplotlib, seaborn, FastAPI, Flask, Django, SQLAlchemy, Selenium, BeautifulSoup, requests, asyncio, pydantic, scikit-learn, PyTorch и другие.
Помогает с ошибками в коде?
Да. Скиньте traceback и код — агент найдёт причину и исправит. Работает с SyntaxError, TypeError, KeyError, проблемами с окружением и зависимостями.
Объясняет чужой код?
Да. Скиньте любой Python-код — агент объяснит что делает каждая часть, почему так написано и как можно улучшить.
Подходит для начинающих?
Да. Агент объясняет концепции простым языком, пишет код с подробными комментариями и отвечает на базовые вопросы «почему это работает именно так».

Попробуй ИИ агента за 490 ₽

7 дней без ограничений. Настройка за 3 минуты — бот уже ждёт в Telegram.

Попробовать за 490 ₽ — 7 дней ← ИИ агент для программиста