Кодовый ассистент на базе AI — это инструмент, который помогает разработчикам писать код быстрее: автодополнение, ревью pull request-ов, рефакторинг и объяснение сложных участков. Через ModelSwitch API можно создать собственного ассистента, используя лучшие модели для каждой задачи.
Архитектура кодового ассистента
Эффективный кодовый ассистент использует разные модели для разных задач:
- Claude 3.5 Sonnet — для ревью кода и анализа (лидер в бенчмарках по кодингу)
- GPT-4o — для генерации кода и объяснений
- GPT-4o-mini — для быстрого автодополнения (низкая латентность)
Через ModelSwitch все три модели доступны по одному API-ключу, переключение — одна строка.
Автодополнение кода
Реализуем сервис автодополнения, который получает текущий файл и позицию курсора:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.modelswitch.ru/v1",
apiKey: "msk_ваш_ключ",
});
interface CompletionRequest {
fileContent: string;
cursorLine: number;
language: string;
}
async function getCompletion(req: CompletionRequest): Promise<string> {
const lines = req.fileContent.split("
");
const before = lines.slice(0, req.cursorLine).join("
");
const after = lines.slice(req.cursorLine).join("
");
const response = await client.chat.completions.create({
model: "gpt-4o-mini", // Быстрая модель для автодополнения
messages: [
{
role: "system",
content: `Ты — ассистент для автодополнения ${req.language} кода. Допиши код в месте курсора. Верни ТОЛЬКО код для вставки, без пояснений.`,
},
{
role: "user",
content: `Код до курсора:\n\`\`\`\n${before}\n\`\`\`\n\nКод после курсора:\n\`\`\`\n${after}\n\`\`\``,
},
],
temperature: 0.2,
max_tokens: 200,
});
return response.choices[0].message.content ?? "";
}
AI ревью кода
Для ревью кода лучше всего подходит Claude 3.5 Sonnet — модель, показывающая лучшие результаты в задачах анализа и рефакторинга:
def review_code(diff: str, context: str = "") -> str:
response = client.chat.completions.create(
model="claude-3.5-sonnet", # Лучшая модель для code review
messages=[
{"role": "system", "content": """Ты — senior code reviewer. Проанализируй diff и дай ревью.
Формат ответа:
## Критические замечания
- (если есть баги, уязвимости)
## Рекомендации
- (улучшения стиля, производительности, читаемости)
## Положительные моменты
- (что сделано хорошо)"""},
{"role": "user", "content": f"Git diff:\n```\n{diff}\n```\n\nКонтекст проекта: {context}"}
],
temperature=0.3,
max_tokens=1500
)
return response.choices[0].message.content
# Интеграция с GitHub через webhook
# При открытии PR — автоматически запускаем ревью и оставляем комментарий
Автоматический рефакторинг
AI может предлагать рефакторинг с объяснением изменений:
def suggest_refactoring(code: str) -> dict:
response = client.chat.completions.create(
model="claude-3.5-sonnet",
messages=[
{"role": "system", "content": (
"Проанализируй код и предложи рефакторинг. "
"Верни JSON: {"original": "...", "refactored": "...", "
""explanation": "...", "improvements": ["..."]}"
)},
{"role": "user", "content": code}
],
temperature=0.2
)
return json.loads(response.choices[0].message.content)
Стоимость и практические советы
Расчёт стоимости для команды из 10 разработчиков:
| Функция | Модель | Запросов/день | Стоимость/месяц |
|---|---|---|---|
| Автодополнение | gpt-4o-mini | 500 | ~$15 |
| Code review | claude-3.5-sonnet | 20 | ~$10 |
| Рефакторинг | claude-3.5-sonnet | 10 | ~$5 |
Итого: ~$30/месяц на команду — сравните с $19/месяц за одно рабочее место в GitHub Copilot. При этом вы получаете полный контроль над моделями, промптами и данными.
Совет: используйте ModelSwitch аналитику, чтобы отслеживать расход по каждой функции и оптимизировать промпты для снижения количества токенов.