Fazer upload de um arquivo
Faça upload do arquivo commultipart/form-data.
A especificação OpenAPI ativa exige file e purpose.
file com um ID como file-abc123.
Criar um armazenamento de vetores
Crie um armazenamento de vetores e anexe um ou mais IDs de arquivos enviados.vs_abc123.
Criar um armazenamento de grafo
Definaretrieval_mode como "graph" para obter recuperação com reconhecimento de grafo em vez de similaridade vetorial simples.
Em um armazenamento de grafo, entidades e relações são extraídas de cada trecho na ingestão para construir um grafo de conhecimento, e a busca percorre esse grafo para coletar evidências conectadas, em vez de retornar apenas os trechos mais próximos.
Os ganhos aparecem em perguntas que exigem ligar fatos entre vários documentos.
Duas opções se aplicam somente a armazenamentos de grafo:
extraction_model— o modelo usado para extração de entidades e relações. Segue o mesmo contrato deembedding_model: opcional, temautocomo padrão e é resolvido para um modelo concreto na criação.max_hops— até onde expandir pelo grafo em cada consulta, de1a4. O padrão é2.
retrieval_mode, extraction_model e max_hops, com extraction_model já resolvido para o modelo concreto, e não como auto.
Você pesquisa um armazenamento de grafo com a mesma chamada de busca usada em qualquer outro armazenamento de vetores — o modo é uma propriedade do armazenamento, não da requisição.
O que muda em um armazenamento de grafo
- O modo é congelado na criação. Não há como converter um armazenamento entre
vectoregraphdepois; o endpoint de atualização não aceitaretrieval_mode. Trocar significa criar um novo armazenamento e reanexar os arquivos. - A extração é medida no seu consumo. Entidades e relações são extraídas de cada trecho na ingestão, e cada consulta também executa uma passagem de extração para identificar as entidades a partir das quais expandir. Ambas são cobradas como uso normal de modelo, então um armazenamento de grafo custa mais para preencher e mais para consultar do que um armazenamento de vetores sobre os mesmos arquivos.
- A busca em grafo retorna no máximo 20 resultados.
max_num_resultsaceita até 50, mas consultas em grafo são limitadas a 20. Um valor maior é truncado, não rejeitado. - Filtros por atributo podem devolver menos resultados. Como observado em Filtrar a busca por atributos de arquivo, a filtragem em um armazenamento de grafo é aplicada parcialmente após a recuperação, portanto uma busca filtrada pode retornar menos correspondências do que
max_num_results. extraction_modelemax_hopssão exclusivos de grafo. Enviar qualquer um deles semretrieval_mode: "graph"retorna400.
Adicionar mais arquivos depois
Você pode adicionar mais arquivos a um armazenamento de vetores existente sem recriá-lo.status: "in_progress" enquanto a indexação é executada.
Um arquivo só fica pesquisável quando o status chega a "completed" — uma busca feita antes disso
tem sucesso, mas omite o arquivo, então consulte o status até "completed" em vez de assumir uma espera fixa.
A indexação normalmente termina em segundos, mas a latência varia conforme o tamanho do arquivo e a carga.
Consulte os endpoints de Arquivos e Armazenamentos de Vetores na Referência da API para o endpoint de consulta de status.
Listar arquivos com paginação
As listagens de arquivos são ordenadas porcreated_at (os mais recentes primeiro por padrão) e retornam até limit itens por página.
Quando has_more for true, passe o id do último item como after para buscar a próxima página.
id de um item como before: a resposta será a página imediatamente anterior a esse item na ordem de exibição.
Arquivos anexados no mesmo lote podem compartilhar um carimbo de data e hora de criação; o cursor considera isso, portanto, uma varredura completa retorna cada arquivo exatamente uma vez.
Se o arquivo de um cursor não existir mais — por exemplo, se ele foi removido do armazenamento de vetores enquanto você paginava — a API retorna 400 Invalid pagination cursor. Reinicie a varredura a partir da primeira página.
Pesquisar no armazenamento de vetores
Use a busca semântica para recuperar os blocos mais relevantes para uma pergunta do usuário.file_id, filename, dados de pontuação, conteúdo dos blocos e os attributes atuais do arquivo.
Filtrar a busca por atributos de arquivo
Os atributos são metadados de chave-valor no nível do arquivo — valores de string, número ou booleanos — definidos quando você anexa um arquivo (consulte Adicionar mais arquivos depois). Você pode alterá-los após a ingestão com o endpoint update-file (POST /vector_stores/{vector_store_id}/files/{file_id}); a busca sempre avalia os valores atuais.
Passe filters na solicitação de busca para restringir os resultados a arquivos cujos atributos correspondam.
Um filtro é uma comparação — eq, ne, gt, gte, lt, lte, in, nin — ou um composto and/or de filtros aninhados.
- Um arquivo que não possui a
keydo filtro nunca corresponde — inclusive paraneenin. Um filtro só inclui um arquivo com base em evidências, nunca por ausência. eqeneusam igualdade estrita, sem coerção de tipo: a string"2"não é igual ao número2.gt,gte,lteltecomparam apenas números; um atributo ou valor de filtro não numérico falha na comparação.ineninrecebem umvaluede matriz e verificam se o atributo do arquivo é (ou não é) um de seus elementos.- Os compostos
andeorpodem ser aninhados em qualquer profundidade. - Em armazenamentos de grafo, a filtragem é aplicada após a recuperação, portanto, uma busca filtrada pode retornar menos correspondências do que
max_num_results.
Fluxo de trabalho típico
Use esta sequência para a maioria das configurações de recuperação:- Faça upload do arquivo de origem.
- Crie um armazenamento de vetores com
file_idsou anexe o arquivo depois. - Aguarde a conclusão do processamento do arquivo.
- Pesquise no armazenamento de vetores quando precisar de contexto relevante.