Track existing source/ research clippings
Pre-migration commit so the next 'git mv' to .wiki/raw/research/ shows as a rename, not delete+add. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
186
source/2026-05-03-code-review.md
Normal file
186
source/2026-05-03-code-review.md
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
---
|
||||||
|
title: "Хочу обсудить, как подключить другую LLM к ревью кода, написанного КЛодом. Как это организовать? Наверняка ты знаешь, как другие это делают?"
|
||||||
|
source: "https://www.google.com/search?sourceid=chrome&aep=42&source=chrome.crn.rb&q=%D0%A5%D0%BE%D1%87%D1%83+%D0%BE%D0%B1%D1%81%D1%83%D0%B4%D0%B8%D1%82%D1%8C%2C+%D0%BA%D0%B0%D0%BA+%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C+%D0%B4%D1%80%D1%83%D0%B3%D1%83%D1%8E++LLM++%D0%BA+%D1%80%D0%B5%D0%B2%D1%8C%D1%8E+%D0%BA%D0%BE%D0%B4%D0%B0%2C+%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE+%D0%9A%D0%9B%D0%BE%D0%B4%D0%BE%D0%BC.+%D0%9A%D0%B0%D0%BA+%D1%8D%D1%82%D0%BE+%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%3F+%D0%9D%D0%B0%D0%B2%D0%B5%D1%80%D0%BD%D1%8F%D0%BA%D0%B0+%D1%82%D1%8B+%D0%B7%D0%BD%D0%B0%D0%B5%D1%88%D1%8C%2C+%D0%BA%D0%B0%D0%BA+%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%B5+%D1%8D%D1%82%D0%BE+%D0%B4%D0%B5%D0%BB%D0%B0%D1%8E%D1%82%3F&mstk=AUtExfD5EFxgCPzN9i00Xb6Sng7oox3R0MLA9REWp9DPMJQl5bRyt_-vjx-aF_OLAdQQteu-vj8I7bVGjoD-a114g5-BOzZtyq0bSXcimbBbeakgHNjFiWOnFqNZ3MfdmwJwTKjGzkXXMCEsfvlWcg2J_AmBHzsuH60i3HjfHo2qSI148skiOz50PggUYfyARIMggD2xAPIent3dfljllT5pubb9vjJJXyKarGgn_uz-iiExDVpuL0wstNe7d1uUxyRS3-af17X_So2j8KnM83XZJxHLZcwUqz_l-pk&csuir=1&mtid=aof3aaPIFv_97_UPusiA6Qo&udm=50"
|
||||||
|
fetched: "2026-05-03"
|
||||||
|
published:
|
||||||
|
fetched_via: "obsidian-web-clipper"
|
||||||
|
tags:
|
||||||
|
- "wiki-raw"
|
||||||
|
- "clipping"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Результаты поиска
|
||||||
|
|
||||||
|
Здравствуйте, Victor! Что вас интересует?
|
||||||
|
|
||||||
|
Хочу обсудить, как подключить другую LLM к ревью кода, написанного КЛодом. Как это организовать? Наверняка ты знаешь, как другие это делают?
|
||||||
|
|
||||||
|
Подключение сторонней LLM для ревью кода, написанного Claude (или любой другой моделью), — это отличная практика «перекрестной проверки» (cross-review), которая помогает отловить галлюцинации и специфические баги.
|
||||||
|
|
||||||
|
Вот как это обычно организуют на практике:
|
||||||
|
|
||||||
|
1\. Автоматизация через CI/CD (Самый популярный путь)
|
||||||
|
|
||||||
|
Большинство команд не копипастят код вручную, а встраивают проверку прямо в GitHub/GitLab.
|
||||||
|
|
||||||
|
- **Инструменты:** Используются готовые экшены или скрипты (например, `coderabbit.ai`, `pr-agent` от Codium или опенсорсные аналоги).
|
||||||
|
- **Процесс:** Claude пишет код и создает Pull Request. Скрипт в CI ловит это событие, отправляет диф (diff) в API другой модели (например, **GPT-4o** или **Llama 3**) с системным промптом: «Ты — эксперт по безопасности, проверь этот код на уязвимости».
|
||||||
|
- **Результат:** Вторая LLM оставляет комментарии прямо в PR.
|
||||||
|
|
||||||
|
2\. Подход «Разделение ролей»
|
||||||
|
|
||||||
|
Чтобы проверка была качественной, другой модели дают узкую специализацию. Не просите её просто «проверить». Дайте конкретный фокус:
|
||||||
|
|
||||||
|
- **Модель A (Claude):** Пишет функционал и логику.
|
||||||
|
- **Модель B (например, GPT-4o):** Ищет только ошибки в типах, потенциальные утечки памяти или несоответствие стилю (Style Guide).
|
||||||
|
- **Модель C (например, DeepSeek Coder):** Пишет модульные тесты на этот код. Если тесты не проходят — значит, в коде Claude была ошибка.
|
||||||
|
|
||||||
|
3\. Использование локальных моделей (для приватности)
|
||||||
|
|
||||||
|
Если код чувствительный, многие разворачивают локальную LLM через **Ollama** или **vLLM**.
|
||||||
|
|
||||||
|
- Вы можете настроить локальную **Llama 3 (70B)** или **Phind-CodeLlama**, которая будет «подглядывать» за тем, что генерирует Claude, и сигнализировать, если код выглядит подозрительно.
|
||||||
|
|
||||||
|
4\. Промпт-инжиниринг для ревьюера
|
||||||
|
|
||||||
|
Важно, чтобы «ревьюер» не знал, что код написала другая нейронка (это убирает предвзятость). Типовой промпт для второй модели:
|
||||||
|
|
||||||
|
> "Перед тобой PR от разработчика. Проанализируй изменения. Найди логические ошибки, проблемы с производительностью и предложи 3 улучшения. Будь строг, но конструктивен."
|
||||||
|
|
||||||
|
С какими моделями лучше «спаривать» Claude?
|
||||||
|
|
||||||
|
- **Claude + GPT-4o:** Классика. У них разный «стиль мышления», и они часто находят ошибки друг за другом.
|
||||||
|
- **Claude + DeepSeek V3:** Отличное сочетание для Python/C++, так как DeepSeek очень силен именно в кодинге и часто дешевле.
|
||||||
|
- **Claude + Sonar (Perplexity):** Если код завязан на свежих библиотеках, которые вышли месяц назад (Sonar умеет ходить в интернет и проверять актуальность API).
|
||||||
|
|
||||||
|
**С какого стека технологий (язык программирования, гит-хостинг) ты хочешь начать настройку такой связки?**
|
||||||
|
|
||||||
|
В ответах искусственного интеллекта могут быть ошибки. [Learn more](https://support.google.com/websearch?p=aimode)
|
||||||
|
|
||||||
|
Создание общедоступной ссылки…
|
||||||
|
|
||||||
|
Показать все
|
||||||
|
|
||||||
|
Автоматизация через CI/CD (Самый популярный путь) - а еще пути есть? ЧТобы без пулл-реквестов?
|
||||||
|
|
||||||
|
Если мы убираем этап Pull Request и CI/CD, значит, мы переносим взаимодействие на уровень **IDE** (среды разработки) или **локальных скриптов**. Это делает цикл обратной связи мгновенным: вы еще не отправили код в репозиторий, а «второе мнение» уже получено.
|
||||||
|
|
||||||
|
Вот основные способы организовать это «на лету»:
|
||||||
|
|
||||||
|
1\. Расширения для IDE с поддержкой разных моделей (Continue.dev / Void)
|
||||||
|
|
||||||
|
Это самый удобный «ручной» способ.
|
||||||
|
|
||||||
|
- **Как это работает:** Вы устанавливаете плагин (например, **Continue** для VS Code или JetBrains). В нем можно настроить сразу несколько API-ключей.
|
||||||
|
- **Процесс:** Вы просите Claude (через встроенный чат или автодополнение) написать функцию. Затем выделяете этот код, нажимаете горячую клавишу, переключаете модель на **GPT-4o** или **DeepSeek** прямо в выпадающем списке и выбираете команду `/verify` или `/review`.
|
||||||
|
- **Плюс:** Не нужно переключаться между вкладками браузера, код проверяется мгновенно.
|
||||||
|
|
||||||
|
2\. Локальные CLI-утилиты (скрипты «надсмотрщики»)
|
||||||
|
|
||||||
|
Вы можете написать простой Python-скрипт или использовать готовые CLI-инструменты (например, **Aider**), которые работают в терминале.
|
||||||
|
|
||||||
|
- **Процесс:** Вы сохраняете код, написанный Клодом, в файл. В терминале запускаете команду: `check-code --file logic.py --model gpt4`.
|
||||||
|
- **Автоматизация:** Можно настроить **Git Hooks** (pre-commit hook). Когда вы пытаетесь сделать `git commit`, скрипт автоматически отправляет изменения во вторую LLM. Если она находит критические баги, коммит блокируется до тех пор, пока вы не подтвердите, что всё ок.
|
||||||
|
|
||||||
|
3\. "Multi-Agent" системы (CrewAI / AutoGen)
|
||||||
|
|
||||||
|
Это более продвинутый уровень, где вы создаете «чат» между двумя нейронками прямо у себя на компьютере.
|
||||||
|
|
||||||
|
- **Организация:** Вы запускаете локальный оркестратор.
|
||||||
|
- **Роли:** Одной модели (Claude) дается задача «Напиши код», а второй (например, Llama 3 локально) — задача «Ты суровый техлид, критикуй каждый символ».
|
||||||
|
- **Результат:** В консоли вы видите диалог двух моделей. Они спорят, пока код не станет идеальным, и только финальный вариант сохраняется в файл.
|
||||||
|
|
||||||
|
4\. Использование платформ-агрегаторов (Poe / TypingMind)
|
||||||
|
|
||||||
|
Если не хочется возиться с плагинами, используются веб-интерфейсы, где несколько моделей доступны в одном окне.
|
||||||
|
|
||||||
|
- **Процесс:** В **TypingMind** можно создать чат, где подключены обе модели. Вы отправляете промпт, Claude генерирует ответ, а вы одной кнопкой пересылаете этот ответ в соседнюю ветку чата для GPT-4 с просьбой провести аудит.
|
||||||
|
|
||||||
|
Резюме по инструментам:
|
||||||
|
|
||||||
|
- **Continue.dev** — если хотите проверять код прямо в процессе написания в VS Code.
|
||||||
|
- **Aider** — если любите работать через терминал и хотите, чтобы LLM сама правила файлы.
|
||||||
|
- **Git Hooks** — если хотите «мини-CI» прямо на своей машине, чтобы не пропускать плохой код в историю правок.
|
||||||
|
|
||||||
|
Какой из этих вариантов ближе к твоему привычному рабочему процессу — **редактор кода** или **терминал**?
|
||||||
|
|
||||||
|
В ответах искусственного интеллекта могут быть ошибки. [Learn more](https://support.google.com/websearch?p=aimode)
|
||||||
|
|
||||||
|
Создание общедоступной ссылки…
|
||||||
|
|
||||||
|
Показать все
|
||||||
|
|
||||||
|
Git Hooks интересно
|
||||||
|
|
||||||
|
Git Hooks — это скрипты, которые Git запускает автоматически при определенных действиях (например, перед каждым коммитом). Это идеальная «точка контроля», чтобы плохой код даже не попадал в вашу локальную историю.
|
||||||
|
|
||||||
|
Для ревью кода лучше всего подходит хук **`pre-commit`**. Вот как это организовать по шагам:
|
||||||
|
|
||||||
|
1\. Как это работает технически
|
||||||
|
|
||||||
|
Когда вы пишете `git commit -m "feat: add logic"`, Git запускает скрипт. Скрипт берет ваш измененный код, отправляет его по API во вторую LLM (например, GPT-4o или DeepSeek) и ждет ответа. Если LLM находит ошибки — коммит прерывается.
|
||||||
|
|
||||||
|
2\. Реализация (простой пример на Python)
|
||||||
|
|
||||||
|
Вам понадобится скрипт-прослойка. Можно использовать библиотеку `pre-commit` (наиболее стандартный путь в индустрии).
|
||||||
|
|
||||||
|
**Файл `.pre-commit-config.yaml` в корне проекта:**
|
||||||
|
|
||||||
|
```
|
||||||
|
repos:
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: llm-code-review
|
||||||
|
name: LLM Code Review
|
||||||
|
entry: python scripts/llm_check.py
|
||||||
|
language: python
|
||||||
|
stages: [commit]
|
||||||
|
types: [python] # или другие языки
|
||||||
|
```
|
||||||
|
|
||||||
|
**Скрипт `scripts/llm_check.py` (логика):**
|
||||||
|
Скрипт должен:
|
||||||
|
|
||||||
|
1. Получить список измененных строк (`git diff --cached`).
|
||||||
|
2. Отправить их в API (через `openai` или `anthropic` SDK).
|
||||||
|
3. Если в ответе от LLM есть ключевое слово (например, "FAIL" или "CRITICAL"), скрипт делает `sys.exit(1)`, и коммит не проходит.
|
||||||
|
|
||||||
|
3\. Готовые инструменты
|
||||||
|
|
||||||
|
Чтобы не писать всё с нуля, можно использовать существующие обертки:
|
||||||
|
|
||||||
|
- **Llint:** Специальная утилита, которая работает как линтер, но на базе LLM. Её легко добавить в хуки.
|
||||||
|
- **[Aider](https://aider.chat/):** Хотя это полноценный AI-программист, его можно вызвать из скрипта для проверки текущих изменений перед фиксацией.
|
||||||
|
|
||||||
|
4\. Плюсы и минусы такого подхода
|
||||||
|
|
||||||
|
**Плюсы:**
|
||||||
|
|
||||||
|
- **Гарантия чистоты:** В репозиторий не попадет код, который не прошел «вторую пару глаз».
|
||||||
|
- **Локальность:** Вы узнаете об ошибке через 5 секунд, а не через 5 минут после прогона CI на сервере.
|
||||||
|
|
||||||
|
**Нюансы:**
|
||||||
|
|
||||||
|
- **Задержка:** Коммит будет занимать чуть больше времени (пока ждем ответ от API).
|
||||||
|
- **Стоимость:** Каждый `git commit` будет тратить несколько центов (токенов).
|
||||||
|
- **Ложные срабатывания:** Если LLM ошиблась и заблокировала коммит, вам придется использовать флаг `git commit --no-verify`, чтобы обойти проверку.
|
||||||
|
|
||||||
|
С чего лучше начать?
|
||||||
|
|
||||||
|
Если хочешь попробовать «на коленке», я могу набросать **готовый Python-скрипт**, который будет брать твои изменения и отправлять их на проверку в OpenAI или любую другую модель через LiteLLM.
|
||||||
|
|
||||||
|
**Нужен пример такого скрипта или помочь настроить сам механизм Git Hooks?**
|
||||||
|
|
||||||
|
В ответах искусственного интеллекта могут быть ошибки. [Learn more](https://support.google.com/websearch?p=aimode)
|
||||||
|
|
||||||
|
Создание общедоступной ссылки…
|
||||||
|
|
||||||
|
Показать все
|
||||||
|
|
||||||
|
Приложения Google
|
||||||
|
|
||||||
|
Аккаунт Google
|
||||||
|
|
||||||
|
Victor Kuznetsov
|
||||||
|
|
||||||
|
vitya.kuznetsov@gmail.com
|
||||||
1577
source/2026-05-03-modulair.md
Normal file
1577
source/2026-05-03-modulair.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user