Скорее всего, причина в размере модели и способе интеграции. Qwen Coder 7B на RTX 3060 12 ГБ пригодна для автодополнения и небольших задач, но часто ошибается в большом PHP-проекте: теряет контекст, путает версии библиотек и придумывает API. Веб-версия может использовать более крупную модель и лучше собирать контекст.
Что попробовать
1. Использовать более новую модель
Для Ollama проверьте доступные варианты:
ollama list
Попробуйте:
ollama run qwen2.5-coder:14b
или, если доступна:
ollama run qwen3-coder:30b
Но 30B на RTX 3060 полностью в видеопамять не поместится — будет работать медленно, частично через оперативную память.
Для вашей видеокарты оптимальный компромисс:
qwen2.5-coder:7b — быстро, но слабее;
qwen2.5-coder:14b — лучше качество, медленнее;
qwen3-coder:30b — качественнее, но медленно и требовательно.
2. Указать модель как PHP-разработчика
В системном промпте задайте ограничения:
Ты опытный PHP-разработчик.
Всегда пиши код только на PHP 8.2.
Используй Laravel 11 и MySQL, если не указано иное.
Не придумывай функции, классы и методы.
Если не знаешь API, прямо скажи об этом.
Перед ответом проверь синтаксис и типы.
Отвечай готовым кодом и кратким объяснением.
Если проект не на Laravel, замените это на фактический стек: Symfony, Bitrix, WordPress и т. д.
3. Формулировать запрос с контекстом
Плохо:
Сделай авторизацию
Лучше:
Проект: PHP 8.2, Symfony 7, Doctrine ORM, PostgreSQL.
Нужно добавить авторизацию через JWT.
Вот существующий контроллер:
```php
// код
Вот сущность User:
// код
Измени только эти файлы. Не используй классы и методы, которых нет в приведённом коде или стандартной документации Symfony 7.
Сначала перечисли изменения, затем покажи код.
Модель не знает структуру вашего проекта, пока вы её не передали. Особенно важны:
- `composer.json`;
- версии PHP и фреймворка;
- сигнатуры классов;
- связанные интерфейсы;
- сообщения об ошибках;
- пример существующего кода.
#### 4. Настроить PhpStorm правильно
Если используете AI-плагин или Continue, проверьте:
- выбран именно `qwen2.5-coder`, а не обычный Qwen;
- включена передача открытого файла и связанных файлов;
- отключено слишком маленькое ограничение контекста;
- проект индексирован;
- в запросах явно указано: **«код только на PHP»**.
Для локальных моделей удобно использовать **Continue** или **Aider**. Они лучше подходят для работы с несколькими файлами, чем простой чат с моделью.
#### 5. Увеличить контекст Ollama
Создайте файл `Modelfile`:
```text
FROM qwen2.5-coder:7b
PARAMETER num_ctx 16384
PARAMETER temperature 0.1
SYSTEM Ты опытный PHP-разработчик. Пиши только PHP-код. Не выдумывай API и методы. Если информации недостаточно, укажи это явно.
Создайте модель:
ollama create php-coder -f Modelfile
ollama run php-coder
temperature 0.1 уменьшит фантазирование. Большой num_ctx требует больше оперативной памяти, но помогает учитывать больше кода.
Практический вывод
В вашем случае:
- Для начала попробуйте
qwen2.5-coder:14b.
- Используйте системный промпт с указанием PHP-версии и фреймворка.
- Передавайте
composer.json, текущий код и ошибку.
- Для PhpStorm используйте Continue с включённым контекстом проекта.
- Проверяйте результат через:
php -l файл.php
composer analyse
composer test
Главная проблема обычно не только в вопросах: 7B действительно мала для полноценной работы с PHP-проектом, а веб-версия, вероятно, использует более мощную модель и автоматически передаёт ей больше контекста.
Ответить на вопрос