Руководства
Ввод изображений
ZvenoAI поддерживает отправку изображений в vision-модели через API /v1/chat/completions. Вы можете использовать публичные URL или закодированные в base64 локальные файлы. Изображения передаются в массиве content сообщения вместе с текстовым промптом.
Поддерживаемые форматы
ZvenoAI поддерживает два способа передачи изображений:
- URL — более эффективно для публично доступных изображений, не требует локального кодирования
- Base64 — необходимо для локальных файлов или приватных изображений, которые не доступны публично
Поддерживаемые форматы изображений: image/png, image/jpeg, image/webp, image/gif. Обратите внимание, что поддержка конкретных форматов зависит от провайдера и модели.
Использование URL изображений
Самый простой способ — передать публичный URL изображения. ZvenoAI загрузит изображение автоматически.
const response = await fetch('https://api.zveno.ai/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.ZVENOAI_API_KEY}`,
},
body: JSON.stringify({
model: 'google/gemini-2.0-flash-001',
messages: [
{
role: 'user',
content: [
{
type: 'text',
text: 'Что изображено на этой картинке?',
},
{
type: 'image_url',
image_url: {
url: 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg',
},
},
],
},
],
}),
});
const data = await response.json();
console.log(data.choices[0].message.content);Использование Base64 изображений
Для локальных файлов или приватных изображений используйте base64-кодирование. Изображение должно быть закодировано в формате data URL: data:image/jpeg;base64,...
import fs from 'fs';
async function encodeImageToBase64(imagePath) {
const imageBuffer = await fs.promises.readFile(imagePath);
const base64Image = imageBuffer.toString('base64');
return `data:image/jpeg;base64,${base64Image}`;
}
// Читаем и кодируем изображение
const imagePath = 'path/to/your/image.jpg';
const base64Image = await encodeImageToBase64(imagePath);
const response = await fetch('https://api.zveno.ai/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.ZVENOAI_API_KEY}`,
},
body: JSON.stringify({
model: 'google/gemini-2.0-flash-001',
messages: [
{
role: 'user',
content: [
{
type: 'text',
text: 'Что изображено на этой картинке?',
},
{
type: 'image_url',
image_url: {
url: base64Image,
},
},
],
},
],
}),
});
const data = await response.json();
console.log(data.choices[0].message.content);Несколько изображений
Вы можете отправить несколько изображений в одном сообщении, добавив несколько элементов image_url в массив content. Количество изображений, которое можно отправить в одном запросе, зависит от модели и провайдера.
💡 Рекомендация
Из-за особенностей парсинга контента рекомендуется сначала отправлять текстовый промпт, а затем изображения. Если изображения должны идти первыми, лучше разместить их в system-промпте.
Параметр detail
В поле image_url можно указать параметр detail для управления уровнем детализации обработки изображения:
low— низкая детализация (быстрее, дешевле)high— высокая детализация (медленнее, дороже)auto— автоматический выбор (по умолчанию)
Совместимые модели
Не все модели поддерживают обработку изображений. Используйте модели с поддержкой vision, например:
google/gemini-2.0-flash-001google/gemini-2.5-proopenai/gpt-4oanthropic/claude-3.5-sonnet
Полный список моделей с поддержкой vision доступен на странице моделей.