Qwen 3.5

Open-source модель из семейства Qwen 3.5, разработанная компанией Alibaba. Предназначена для генерации текста, понимания естественного языка, решения задач анализа, диалога и кодинга. Доступна в Alem Plus через OpenAI-совместимый API. Поддерживает многоязычные сценарии и работает в режиме чат-модели.

Модель также поддерживает мультимодальность — может анализировать изображения и использовать их в диалоге.

Шаг 1. Откройте Qwen3 и нажмите «Получить API-ключ»

qwen3: карточка сервиса с кнопкой «Получить API-ключ»
Чтобы получить API-ключ, нажмите Получить API-ключ

Шаг 2. Создание API-ключа

qwen3: создание API-ключа
Для создания API-ключа введите название

Что вы получите от Alem Plus:

  • API Key

Чтобы его использовать, сделайте запрос: POST https://llm.alem.ai/v1/chat/completions

Headers: Authorization: Bearer API Key

example
Пример использования
import requests

API_KEY = "Ваш API_KEY"  
URL = "https://llm.alem.ai/v1/chat/completions"  

payload = {
    "model": "qwen3",
    "messages": [{"role": "user", "content": "Hello, world!"}],
}

def main():
    resp = requests.post(
        URL,
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json",
        },
        json=payload,
        timeout=60,
    )
    resp.raise_for_status()
    data = resp.json()
    print(data["choices"][0]["message"]["content"])

if __name__ == "__main__":
    main()


const URL = "https://llm.alem.ai/v1/chat/completions";
const API_KEY = "Ваш API_KEY"; 

async function main() {
  const resp = await fetch(URL, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "qwen3",
      messages: [{ role: "user", content: "Hello, world!" }],
    }),
  });

  if (!resp.ok) {
    throw new Error(`HTTP ${resp.status} ${await resp.text()}`);
  }

  const data = await resp.json();
  console.log(data?.choices?.[0]?.message?.content ?? "");
}

main().catch((err) => {
  console.error("Qwen3 Node.js example failed:", err);
  process.exit(1);
});

<?php
declare(strict_types=1);

$API_KEY = 'Ваш API_KEY'; 
$URL     = 'https://llm.alem.ai/v1/chat/completions';

$payload = [
  'model'    => 'qwen3',
  'messages' => [['role' => 'user', 'content' => 'Hello, world!']],
];

$ch = curl_init($URL);
curl_setopt_array($ch, [
  CURLOPT_POST           => true,
  CURLOPT_HTTPHEADER     => [
    'Authorization: Bearer ' . $API_KEY,
    'Content-Type: application/json',
  ],
  CURLOPT_POSTFIELDS     => json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT        => 60,
]);

$raw = curl_exec($ch);
if ($raw === false) {
  throw new RuntimeException('cURL error: ' . curl_error($ch));
}
$code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);

if ($code < 200 || $code >= 300) {
  throw new RuntimeException("HTTP $code: $raw");
}

$data = json_decode($raw, true);
echo $data['choices'][0]['message']['content'] ?? $raw;


Рассмотрим как получить протестировать Qwen3 с помощью POSTMAN.

Укажите метод POST и свой API-KEY

postman
В разделе Authorization укажите свой API-KEY

Укажите KEY и VALUE

postman2
Перейдите в Headers и укажите так

Укажите model и input

postman3
Перейдите в Body и укажите Json

Нажмите Send

postman4
Вы получите ответ от qwen3

Рассмотрим как использовать мультимодальность этой модели. Здесь представлены примеры скриптов, которые могут быть использованы для распознования и описания картинки.

import requests

URL = "https://llm.alem.ai/v1/chat/completions"
API_KEY = "Ваш API_KEY"

IMAGE_URL = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRcOmqVyTywcnSFkWu0lK1vgmjoJ56DFwkLLw&s"

payload = {
    "model": "qwen3",
    "temperature": 0.2,
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": IMAGE_URL
                    }
                },
                {
                    "type": "text",
                    "text": "Опиши, что изображено на этой картинке."
                }
            ]
        }
    ]
}

def main():
    try:
        resp = requests.post(
            URL,
            headers={
                "Authorization": f"Bearer {API_KEY}",
                "Content-Type": "application/json",
            },
            json=payload,
            timeout=60,
        )

        resp.raise_for_status()
        data = resp.json()

        print(data["choices"][0]["message"]["content"])

    except (requests.RequestException, KeyError) as e:
        print(f"Request failed: {e}\nBody: {resp.text if 'resp' in locals() else ''}")


if __name__ == "__main__":
    main()
const API_KEY = "Ваш API_KEY";
const URL = "https://llm.alem.ai/v1/chat/completions";

const IMAGE_URL =
  "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRcOmqVyTywcnSFkWu0lK1vgmjoJ56DFwkLLw&s";

const payload = {
  model: "qwen3",
  temperature: 0.2,
  messages: [
    {
      role: "user",
      content: [
        {
          type: "image_url",
          image_url: {
            url: IMAGE_URL,
          },
        },
        {
          type: "text",
          text: "Опиши, что изображено на этой картинке.",
        },
      ],
    },
  ],
};

async function main() {
  try {
    const resp = await fetch(URL, {
      method: "POST",
      headers: {
        Authorization: `Bearer ${API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify(payload),
    });

    if (!resp.ok) {
      const errorText = await resp.text();
      throw new Error(`HTTP ${resp.status}: ${errorText}`);
    }

    const data = await resp.json();
    console.log(data.choices[0].message.content);
  } catch (error) {
    console.error("Request failed:", error.message);
  }
}

main();

<?php

$API_KEY = "YOUR_API_KEY";
$URL = "https://llm.alem.ai/v1/chat/completions";

$IMAGE_URL = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRcOmqVyTywcnSFkWu0lK1vgmjoJ56DFwkLLw&s";

$payload = [
    "model" => "qwen3",
    "temperature" => 0.2,
    "messages" => [
        [
            "role" => "user",
            "content" => [
                [
                    "type" => "image_url",
                    "image_url" => [
                        "url" => $IMAGE_URL
                    ]
                ],
                [
                    "type" => "text",
                    "text" => "Опиши, что изображено на этой картинке."
                ]
            ]
        ]
    ]
];

$ch = curl_init($URL);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $API_KEY,
    "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
curl_setopt($ch, CURLOPT_TIMEOUT, 60);

$response = curl_exec($ch);

if ($response === false) {
    echo "Request failed: " . curl_error($ch) . PHP_EOL;
    curl_close($ch);
    exit(1);
}

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode < 200 || $httpCode >= 300) {
    echo "HTTP $httpCode: $response" . PHP_EOL;
    exit(1);
}

$data = json_decode($response, true);

if (!isset($data["choices"][0]["message"]["content"])) {
    echo "Unexpected response: $response" . PHP_EOL;
    exit(1);
}

echo $data["choices"][0]["message"]["content"] . PHP_EOL;


Как сочетать Qwen 3 с другими сервисами

  • Оркестрация/агенты: n8n