/chat/completions. A Venice extrai o arquivo para texto antes de enviá-lo ao modelo selecionado, para que você possa fazer perguntas, resumir, comparar ou transformar o conteúdo de arquivos sem precisar construir seu próprio parser primeiro.
Use file inputs quando seu prompt depender do conteúdo de um documento, planilha, arquivo markdown, arquivo JSON ou arquivo de código. São entradas vinculadas à requisição, não armazenamento persistente de arquivos, então inclua o arquivo em cada requisição que precisar dele.
File inputs usam o array de conteúdo de chat compatível com OpenAI. Adicione um bloco de conteúdo com
type: "file" e forneça o conteúdo do arquivo em file.file_data.Tipos de arquivo suportados
A API de chat aceita file inputs como data URLs em base64 ou URLs publicamente acessíveis. O tamanho máximo de arquivo é 25 MB por arquivo, medido após decodificar uma data URL base64 ou após buscar uma URL.| Categoria | Formatos |
|---|---|
| Documentos | PDF, DOCX, PPTX |
| Planilhas | XLSX, XLS, CSV |
| Texto e dados | TXT, Markdown, JSON |
| Código-fonte | Arquivos de código mais comuns, incluindo .py, .js, .ts, .c, .cpp, .java, .go, .rs, .ps1, .sh, .yaml e .sql |
Os arquivos são extraídos para texto antes da inferência. O texto extraído conta para o contexto de entrada do modelo, então escolha um modelo com
availableContextTokens suficiente para o arquivo mais suas instruções e a resposta esperada.Uso básico
Envie um arraymessages em que o content da mensagem do usuário seja um array de blocos de texto e de arquivo:
URLs de arquivo
Se o arquivo já estiver hospedado em uma URL HTTP ou HTTPS pública, passe a URL emfile_data em vez de codificá-la em base64:
Múltiplos arquivos
Você pode incluir mais de um bloco de arquivo na mesma mensagem. Coloque uma breve instrução de texto antes dos arquivos para que o modelo saiba como usá-los.Data URLs
Para arquivos locais, codifique os bytes do arquivo como base64 e adicione o prefixo do tipo MIME correto:| Tipo de arquivo | Prefixo da data URL |
|---|---|
data:application/pdf;base64, | |
| DOCX | data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64, |
| PPTX | data:application/vnd.openxmlformats-officedocument.presentationml.presentation;base64, |
| XLSX | data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64, |
| CSV | data:text/csv;base64, |
| Markdown | data:text/markdown;base64, |
| Texto simples | data:text/plain;base64, |
| JSON | data:application/json;base64, |
application/octet-stream. Incluir um filename preciso ainda ajuda a Venice a identificar e exibir o arquivo.
Trabalhando com arquivos grandes
Como os arquivos viram texto do prompt, arquivos grandes podem aumentar latência, uso de tokens e custo. Tenha em mente a janela de contexto do modelo. O arquivo bruto deve ter 25 MB ou menos. A codificação em base64 aumenta o tamanho da requisição em cerca de 33%, então um arquivo perto do limite de 25 MB produzirá um corpo de requisição JSON maior. Bons padrões para arquivos grandes:- Peça por uma tarefa específica em vez de um prompt amplo de “analise tudo”.
- Inclua apenas os documentos necessários para a resposta atual.
- Use modelos com
availableContextTokensmaior para relatórios longos ou bases de código. - Coloque documentos estáveis e repetidos antes de perguntas dinâmicas do usuário se você também estiver usando prompt caching.
- Use
stream: truequando esperar uma resposta longa.
File inputs vs. Text Parser
Use file inputs de chat quando quiser que o modelo raciocine sobre o arquivo imediatamente. Use a API Text Parser quando quiser extrair o texto primeiro, inspecionar a contagem de tokens, armazenar o texto extraído em seu próprio sistema ou enviar o mesmo texto extraído para múltiplas requisições.| Necessidade | Use |
|---|---|
| Perguntar ao modelo sobre um documento em uma única requisição | File input de chat |
| Extrair texto sem inferência do modelo | API Text Parser |
| Verificar a contagem de tokens extraídos antes de fazer o prompt | API Text Parser |
| Reutilizar texto extraído em muitas requisições | API Text Parser, depois inclua o texto nos prompts |
Melhores práticas
- Inclua
filenamesempre que possível, especialmente ao enviar múltiplos arquivos. - Coloque a instrução antes dos blocos de arquivo para que o modelo saiba a tarefa antes de ler o conteúdo extraído.
- Use URLs públicas apenas para arquivos que possam ser buscados sem cookies, cabeçalhos ou estado de sessão assinado.
- Prefira data URLs em base64 para arquivos privados ou arquivos gerados dentro da sua aplicação.
- Faça perguntas focadas e especifique o formato de saída que você quer.
- Para extração estruturada, combine file inputs com respostas estruturadas.
Solução de problemas
O modelo diz que não consegue acessar o arquivo
O modelo diz que não consegue acessar o arquivo
Garanta que o content da mensagem usa um array e inclui um bloco
type: "file". Se você usou uma URL, verifique se ela é publicamente acessível sem autenticação.A requisição está lenta ou cara
A requisição está lenta ou cara
O arquivo pode estar extraindo uma grande quantidade de texto. Use um modelo com contexto maior, restrinja a tarefa, envie menos arquivos ou pré-extraia e corte o texto com a API Text Parser.
A resposta ignora um dos meus arquivos
A resposta ignora um dos meus arquivos
Dê a cada arquivo um
filename descritivo e refira-se aos filenames diretamente no seu prompt. Por exemplo, “Compare policy-v1.pdf com policy-v2.pdf.”Um modelo rejeita o conteúdo do arquivo
Um modelo rejeita o conteúdo do arquivo
File inputs estão disponíveis em modelos de chat compatíveis. Verifique a página de modelos para conhecer as capacidades atuais e limites de contexto, ou tente um modelo de texto atual com contexto grande.