Ваши менеджеры тратят часы на анализ типовых договоров? Или вы пишете код для лендинга вручную, потому что нанять программиста дорого? Модели Qwen от Alibaba решают эти задачи за копейки - до $3.75 за миллион токенов (это примерно 750 тысяч слов). При этом качество не уступает GPT-4o, а кое-где и превосходит. В этой статье разберём, как подключить Qwen через DashScope или OpenRouter за час и настроить агента для работы с документами. Без программиста и технического бэкграунда.
Разберём на примере стройфирмы: у вас есть типовой договор подряда и прайс на работы. Вы хотите, чтобы AI отвечал клиентам в Telegram, проверял договоры на ошибки и помогал сметчикам. Всё это - без найма программиста.
Какие модели Qwen есть и что они дают бизнесу
Alibaba выпускает несколько моделей Qwen. Для бизнеса важны три:
- Qwen3.7-Max - флагман. Думает перед ответом (режим thinking), анализирует код, договоры, данные. Цена: $1.25 за миллион входящих токенов (ваш запрос), $3.75 за миллион исходящих (ответ модели). Контекст - 1 миллион токенов, то есть может «прочитать» весь ваш прайс и договор сразу.
- Qwen3.7-Plus - то же самое, но ещё и видит картинки. Можно загрузить скриншот сметы или фото объекта. Цена та же.
- Qwen3-Coder-32B - специалист по коду. Если нужно сгенерировать форму заявки на сайт или парсер данных - он справится дешевле Mistral Codestral.
Практическое правило: для задач, где ошибка дорого стоит (агенты, анализ договоров, код), берите Qwen3.7-Max. Для простых задач вроде тегирования заявок - более старые версии Qwen3.5-Plus за $0.30/$0.90.
Как подключить Qwen: два способа за час
Способ 1: DashScope - родной API Alibaba Cloud
DashScope - официальный сервис Alibaba. Регистрация за 5 минут:
- Зайдите на dashscope.aliyuncs.com.
- Создайте аккаунт Alibaba Cloud (email + телефон).
- В консоли найдите DashScope -> API Keys -> Create.
- Бесплатный уровень: 1 млн токенов Qwen-Long и 500 тыс. токенов Qwen-Max на первый месяц.
После подключения вы можете отправлять запросы через любой инструмент, который умеет работать с OpenAI API. Вот пример промпта, который менеджер может скопировать в скрипт (попросите фрилансера настроить разово):
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
response = client.chat.completions.create(
model="qwen3.7-max",
messages=[
{"role": "system", "content": "Ты помощник стройфирмы. Отвечай на русском, кратко и по делу."},
{"role": "user", "content": "Клиент спрашивает: сколько стоит укладка плитки 50 кв.м в Москве? У нас в прайсе: укладка плитки - 1500 руб/кв.м, подготовка основания - 800 руб/кв.м. Посчитай итоговую стоимость."}
],
max_tokens=1000
)
print(response.choices[0].message.content)
Этот код можно вставить в Telegram-бота или просто запускать в консоли. Ваш менеджер вбивает вопрос - получает ответ.
Способ 2: OpenRouter - единый API для всех моделей
Если не хотите регистрироваться в Alibaba Cloud, используйте OpenRouter. Он даёт доступ к Qwen через один API-ключ, плюс автоматически переключается на другую модель, если эта недоступна. Цена чуть выше (наценка 5-10%), но удобство того стоит.
Слаги для OpenRouter:
qwen/qwen3.7-max- флагманqwen/qwen3.7-plus- мультимодальныйqwen/qwen3-coder-32b- для кода
Подключение такое же:
client = OpenAI(
api_key=os.environ["OPENROUTER_API_KEY"],
base_url="https://openrouter.ai/api/v1"
)
response = client.chat.completions.create(
model="qwen/qwen3.7-max",
messages=[{"role": "user", "content": "Проанализируй этот договор на скрытые штрафы"}]
)
Совет: OpenRouter работает из России без VPN стабильнее, чем DashScope. Если ваш бизнес в РФ - начинайте с OpenRouter.
Режим thinking: когда включать, чтобы не переплачивать
Qwen3.7-Max умеет «думать» перед ответом - генерировать цепочку рассуждений. Это повышает точность на сложных задачах (математика, логика, анализ договоров) на 15-30%. Но каждый токен thinking оплачивается как обычный ответ.
Включается через параметр enable_thinking: True в дополнительных настройках. Вот пример для задачи «Проверь договор на риски»:
response = client.chat.completions.create(
model="qwen3.7-max",
messages=[{"role": "user", "content": "В договоре написано: 'Подрядчик имеет право в одностороннем порядке изменить стоимость работ без уведомления'. Это законно?"}],
extra_body={
"enable_thinking": True,
"thinking_budget": 5000 # максимум токенов на размышления
}
)
if hasattr(response.choices[0].message, 'reasoning_content'):
print("Ход мыслей:", response.choices[0].message.reasoning_content)
print("Ответ:", response.choices[0].message.content)
Когда включать thinking:
- Анализ юридических документов
- Расчёт смет
- Поиск багов в коде
- Сложные логические вопросы
Когда не включать:
- Ответы на частые вопросы клиентов
- Генерация простых текстов
- Тегирование заявок
Мультимодальность: работа с изображениями
Qwen3.7-Plus принимает изображения. Это полезно, если вы хотите анализировать скриншоты смет, фотографии объектов или сканы договоров.
Пример: загружаем фото дефекта на объекте и просим описать проблему:
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,{base64_image_data}"
}
},
{
"type": "text",
"text": "Что это за дефект на стене? Как его исправить?"
}
]
}
],
max_tokens=800
)
Поддерживаются JPEG, PNG, WebP, BMP до 10 МБ. Изображение передаётся в base64 - ваш менеджер может сфотографировать на телефон и отправить боту.
Агентный режим: Qwen как ваш виртуальный помощник
Qwen3.7-Max умеет вызывать функции (function calling). Это значит, что он может сам обращаться к вашим базам данных, отправлять email, создавать задачи в CRM. Всё, что нужно - описать функции в виде JSON.
Разберём на примере турагентства: AI-агент проверяет наличие туров по базе и отправляет клиенту предложение.
import json
tools = [
{
"type": "function",
"function": {
"name": "check_tour_availability",
"description": "Проверить наличие тура по направлению и датам",
"parameters": {
"type": "object",
"properties": {
"destination": {"type": "string", "description": "Страна или город"},
"date_from": {"type": "string", "description": "Дата заезда"},
"date_to": {"type": "string", "description": "Дата выезда"}
},
"required": ["destination", "date_from", "date_to"]
}
}
}
]
response = client.chat.completions.create(
model="qwen3.7-max",
messages=[{"role": "user", "content": "Есть ли туры в Турцию на 10-20 июля?"}],
tools=tools,
tool_choice="auto"
)
if response.choices[0].message.tool_calls:
tool_call = response.choices[0].message.tool_calls[0]
function_args = json.loads(tool_call.function.arguments)
print(f"Вызов: {tool_call.function.name}({function_args})")
После этого ваш скрипт выполняет функцию check_tour_availability, получает результат и отправляет ответ клиенту. Всё автоматически.
Работа с большими документами: контекст 1 млн токенов
Qwen3.7-Max может обработать за раз до 1 млн токенов - это примерно 750 тысяч слов. Весь ваш прайс, договор, техническое задание - всё помещается в один запрос. Не нужен RAG с разбивкой на куски.
Пример для стройфирмы: загружаем весь проект договоров и просим найти противоречия:
import pathlib
def load_project(root: str, exts=[".py", ".ts", ".go"]):
parts = []
for ext in exts:
for path in pathlib.Path(root).rglob(f"*{ext}"):
try:
code = path.read_text(errors="ignore")
parts.append(f"## {path.relative_to(root)}\n\n```{ext[1:]}\n{code}\n```")
except Exception:
pass
return "\n\n".join(parts)
project_code = load_project("/path/to/project")
char_count = len(project_code)
token_estimate = char_count // 4
print(f"Проект: ~{token_estimate:,} токенов")
if token_estimate > 800_000:
print("Предупреждение: близко к лимиту")
response = client.chat.completions.create(
model="qwen3.7-max",
messages=[
{"role": "system", "content": "Опытный юрист."},
{"role": "user", "content": f"{project_code}\n\nНайди противоречия в условиях оплаты."}
],
max_tokens=3000,
temperature=0.2
)
Важно помнить о стоимости: 500 тыс. входящих токенов по $1.25 за млн = $0.625 за один запрос. Для регулярных задач с большими документами лучше использовать RAG (разбивку на части) - это дешевле.
Многоагентная система: Qwen как мозг команды
Qwen3.7-Max с thinking отлично подходит для роли «планировщика» в многоагентной системе. Например, вы хотите, чтобы AI сам разбил задачу «создать лендинг для стройфирмы» на подзадачи и распределил их по исполнителям (другим AI-агентам).
import json
from typing import Any
class QwenAgent:
def __init__(self, name: str, system_prompt: str):
self.name = name
self.system = system_prompt
self.history = []
def think_and_act(self, task: str, tools: list = None) -> dict:
kwargs = {
"model": "qwen3.7-max",
"messages": [
{"role": "system", "content": self.system},
*self.history,
{"role": "user", "content": task}
],
"max_tokens": 4000,
"extra_body": {"enable_thinking": True, "thinking_budget": 3000}
}
if tools:
kwargs["tools"] = tools
kwargs["tool_choice"] = "auto"
response = client.chat.completions.create(**kwargs)
msg = response.choices[0].message
self.history.append({"role": "user", "content": task})
self.history.append({"role": "assistant", "content": msg.content})
return {
"answer": msg.content,
"thinking": getattr(msg, "reasoning_content", None),
"tool_calls": msg.tool_calls
}
planner = QwenAgent(
name="Планировщик",
system_prompt="Ты агент-планировщик. Разбиваешь сложные задачи на подзадачи и распределяешь по исполнителям."
)
result = planner.think_and_act(
"Нужно создать AI-ассистента для юридической компании с RAG по документам. Составь план разработки."
)
print("Thinking preview:", result["thinking"][:200] if result["thinking"] else "Thinking disabled")
print("\nПлан:", result["answer"])
Сравнение моделей Qwen: что выбрать
| Модель | Цена (вход/выход) | Контекст | Когда брать |
|---|---|---|---|
| Qwen3.7-Max | $1.25/$3.75 | 1 млн | Агенты, анализ договоров, код - где ошибка дорога |
| Qwen3.7-Plus | $1.25/$3.75 | 1 млн | То же + работа с изображениями |
| Qwen3.6-Plus | ~$0.50/$1.50 | 128K | Баланс цены и качества |
| Qwen3.5-Plus | ~$0.30/$0.90 | 64K | Простые задачи: тегирование, суммаризация |
| Qwen3-Coder-32B | ~$0.40/$1.20 | 128K | Генерация кода |
Советы по промптам для Qwen
Qwen любит структурированные промпты. Используйте XML-теги для разделов:
system = """Ты аналитик данных.
<capabilities>
- Анализ CSV и JSON данных
- Построение SQL запросов
- Интерпретация статистики
</capabilities>
<output_format>
Отвечай структурированно:
1. Краткий вывод (1-2 предложения)
2. Детальный анализ
3. Рекомендации (если применимо)
</output_format>"""
response = client.chat.completions.create(
model="qwen3.7-max",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": "Средняя сессия пользователей 3.2 минуты, bounce rate 67%, конверсия 1.8%. Что не так?"}
],
max_tokens=800
)
Для задач на русском языке Qwen работает отлично, даже в смешанном русско-английском контексте.
Контроль расходов: защита от неожиданных счетов
DashScope имеет ограничения по частоте запросов (rate limits). Если превысить - получите ошибку 429. Для продакшена добавьте автоматические повторы с ожиданием:
import time
import random
from openai import OpenAI, RateLimitError, APIError
def dashscope_with_retry(
client: OpenAI,
max_retries: int = 5,
**kwargs
) -> str:
for attempt in range(max_retries):
try:
response = client.chat.completions.create(**kwargs)
return response.choices[0].message.content
except RateLimitError as e:
if attempt == max_retries - 1:
raise
sleep_time = (2 ** attempt) + random.uniform(0, 1)
print(f"Rate limit, ожидание {sleep_time:.1f}с (попытка {attempt + 1}/{max_retries})")
time.sleep(sleep_time)
except APIError as e:
if e.status_code >= 500:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt)
else:
raise
raise RuntimeError("Исчерпаны все попытки")
result = dashscope_with_retry(
dashscope_client,
model="qwen3.7-max",
messages=[{"role": "user", "content": "Привет"}],
max_tokens=200
)
Частые вопросы
DashScope работает из России без VPN?
Технически - да, Alibaba Cloud не блокирует российские IP. Но стабильность может хромать. OpenRouter надёжнее: маршрутизация через европейские серверы.
Чем Qwen3.7-Max отличается от Plus?
Max - только текст, выше качество на логику и код. Plus - добавляет работу с картинками. Цена одинаковая.
Как включить thinking?
Через параметр enable_thinking: True в extra_body. По умолчанию выключен. Включайте только для сложных задач, иначе переплата.
Qwen vs DeepSeek: что лучше?
Обе хороши. Qwen чуть лучше для смешанных задач (русский + код + логика). DeepSeek V4 Flash дешевле для простых задач.
Есть ли бесплатный уровень?
DashScope даёт 1 млн токенов Qwen-Long и 500 тыс. Qwen-Max бесплатно на первый месяц. Для постоянных экспериментов без бюджета - GLM-4.5-Flash от Zhipu с бессрочным бесплатным уровнем.
Что внедрить прямо сейчас
- Зарегистрируйтесь на OpenRouter (это быстрее, чем DashScope).
- Скопируйте пример кода с анализом договора и замените текст на свой.
- Попросите фрилансера за 2 часа настроить Telegram-бота, который будет принимать вопросы от клиентов и отвечать через Qwen.
- Включите thinking для задач, где ошибка дорога.
Уже через день вы сможете обрабатывать заявки быстрее, а менеджеры перестанут тратить часы на рутину.
AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.