Saltar para o conteúdo principal
Use Files para fazer upload de documentos uma única vez. Use Vector Stores para indexar esses arquivos para busca semântica e recuperação. Este é o padrão comum para assistentes baseados em documentos, fluxos de recuperação e respostas fundamentadas.

Fazer upload de um arquivo

Faça upload do arquivo com multipart/form-data. A especificação OpenAPI requer file e purpose.
import { SDK } from '@meetkai/mka1';

const mka1 = new SDK({ apiKey: '<mka1-api-key>' });

const file = Bun.file('./support-manual.pdf');
const result = await mka1.llm.files.upload(
  { file, purpose: 'assistants' },
  { headers: { 'X-On-Behalf-Of': '<end-user-id>' } }
);
A resposta retorna um objeto file com um ID como file-abc123.

Criar um vector store

Crie um vector store e anexe um ou mais IDs de arquivos enviados.
const vectorStore = await mka1.llm.vectorStores.create(
  {
    name: 'Support knowledge base',
    description: 'Indexed support manuals and help center docs',
    fileIds: ['file-abc123'],
    expiresAfter: { anchor: 'last_active_at', days: 30 },
  },
  { headers: { 'X-On-Behalf-Of': '<end-user-id>' } }
);
Esta resposta retorna um ID de vector store como vs_abc123.

Adicionar mais arquivos depois

Você pode adicionar mais arquivos a um vector store existente sem precisar recriá-lo.
const vsFile = await mka1.llm.vectorStores.createFile(
  {
    vectorStoreId: 'vs_abc123',
    fileId: 'file-def456',
    attributes: { category: 'manual', version: '2.0' },
  },
  { headers: { 'X-On-Behalf-Of': '<end-user-id>' } }
);
O arquivo do vector store pode retornar status: "in_progress" enquanto a indexação está em andamento. Consulte os endpoints de Files e Vector Stores na Referência da API caso precise verificar o status periodicamente.

Pesquisar no vector store

Use busca semântica para recuperar os trechos mais relevantes para uma pergunta do usuário.
const results = await mka1.llm.vectorStores.search(
  {
    vectorStoreId: 'vs_abc123',
    searchVectorStoreRequest: {
      query: 'How do I reset my password?',
      maxNumResults: 5,
    },
  },
  { headers: { 'X-On-Behalf-Of': '<end-user-id>' } }
);
A resposta retorna correspondências ranqueadas com file_id, filename, dados de pontuação e conteúdo do trecho.

Fluxo de trabalho típico

Use esta sequência para a maioria das configurações de recuperação:
  1. Faça upload do arquivo de origem.
  2. Crie um vector store com file_ids, ou anexe o arquivo depois.
  3. Aguarde a conclusão do processamento do arquivo.
  4. Pesquise no vector store quando precisar de contexto relevante.
Você pode então alimentar o texto retornado na sua própria lógica de aplicação ou em uma requisição Responses.