Skip to navigation

Nhận diện hình ảnh (Image Inputs)

Cách gửi hình ảnh đến các model của Trạm AI

Để gửi hình ảnh tới các multimodal model, hãy dùng API /v1/chat/completions với tham số messages ở dạng multi-part. Trường image_url có thể là một URL, hoặc một ảnh đã mã hóa base64. Người dùng cũng có thể gửi nhiều ảnh cùng lúc, mỗi ảnh nằm trong một entry riêng của mảng content. Số ảnh tối đa trong một request sẽ tùy theo từng provider và từng model.

Mẹo nhỏ: Do cách content được xử lý, hãy đặt text prompt trước rồi mới tới hình ảnh. Nếu bắt buộc phải để ảnh lên đầu, hãy đưa ảnh vào system prompt.

Với hình ảnh, Trạm AI hỗ trợ hai cách:

  • URL trực tiếp: Đơn giản hơn cho ảnh công khai, không cần mã hóa.
  • Base64: Dùng khi ảnh nằm ở máy cá nhân, hoặc ảnh riêng tư không truy cập công khai được.

Gửi ảnh bằng URL

Đây là cách gửi một ảnh qua URL:

import OpenAI from 'openai';
const openai = new OpenAI({
baseURL: 'https://api.tramlabs.io/v1',
apiKey: '<TRAM_AI_API_KEY>',
});
const result = await openai.chat.completions.create({
model: 'gemini-3.5-flash',
messages: [
{
role: 'user',
content: [
{
type: 'text',
text: "What's in this image?",
},
{
type: 'image_url',
imageUrl: {
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',
},
},
],
},
],
stream: false,
});
console.log(result);

Gửi ảnh mã hóa Base64

Với ảnh lưu sẵn ở máy, chỉ cần mã hóa base64 rồi gửi đi. Cách thực hiện như sau:

import OpenAI from 'openai';
import * as fs from 'fs';
const openai = new OpenAI({
baseURL: 'https://api.tramlabs.io/v1',
apiKey: '<TRAM_AI_API_KEY>',
});
async function encodeImageToBase64(imagePath: string): Promise<string> {
const imageBuffer = await fs.promises.readFile(imagePath);
const base64Image = imageBuffer.toString('base64');
return `data:image/jpeg;base64,${base64Image}`;
}
// Read and encode the image
const imagePath = 'path/to/your/image.jpg';
const base64Image = await encodeImageToBase64(imagePath);
const result = await openai.chat.completions.create({
model: 'gemini-3.5-flash',
messages: [
{
role: 'user',
content: [
{
type: 'text',
text: "What's in this image?",
},
{
type: 'image_url',
imageUrl: {
url: base64Image,
},
},
],
},
],
stream: false,
});
console.log(result);

Các định dạng ảnh hỗ trợ:

  • image/png
  • image/jpeg
  • image/webp
  • image/gif