Учебник

Qwen API: агенты, документы и код от Alibaba для бизнеса

У вас нет программиста, но нужно автоматизировать обработку заявок, анализ договоров или генерацию кода для сайта? Модели Qwen от Alibaba стоят в 2-3 раза дешевле GPT-4o, при этом не уступают по качеству. Разбираем, как подключить Qwen через DashScope или OpenRouter за час, настроить агента для работы с документами и сэкономить на разработке. Без курсов и технического бэкграунда.

Макс Космов··7 мин чтения

Ваши менеджеры тратят часы на анализ типовых договоров? Или вы пишете код для лендинга вручную, потому что нанять программиста дорого? Модели 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 минут:

  1. Зайдите на dashscope.aliyuncs.com.
  2. Создайте аккаунт Alibaba Cloud (email + телефон).
  3. В консоли найдите DashScope -> API Keys -> Create.
  4. Бесплатный уровень: 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 с бессрочным бесплатным уровнем.

Что внедрить прямо сейчас

  1. Зарегистрируйтесь на OpenRouter (это быстрее, чем DashScope).
  2. Скопируйте пример кода с анализом договора и замените текст на свой.
  3. Попросите фрилансера за 2 часа настроить Telegram-бота, который будет принимать вопросы от клиентов и отвечать через Qwen.
  4. Включите thinking для задач, где ошибка дорога.

Уже через день вы сможете обрабатывать заявки быстрее, а менеджеры перестанут тратить часы на рутину.

AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.