DocImprint Document Intelligence
Inteligência documental verificável para agentes de IA.
Documentação
Agentes de memória de documentos podem comprovar.
PDFs & URLs → respostas citadas · pacotes de evidências · atestação on-chain
Sumário
- Visão geral
- Escolha sua integração
- Veja o que você obtém
- Como funciona
- Por que não apenas OCR ou RAG?
- Casos de uso
- Instalação
- Início rápido
- Exemplos
- Recursos
- Por que DocImprint?
- Recursos nativos para agentes
- Integração com CrewAI
- Servidor MCP
- Referência da API
- Tratamento de erros
- Autenticação
- TypeScript
- Preços
- Comunidade
- Links
Visão geral
O DocImprint transforma qualquer PDF ou URL em um pacote de evidências à prova de adulteração — dados estruturados, respostas citadas por IA e uma prova criptográfica que seus agentes podem verificar de forma independente.
| Entrada | PDF ou URL |
| Saída | ev_... pacote de evidências — respostas citadas, hashes de artefatos, assinatura EIP-191 |
| Verificar | client.verify() — gratuito, sem autenticação; notarização opcional na Base L2 via EAS |
Escolha sua integração
| Caminho | Melhor para | Comece aqui |
|---|---|---|
| SDK TypeScript | Agentes Node, aplicativos tipados | Início rápido |
| SDK Python | CrewAI, scripts | Início rápido · CrewAI |
| Servidor MCP | Claude, Cursor | Servidor MCP |
| x402 USDC | Agentes autônomos, sem conta | Pagamentos x402 USDC |
Veja o que você obtém
Toda resposta inclui um ID de pacote verificável, hash de manifesto e respostas citadas vinculadas a citações exatas da fonte.
{
"bundle_id": "ev_01jqv8k3m2x",
"manifest_sha256": "a3f2c1d8e9b0476f8a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f",
"signature": {
"signature": "0x8f4e2a1b9c3d5e7f0a2b4c6d8e0f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f71c",
"signer_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0EbE",
"algorithm": "secp256k1-eip191"
},
"answer_cited": {
"value": "Section 4.2 does not permit unilateral termination without 90 days written notice.",
"citations": [
{
"quote": "Neither party may terminate this Agreement unilaterally except upon ninety (90) days prior written notice to the other party.",
"paragraphs": [42],
"page": 4,
"confidence": "high"
}
]
},
"artifacts": {
"markdown": { "sha256": "b4e5f6a79876543210fedcba9876543210fedcba9876543210fedcba9876543210ab" },
"manifest": { "sha256": "a3f2c1d8e9b0476f8a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f" }
}
}
Como funciona
flowchart LR
source[PDF or URL] --> extract[extract / qa / checkClaims]
extract --> bundle[Evidence bundle ev_...]
bundle --> artifacts[Artifacts + manifest SHA-256]
bundle --> citations[Cited answers with quotes]
artifacts --> verify[verify - free]
verify --> notarize[notarize on Base L2 - optional]
Por que não apenas OCR ou RAG?
| OCR simples | RAG vetorial | DocImprint | |
|---|---|---|---|
| Citações exatas da fonte | Não | Aproximado | Sim, com referências de parágrafo |
| Prova de adulteração | Não | Não | Manifesto SHA-256 + assinatura EIP-191 |
| Verificação independente | Não | Não | verify() sem chave de API |
| Atestação on-chain | Não | Não | EAS na Base L2 |
| Trilha de auditoria do agente | Não | Não | Proveniência + transferência (Python) |
Casos de uso
| Cenário | Método | Resultado |
|---|---|---|
| Perguntas e respostas sobre contratos | client.qa() | Resposta citada com pontuação de confiança |
| Verificação de reivindicações | client.checkClaims() | Veredito por reivindicação: supported / contradicted / not_found |
| Processamento de faturas | client.extract({ mode: 'invoice' }) | Comerciante estruturado, itens de linha, totais — tudo citado |
| Arquivo de conformidade | legal_hold: true + notarize() | Registro on-chain imutável, exclusão bloqueada |
Instalação
npm install docimprint # TypeScript / Node.js
pip install docimprint # Python REST client
pip install "docimprint[crewai]" # + 10 CrewAI tools & ProvenanceTracker
O código-fonte Python está em python/. PyPI: docimprint.
Início rápido
Obtenha uma chave de API em docimprint.com — plano gratuito disponível, sem necessidade de cartão de crédito.
TypeScript
import { DocImprintClient } from 'docimprint'
const client = new DocImprintClient({ apiKey: 'dr_live_...' })
const result = await client.extract({
source: 'https://example.com/contract.pdf',
include: ['markdown', 'summary'],
})
console.log(result.bundle_id) // ev_01j...
console.log(result.summary) // AI-generated summary
console.log(result.manifest_sha256) // tamper-evident hash
console.log(result.key_points_cited[0].citations[0].quote)
Python
from docimprint import DocImprintClient
client = DocImprintClient(api_key="dr_live_...")
result = client.extract(
url="https://example.com/contract.pdf",
include=["markdown", "summary"],
)
print(result["bundle_id"]) # ev_01j...
print(result["summary"]) # AI-generated summary
print(result["manifest_sha256"]) # tamper-evident hash
API REST (cURL)
curl -X POST https://api.docimprint.com/v1/extract \
-H "Authorization: Bearer dr_live_..." \
-H "Content-Type: application/json" \
-d '{"source": "https://example.com/contract.pdf", "include": ["markdown", "summary"]}'
Exemplos
Demos executáveis que mostram toda a história da prova — verificação de reivindicações com citações, um pacote de evidências armazenado e um recibo de ação assinado:
# Python
cd examples/python
pip install -e .
cp .env.example .env # set DOCIMPRINT_API_KEY
python -m docimprint_examples.prove_what_agent_read
# TypeScript
cd examples/typescript
npm install
cp .env.example .env # set DOCIMPRINT_API_KEY
npm run prove
Consulte examples/README.md para ambas as linguagens e o que cada artefato comprova.
Recursos
| Capacidade | Método / Modo | Descrição |
|---|---|---|
| Extrair | extract() | Pacote completo de evidências — markdown, resumo, pontos-chave citados, artefatos, manifesto SHA-256 |
| Análise de faturas | mode: 'invoice' | InvoiceResult estruturado: comerciante, data, itens de linha, subtotal, impostos, total — tudo com citações |
| Comparação de documentos | mode: 'compare' | Compare dois documentos; forneça previous_bundle_id para rastrear alterações |
| Extração estruturada | mode: 'extract-structured' | Extraia campos tipados usando um JSON Schema definido pelo chamador |
| Resumir | summarize() | Resumo em prosa + pontos-chave, cada um com referências de parágrafo citadas |
| Perguntas e respostas | qa() | Resposta a uma única pergunta com citações inline e pontuação de confiança |
| Verificação de reivindicações | checkClaims() | Veredito por reivindicação: supported / contradicted / not_found com citações de evidências |
| Traduzir | translate() | Tradução com citações da fonte para qualquer idioma |
| Descrever | describe() | Descrição por IA do conteúdo de imagens ou páginas de PDF |
| Coleções | createCollection() + searchCollection() + askCollection() | Busca semântica + perguntas e respostas RAG entre documentos em vários pacotes |
| Verificar | verify() | Verificação de integridade criptográfica — hash do manifesto, assinatura EIP-191, hashes de artefatos. Gratuito, sem autenticação |
| Notarizar | notarize() | Grava o SHA-256 do manifesto na Base L2 via EAS — atestação permanente e imutável |
| Servidor MCP | 20 ferramentas · 2 prompts | MCP nativo para Claude, Cursor e qualquer cliente compatível com MCP |
| x402 | Cabeçalho REST X-Payment | Pague por chamada em USDC — sem necessidade de conta |
Por que DocImprint?
- 🔏 Proveniência criptográfica — todo pacote é assinado com EIP-191 na criação; opcionalmente notarizado na Base L2 via EAS para uma trilha de auditoria on-chain imutável
- 🤖 Nativo para agentes por design — trabalhos assíncronos, webhooks, chaves de idempotência e retenção legal integrados a cada solicitação, não adicionados posteriormente
- 📎 Além do OCR — citações carregam citações exatas, índices de parágrafo e pontuações de confiança (
high/medium/low), não apenas texto bruto - 🛠️ 10 ferramentas CrewAI prontas —
research_tools(),legal_tools(),collection_tools()pré-agrupadas para fluxos de trabalho comuns de agentes - ⚖️ Pronto para conformidade —
legal_hold, registro de proveniência, rastreamento de transferência multiagente e notarização on-chain projetados para indústrias reguladas e jurídicas - 💳 Pagamento flexível — planos mensais de crédito ou pagamento por chamada em USDC via x402, sem necessidade de conta
Recursos nativos para agentes
O DocImprint é projetado para fluxos de trabalho de agentes autônomos, não apenas chamadas síncronas de API.
// Fire-and-forget async extraction — returns job_id immediately
const job = await client.extract({
source: 'https://example.com/large-report.pdf',
async: true,
webhook: 'https://your-agent.io/callback',
idempotency_key: 'report-2025-q4',
legal_hold: true,
})
const status = await client.getJob(job.job_id)
// { status: 'complete', bundle_id: 'ev_...', progress_pct: 100 }
// Monitor a URL for changes — get notified on diff
await client.extract({
source: 'https://example.com/terms.html',
monitor: { webhook: 'https://your-agent.io/changes', mode: 'diff' },
})
Python: proveniência e rastreamento de transferência multiagente
client.log_provenance(bundle_id="ev_...", agent_id="agent-research", action="extracted")
client.handoff(bundle_id="ev_...", from_agent="agent-research", to_agent="agent-legal", note="ready for claim check")
Integração com CrewAI
10 ferramentas específicas para agentes CrewAI, organizadas em grupos predefinidos.
from docimprint.crewai import DocImprintToolkit
toolkit = DocImprintToolkit(
api_key="dr_live_...",
collection_id="col_...", # required for collection tools
)
toolkit.research_tools() # extract, summarize, qa, check_claims
toolkit.legal_tools() # check_claims, verify, notarize
toolkit.collection_tools() # search, ask, add_to_collection
toolkit.all_tools() # all 10 tools
| Ferramenta | O que faz |
|---|---|
ExtractEvidenceTool | Pacote completo de evidências com citações e hash de manifesto |
SummarizeTool | Pontos-chave com referências de parágrafo citadas |
QATool | Resposta citada com pontuação de confiança |
CheckClaimsTool | Veredito por reivindicação: apoiada / contradita / não_encontrada |
TranslateTool | Tradução com citações da fonte |
VerifyBundleTool | Verificação de integridade criptográfica — manifesto, hash, assinatura |
NotarizeTool | Atestação EAS on-chain na Base L2 |
SearchCollectionTool | Busca vetorial semântica na coleção de documentos |
AskCollectionTool | Perguntas e respostas RAG entre documentos com fontes citadas |
AddToCollectionTool | Adiciona pacote à coleção e aciona indexação assíncrona |
ProvenanceTracker envolve todas as ferramentas para registrar automaticamente ações de agentes e transferências de pacotes.
from docimprint.crewai import DocImprintToolkit, ProvenanceTracker
tracker = ProvenanceTracker(client=toolkit.client)
trackable = toolkit.trackable_tools()
DocImprintKnowledgeSource integra-se ao sistema de conhecimento do CrewAI para agentes com recuperação aumentada.
Servidor MCP
O DocImprint expõe um servidor MCP nativo para uso com Claude, Cursor e qualquer cliente compatível com MCP.
Instalação via Smithery (um comando):
npx @smithery/cli install docimprint --client claude
Configuração manual:
{
"mcpServers": {
"docimprint": {
"type": "streamable-http",
"url": "https://api.docimprint.com/mcp",
"headers": {
"Authorization": "Bearer dr_live_..."
}
}
}
}
Transporte: streamable-http · Autenticação: token Bearer · Listado no Smithery · Listado no Glama
Ferramentas MCP
Ferramentas de URL — modo enxuto, sem armazenamento de pacote:
| Ferramenta | Descrição |
|---|---|
extract_url | Buscar URL → texto + metadados |
summarize_url | Buscar URL → resumo em prosa + pontos-chave |
qa_url | Buscar URL → resposta citada a uma pergunta específica |
translate_url | Buscar URL → conteúdo traduzido |
Ferramentas de documento — aceita PDF em base64 ou imagem:
| Ferramenta | Descrição |
|---|---|
extract_text | OCR de texto simples de PDF / imagem |
extract_tables | OCR de tabelas como Markdown de PDF / imagem |
parse_invoice | Campos estruturados de fatura: comerciante, itens de linha, totais + citações |
summarize_document | Resumo em prosa + pontos-chave citados |
check_claims | Veredito por reivindicação com citações de evidências |
extract_structured | Extrai campos tipados usando um esquema definido pelo chamador |
Pacotes e coleções:
| Ferramenta | Descrição |
|---|---|
verify_bundle | Verificação de integridade criptográfica (retorna recibo de ação assinado) |
get_bundle | Metadados do pacote e status de notarização (retorna recibo) |
notarize_bundle | Atestação EAS on-chain na Base L2 (retorna recibo) |
list_receipts | Lista recibos de ação assinados para um pacote |
verify_action_receipt | Verifica assinatura do recibo + vínculo com o manifesto |
create_collection | Cria uma coleção de documentos nomeada |
list_collections | Lista suas coleções |
add_document_to_collection | Adiciona pacote + aciona indexação assíncrona (retorna recibo) |
search_collection | Busca vetorial semântica |
ask_collection | Perguntas e respostas RAG entre documentos |
get_job_status | Consulta trabalho assíncrono (extração, indexação, lote) |
get_quota | Verifica saldo de créditos e status do plano |
Prompts guiados: claim_check_workflow · invoice_intake
Recurso: bundle://{bundle_id} — lê metadados do pacote diretamente
Referência da API
Referência tipada completa: docimprint.com/docs · OpenAPI
| Categoria | Métodos |
|---|---|
| Núcleo | extract, verify, download, notarize, deleteBundle |
| Focado | summarize, qa, translate, checkClaims, describe |
| Modos de extração | invoice, extract-structured, compare, store: false (enxuto) |
| Coleções | createCollection, listCollections, addToCollection, searchCollection, askCollection |
| Trabalhos | getJob, listJobs, getQuota |
Tratamento de erros
import { DocImprintClient, DocImprintError } from 'docimprint'
try {
const result = await client.extract({ source: 'https://example.com/doc.pdf' })
} catch (err) {
if (err instanceof DocImprintError) {
console.error(err.message) // human-readable error
console.error(err.status) // HTTP status code
console.error(err.requestId) // x-request-id for support
}
}
Autenticação
Chave de API
Créditos mensais via Stripe — cadastre-se em docimprint.com, plano gratuito disponível:
const client = new DocImprintClient({ apiKey: 'dr_live_...' })
Pagamentos x402 USDC
O DocImprint suporta o padrão aberto x402 — pague por chamada em USDC na Base, diretamente de qualquer carteira EVM. Sem conta. Sem cadastro. Sem chave de API. Seu agente pode chamar a API autonomamente sem credenciais gerenciadas por humanos.
A API é nativa x402: retorna uma resposta padrão 402 Payment Required com detalhes de pagamento on-chain, seu cliente liquida em USDC e a solicitação é concluída automaticamente. A partir de $0,01 / chamada.
Com @x402/fetch (tratamento automático de pagamento):
import { wrapFetchWithPayment } from '@x402/fetch'
import { createWalletClient, http } from 'viem'
import { privateKeyToAccount } from 'viem/accounts'
import { base } from 'viem/chains'
const account = privateKeyToAccount('0x...')
const wallet = createWalletClient({ account, chain: base, transport: http() })
const fetchWithPayment = wrapFetchWithPayment(fetch, wallet)
const res = await fetchWithPayment('https://api.docimprint.com/v1/summarize', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ source: 'https://example.com/report.pdf' }),
})
const data = await res.json()
Identidade em rotas de proprietário: Para operações GET/DELETE que exigem propriedade (por exemplo, recuperar seu pacote), envie o cabeçalho payment-signature de uma resposta de pagamento anterior para que a API possa verificar seu endereço de carteira sem um login separado.
TypeScript
Todos os tipos de requisição e resposta são exportados:
import type {
ExtractRequest,
ExtractResponse,
Citation,
CitedField,
InvoiceResult,
Job,
Collection,
SearchResult,
} from 'docimprint'
Preços
Camada gratuita disponível — sem necessidade de cartão de crédito. Planos de crédito mensais via Stripe, ou pague por chamada em USDC via x402. Ver preços →
Comunidade
Perguntas, integrações e anúncios: Discussões no GitHub.
Links
- Documentação
- Referência da API
- Exemplos em Python — comprove o que um agente leu
- Exemplos em TypeScript — mesma demonstração em Node/TS
- Pacotes de evidência
- Pagamentos x402
- Preços