Задача
Разобраться с Qwen Coder, написать что-то простое и полезное на нем.
Ставим Qwen Coder
- Офиц. репа: https://github.com/QwenLM/qwen-code
- Гайд по установке: https://qwencode.xyz/
curl -qL https://www.npmjs.com/install.sh | sh
npm i -g @qwen-code/qwen-code
Донастраиваем:
Добавляем в файл .env
в корне проекта:
# Qwen Code settings
OPENAI_API_KEY="*****"
OPENAI_BASE_URL="https://openrouter.ai/api/v1"
OPENAI_MODEL="qwen/qwen3-coder:free"
Или выполняем команды:
export OPENAI_API_KEY="******"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
export OPENAI_MODEL="qwen/qwen3-coder:free"
Где OPENAI_API_KEY="******"
– ключик который надо купить онлайн.
Проверяем:
# run in console:
qwen
# to exit:
/exit
Заработало!
Пишем промты для Qwen
Важно: отключаем VPN при работе с консолью qwen (с VPN
не работает).
Работает в консольке:
Результат: создан файл hello.php
<?php
echo "Hello, World!";
?>
Доработки также работают:
<?php
echo "Hello, World!" . PHP_EOL;
echo "Current date and time: " . date('Y-m-d H:i:s') . PHP_EOL;
?>
Ставим плагин для IDE PhpStorm : Onuro
Плагин поддерживает множество нейросетей, в т.ч. Qwen
:
Решаем задачу в плагине Onuro
Промт для плагина:
Или то же самое для консоли:
qwen -p "Write script that outputs in console useful data about current project environment (versions of installed php, laravel framework, nginx, etc. - for your choice) using bash. Paste your code with comments in the top of script into file: scripts/linux/server_data.sh"
Решение:
Created 📄
scripts/linux/server_data.sh
that displays comprehensive environment information including:
- System info: OS, architecture, hostname
- PHP: Version, path, extensions count
- Laravel: Framework version, environment, debug mode
- Composer: Version and dependency count
- Node.js: Version, NPM, package count
- Nginx: Version, path, config status
- Docker: Version and running containers
- Database: Connection type, host, database name
- SSL: Certificate directory and expiry date
The script includes error handling and fallbacks for missing tools or files.
#!/bin/bash
# Script to display useful information about current project environment
# Shows versions of installed software and system information
# Usage: bash scripts/linux/server_info.sh
echo "=== PROJECT ENVIRONMENT INFORMATION ==="
echo ""
# System Information
echo "[SYSTEM INFO]"
echo "OS: $(uname -s) $(uname -r)"
echo "Architecture: $(uname -m)"
echo "Hostname: $(hostname)"
echo ""
# PHP Information
echo "[PHP]"
if command -v php &> /dev/null; then
echo "PHP Version: $(php -v | head -n1)"
echo "PHP CLI Path: $(which php)"
echo "PHP Extensions: $(php -m | wc -l) loaded"
else
echo "PHP: Not installed or not in PATH"
fi
echo ""
# Laravel Information
echo "[LARAVEL]"
if [ -f "artisan" ]; then
echo "Laravel Version: $(php artisan --version 2>/dev/null || echo "Unable to detect")"
echo "Environment: $(grep APP_ENV .env 2>/dev/null | cut -d'=' -f2 || echo "Unknown")"
echo "Debug Mode: $(grep APP_DEBUG .env 2>/dev/null | cut -d'=' -f2 || echo "Unknown")"
else
echo "Laravel: artisan file not found"
fi
echo ""
# Composer Information
echo "[COMPOSER]"
if command -v composer &> /dev/null; then
echo "Composer Version: $(composer --version | head -n1)"
if [ -f "composer.lock" ]; then
echo "Dependencies: $(jq -r '.packages | length' composer.lock 2>/dev/null || echo "Unable to count") packages"
fi
else
echo "Composer: Not installed or not in PATH"
fi
echo ""
# Node.js Information
echo "[NODE.JS]"
if command -v node &> /dev/null; then
echo "Node.js Version: $(node --version)"
echo "NPM Version: $(npm --version)"
if [ -f "package.json" ]; then
echo "Dependencies: $(jq -r '.dependencies | length' package.json 2>/dev/null || echo "Unable to count") packages"
fi
else
echo "Node.js: Not installed or not in PATH"
fi
echo ""
# Nginx Information
echo "[NGINX]"
if command -v nginx &> /dev/null; then
echo "Nginx Version: $(nginx -v 2>&1)"
echo "Nginx Path: $(which nginx)"
echo "Config Test: $(nginx -t 2>&1 | tail -n1)"
else
echo "Nginx: Not installed or not in PATH"
fi
echo ""
# Docker Information
echo "[DOCKER]"
if command -v docker &> /dev/null; then
echo "Docker Version: $(docker --version)"
echo "Running Containers: $(docker ps --format "table {{.Names}}\t{{.Status}}" 2>/dev/null || echo "Unable to list")"
else
echo "Docker: Not installed or not in PATH"
fi
echo ""
# Database Information
echo "[DATABASE]"
DB_CONNECTION=$(grep DB_CONNECTION .env 2>/dev/null | cut -d'=' -f2)
if [ ! -z "$DB_CONNECTION" ]; then
echo "Database Type: $DB_CONNECTION"
echo "Database Host: $(grep DB_HOST .env 2>/dev/null | cut -d'=' -f2 || echo "Unknown")"
echo "Database Name: $(grep DB_DATABASE .env 2>/dev/null | cut -d'=' -f2 || echo "Unknown")"
else
echo "Database: Configuration not found in .env"
fi
echo ""
# SSL Certificates
echo "[SSL CERTIFICATES]"
if [ -d "certs" ]; then
echo "Certificates directory: Found"
if [ -f "certs/laravel.crt" ]; then
echo "SSL Certificate: $(openssl x509 -in certs/laravel.crt -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2 || echo "Unable to read expiry")"
else
echo "SSL Certificate: Not found"
fi
else
echo "Certificates directory: Not found"
fi
echo ""
echo "=== END OF ENVIRONMENT INFO ==="
Запускаем скрипт:
./scripts/linux/server_info.sh
=== PROJECT ENVIRONMENT INFORMATION ===
[SYSTEM INFO]
OS: Linux 6.6.87.2-microsoft-standard-WSL2
Architecture: x86_64
Hostname: MACHEMIKE
[PHP]
PHP Version: PHP 8.3.23 (cli) (built: Jul 3 2025 16:10:55) (NTS)
PHP CLI Path: /usr/bin/php
PHP Extensions: 59 loaded
[LARAVEL]
Laravel Version: Laravel Framework 11.20.0
Environment: local
Debug Mode: true
[COMPOSER]
Composer Version: Composer 2.2.6 2022-02-04 17:00:38
Dependencies: 119 packages
(....)
=== END OF ENVIRONMENT INFO ===
Дорешиваем задачу в консоли
Команда/промт:
qwen -p "Доработай файл Makefile в корне проекта: добавь сюда команду 'info': вызывающую скрипт: scripts/linux/server_info.sh. Проверь что команда работает, запусти: wsl make info."
Ответ:
Понял. Давайте сначала найдем и изучим текущий `Makefile` в корне проекта,
чтобы понимать его структуру и правильно добавить новую команду.
Теперь давайте проверим, существует ли скрипт `scripts/linux/server_info.sh` и какой у него формат.
Отлично, скрипт существует. Теперь добавим команду `info` в `Makefile`, которая будет вызывать этот скрипт.
Я добавлю её в секцию "COMMON", рядом с другими похожими командами.
Работает. Но мне в консоли не удобно работать, буду работать в плагине.
ИТОГО
Написали с помощью ИИ Qwen
скрипт для получения данных о сервере (код выше):
make info
Нет Ответов