Saltar para o conteúdo principal
A API Responses aceita texto, imagens, audio e arquivos em uma unica requisicao. Use input estruturado com arrays de conteudo para combinar modalidades.

Tipos de entrada suportados

TipoTipo de conteudoFormatosEntrega
Textoinput_textTexto simplesInline
Imageminput_imageJPEG, PNG, WebP, GIF, TIFFURL, data URI base64 ou file_id
Audioinput_audioWAV, MP3Base64
Documentoinput_filePDF, DOCX, XLSX, PPTX, RTF, TXT, CSVURL, data URI base64 ou file_id
Videoinput_fileMP4Data URI base64 ou file_id

Entrada de imagem

Envie uma imagem para o modelo descrever, analisar ou responder perguntas sobre ela. Forneca a imagem como URL, data URI base64 ou um file_id previamente enviado.

Imagem via URL

import { SDK } from '@meetkai/mka1';

const mka1 = new SDK({
  bearerAuth: `Bearer ${YOUR_API_KEY}`,
});

const result = await mka1.llm.responses.create({
  model: 'meetkai:functionary-swahili-large',
  input: [
    {
      type: 'message',
      role: 'user',
      content: [
        { type: 'input_text', text: 'Describe what you see in this image.' },
        {
          type: 'input_image',
          image_url: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg',
        },
      ],
    },
  ],
}, { headers: { 'X-On-Behalf-Of': '<end-user-id>' } });

Imagem via base64

Codifique a imagem como data URI com o tipo MIME apropriado.
import { readFileSync } from 'fs';

const imageBase64 = readFileSync('photo.jpg').toString('base64');

const result = await mka1.llm.responses.create({
  model: 'meetkai:functionary-swahili-large',
  input: [
    {
      type: 'message',
      role: 'user',
      content: [
        { type: 'input_text', text: 'What is in this photo?' },
        {
          type: 'input_image',
          image_url: `data:image/jpeg;base64,${imageBase64}`,
        },
      ],
    },
  ],
});

Imagem via file_id

Faca upload de uma imagem com a API Files primeiro e depois referencie-a pelo ID.
// Upload the image
const uploadResult = await mka1.llm.files.create({
  file: { fileName: 'photo.jpg', content: imageBuffer },
  purpose: 'assistants',
});

// Use the file_id in a response
const result = await mka1.llm.responses.create({
  model: 'meetkai:functionary-swahili-large',
  input: [
    {
      type: 'message',
      role: 'user',
      content: [
        { type: 'input_text', text: 'Describe this image.' },
        { type: 'input_image', file_id: uploadResult.id },
      ],
    },
  ],
});

Entrada de audio

Envie audio para o modelo processar. O audio e automaticamente transcrito e o modelo responde ao conteudo falado. Formatos suportados: WAV e MP3 (maximo 25 MB).
import { readFileSync } from 'fs';

const audioBase64 = readFileSync('recording.wav').toString('base64');

const result = await mka1.llm.responses.create({
  model: 'meetkai:functionary-swahili-large',
  input: [
    {
      type: 'message',
      role: 'user',
      content: [
        {
          type: 'input_audio',
          input_audio: {
            data: audioBase64,
            format: 'wav',
          },
        },
      ],
    },
  ],
}, { headers: { 'X-On-Behalf-Of': '<end-user-id>' } });

Entrada de documento

Envie documentos para o modelo ler e raciocinar sobre eles. PDFs e documentos digitalizados sao processados automaticamente com OCR — nenhuma configuracao extra e necessaria.

Documento via URL

const result = await mka1.llm.responses.create({
  model: 'meetkai:functionary-swahili-large',
  input: [
    {
      type: 'message',
      role: 'user',
      content: [
        { type: 'input_text', text: 'Summarize this document in three bullet points.' },
        {
          type: 'input_file',
          file_url: 'https://example.com/report.pdf',
          filename: 'report.pdf',
        },
      ],
    },
  ],
});

Documento via base64

Codifique o arquivo como data URI. Inclua o tipo MIME para que a API possa direcioná-lo ao processador correto.
import { readFileSync } from 'fs';

const pdfBase64 = readFileSync('contract.pdf').toString('base64');

const result = await mka1.llm.responses.create({
  model: 'meetkai:functionary-swahili-large',
  input: [
    {
      type: 'message',
      role: 'user',
      content: [
        { type: 'input_text', text: 'What are the key terms in this contract?' },
        {
          type: 'input_file',
          file_data: `data:application/pdf;base64,${pdfBase64}`,
          filename: 'contract.pdf',
        },
      ],
    },
  ],
});

Documentos digitalizados e OCR

PDFs digitalizados e imagens de documentos sao processados automaticamente. A API usa OCR para extrair texto de:
  • Paginas de PDF digitalizadas (convertidas em imagens a 150 DPI e depois processadas por OCR)
  • Fotos de documentos (JPEG, PNG, TIFF)
  • Arquivos Office (DOCX, XLSX, PPTX — convertidos para PDF primeiro e depois processados por OCR)
Documentos com multiplas paginas sao processados em paralelo. O texto extraido e retornado como Markdown e passado ao modelo para raciocinio. Nenhum parametro especial e necessario — basta enviar o arquivo como input_file e o pipeline cuida da deteccao, conversao e OCR.

Formatos de documento suportados

FormatoTipo MIMEProcessamento
PDFapplication/pdfOCR por pagina a 150 DPI
JPEG / PNG / TIFF / WebP / GIFimage/*OCR direto
Word (.doc, .docx)application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.documentConverte para PDF e depois OCR
Excel (.xls, .xlsx)application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheetConverte para PDF e depois OCR
PowerPoint (.ppt, .pptx)application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentationConverte para PDF e depois OCR
RTFapplication/rtfConverte para PDF e depois OCR
Texto simples / CSVtext/plain, text/csvLeitura direta
Limite de tamanho: 30 MB por arquivo.

Entrada mista

Combine multiplos tipos de conteudo em uma unica mensagem. O modelo ve todas as entradas juntas e pode raciocinar entre elas.
const result = await mka1.llm.responses.create({
  model: 'meetkai:functionary-swahili-large',
  input: [
    {
      type: 'message',
      role: 'user',
      content: [
        { type: 'input_text', text: 'Compare the chart in the image with the data in the spreadsheet. Are the numbers consistent?' },
        {
          type: 'input_image',
          image_url: 'https://example.com/chart.png',
        },
        {
          type: 'input_file',
          file_url: 'https://example.com/data.xlsx',
          filename: 'data.xlsx',
        },
      ],
    },
  ],
});

Proximos passos