Развертывание Qwen3-Coder на VPS: Пошаговое руководство по созданию собственного AI-ассистента для программирования
Развертывание Qwen3-Coder на VPS: Пошаговое руководство по созданию собственного AI-ассистента для программирования
Это руководство покажет, как развернуть открытую модель Qwen3-Coder от Alibaba на LightNode VPS, предоставив её как API-сервис с опциональным веб-интерфейсом. Идеально для создания собственного AI-ассистента для программирования или монетизации через API.
Обзор
- Приобретение VPS (LightNode)
- Установка базового окружения (Python + Git)
- Загрузка и запуск модели Qwen3-Coder
- Создание API с помощью FastAPI
- (Опционально) Добавление фронтенда (Gradio)
- Тестирование внешнего доступа и настройка безопасности
1. Приобретение VPS (например, LightNode)
- Регистрация: www.lightnode.com
- Рекомендуемые локации: Япония, Гонконг, Сингапур
- ОС: Ubuntu 20.04 LTS
- Характеристики: 2 vCPU, 4GB RAM (GPU не требуется для CPU-режима)
- После настройки сохраните публичный IP и пароль root
2. Установка необходимых зависимостей
Подключитесь к VPS через SSH:
ssh root@your_vps_ip
Обновите системные пакеты:
apt update && apt upgrade -y
Установите Python и Git:
apt install python3-pip git -y
pip3 install --upgrade pip
3. Загрузка и запуск Qwen3-Coder (CPU-версия)
Установите HuggingFace Transformers:
pip install transformers accelerate torch
Создайте файл qwen_server.py:
from transformers import AutoModelForCausalLM, AutoTokenizer
from fastapi import FastAPI, Request
import uvicorn
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-0.5B-Chat", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-0.5B-Chat", trust_remote_code=True).eval()
app = FastAPI()
@app.post("/codegen")
async def codegen(request: Request):
data = await request.json()
prompt = data.get("prompt")
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
outputs = model.generate(input_ids, max_new_tokens=256)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"result": response}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=7860)
Запустите сервис:
python3 qwen_server.py
Пример вызова API:
POST http://your_ip:7860/codegen
BODY: { "prompt": "Write a Python web scraper" }
4. Опционально: Добавление фронтенда (Gradio)
Установите Gradio:
Создайте новый файл qwen_gradio.py:
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-0.5B-Chat", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-0.5B-Chat", trust_remote_code=True).eval()
def generate_code(prompt):
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
gr.Interface(
fn=generate_code,
inputs="text",
outputs="text",
title="Qwen3-Coder API Demo"
).launch(server_name="0.0.0.0", server_port=7860)
Запустите его:
python3 qwen_gradio.py
Откройте в браузере: http://your_ip:7860
5. Рекомендации по безопасности
Включите брандмауэр UFW:
apt install ufw
ufw allow OpenSSH
ufw allow 7860
ufw enable
Для продакшн-использования рассмотрите Nginx + Let’s Encrypt для HTTPS и поддержки домена.
Рекомендуемая структура проекта
qwen-server/
├── qwen_server.py # FastAPI backend API
├── qwen_gradio.py # Gradio web UI
├── requirements.txt # (Optional) dependency list
└── README.md # Project description
Идеи монетизации и варианты использования
SaaS-ассистент для программирования: Создайте собственный инструмент "GPT для кодинга"
Публичный API-сервис: Взимайте плату за вызов или подписку
Платформа для обучения с AI: Используйте модель для автоматической генерации кода и учебных материалов
Кастомные сервисы автоматизации: Генерация скриптов, конвертация кода, документация
Итог
Компонент | Инструмент | Назначение |
---|---|---|
Модель | Qwen3-Coder | Открытая модель генерации кода |
Хостинг | LightNode VPS | Недорогая глобальная облачная платформа |
API | FastAPI | Легковесный фреймворк для API на Python |
Фронтенд | Gradio | Быстрый конструктор демо-интерфейсов |