Tutorial: Criando fluxos de trabalho com Docling e Langchain

Aprenda a integrar o Docling em seus projetos usando Langchain para otimizar o processamento e a análise de documentos.

Explore o mundo da automação de documentos com o Docling, uma ferramenta open-source desenvolvida pela IBM que simplifica o processamento de documentos em múltiplos formatos, como PDF e DOCX. Neste tutorial, você aprenderá a integrar o Docling com o Langchain para otimizar a extração e a análise de dados, criando fluxos de trabalho eficientes que atendem a diversas necessidades em projetos de tecnologia e dados.

Com uma configuração simples, você poderá aproveitar recursos avançados para transformar documentos de forma rápida e precisa. Neste post, você verá como definir o ambiente, carregar documentos e personalizar seus fluxos de trabalho, utilizando a flexibilidade dessas ferramentas poderosas para aprimorar seu desempenho em projetos de análise de dados.

O que é o Docling?

Docling é uma ferramenta open-source desenvolvida pela IBM que tem como objetivo facilitar o processamento de documentos. Com a crescente demanda por automação e transformação digital, o Docling se destaca ao permitir que usuários convertam e extraiam dados de documentos de maneira rápida e eficiente, suportando formatos como PDF, DOCX, XLSX e imagens.

O Docling tem facilitado muito a extração de dados de documentos em várias frentes

Recursos Avançados

Compreensão de PDF

O Docling possui recursos avançados para a análise de documentos em PDF, permitindo compreender o layout, a ordem de leitura e a estrutura de tabelas. Essa funcionalidade é particularmente valiosa em setores como o financeiro, onde a precisão na extração de dados é crucial.

Integrações com inteligência artificial

Uma das grandes vantagens do Docling é a sua capacidade de integração com outras ferramentas de [inteligência artificial](https://www.datahackers.news/p/intelig-ncia-artificial-generativa-exemplos-pr-ticos-em-diversas-ind-strias), como o Langchain. Essa flexibilidade amplifica as possibilidades de uso do Docling em projetos que vão desde a simples extração de texto até o tratamento e análise complexa de dados.

Formatos de Exportação

Docling também permite que os usuários exportem documentos em formatos como Markdown, HTML e JSON, ideais para alimentar modelos de aprendizado de máquina e outros sistemas. Isso significa que a utilização dos dados extraídos pode ser facilmente adaptada a diferentes aplicações.

Além de suas capacidades robustas, o Docling destaca-se pela facilidade de uso e por ser open-source, oferecendo a oportunidade para desenvolvedores e cientistas de dados contribuírem para uma ferramenta que pode impactar significativamente a maneira como interagimos com documentos e dados.

Como usar o Docling em projetos?

Integrar o Docling em seus projetos pode otimizar o processamento e a análise de documentos. A seguir, apresentamos um passo a passo sobre como utilizar essa ferramenta da IBM.

1. Instalação do Docling

Antes de começar, instale o Docling em seu ambiente de desenvolvimento utilizando o gerenciador de pacotes do Python, o pip:

pip install docling

Esta ação instalará a biblioteca e todas as dependências necessárias para seu funcionamento.

2. Importação e Configuração

Após a instalação, o próximo passo é importar o Docling em seu projeto:

import docling

Depois de importá-lo, configure os parâmetros de uso conforme necessário.

3. Leitura de Documentos

O Docling permite a leitura de diversos formatos de documentos, como PDFs e DOCX, utilizando a função de leitura integrada:

document = docling.read('caminho/do/seu/documento.pdf')

Isso carrega o documento, permitindo que você comece a extrair informações dele.

4. Extração de Dados

Uma das principais funcionalidades do Docling é a extração de dados relevantes do conteúdo dos documentos. Para extrair texto, use:

texto_extraido = docling.extract_text(document)
print(texto_extraido)

5. Processamento de Dados

Após extrair os dados, o próximo passo é processá-los. O Docling se integra facilmente com bibliotecas do Python, como pandas, permitindo uma análise mais profunda:

import pandas as pd
dados = docling.extract_table(document)
df = pd.DataFrame(dados)

6. Pós-Processamento

Depois de extrair e processar seus dados, você pode precisar limpá-los ou transformá-los para que estejam prontos para análise. O Docling fornece funcionalidades que auxiliam nesse processo, garantindo melhor qualidade nos resultados.

Quais Formatos de Documento o Docling Suporta?

O Docling facilita a extração e a conversão de dados de diversos formatos de arquivo, incluindo:

- PDF: Suporte avançado a PDFs, permitindo compreensão do layout e estrutura de tabelas.

- DOCX e DOC: Integração fácil com textos formatados.

- XLSX e XLS: Suporte a documentos de planilhas, reforçando a análise de dados tabulares.

- HTML: Extração de dados diretamente de páginas web.

- Imagens: Suporte a formatos como JPEG e PNG, para análise de dados visuais.

Esses formatos permitem que o Docling sirva como uma solução versátil para várias aplicações em manipulação de documentos.

Como criar fluxos de trabalho com Langchain?

Integrar o Docling ao Langchain permite criar fluxos de trabalho robustos e flexíveis para processamento de documentos. A seguir, apresentamos um guia passo a passo sobre como estruturar esses fluxos de trabalho.

1. Definindo o Ambiente

Certifique-se de que seu ambiente esteja corretamente configurado. Utilize o Conda para criar e ativar um novo ambiente:

$ conda create -n docling_langchain python=3.9 -y
$ conda activate docling_langchain

Em seguida, instale as bibliotecas necessárias:

$ pip install docling langchain

2. Inicializando as Ferramentas

Depois de preparar o ambiente, inicie as ferramentas que utilizará em seu fluxo de trabalho. Por exemplo:

from docling import DoclingAPI
docling_api = DoclingAPI(api_key='YOUR_API_KEY')

Certifique-se de substituir 'YOUR_API_KEY' pela chave de API real.

3. Criando um Fluxo de Trabalho Básico

Defina um fluxo de trabalho básico usando Docling para conversão e extração de dados e Langchain para encadeamento da lógica de decisão:

from langchain import PromptTemplate, OpenAI
llm = OpenAI(api_key='YOUR_OPENAI_API_KEY')
prompt_template = PromptTemplate(template="Extraia as informações relevantes do seguinte documento: {documento}")
def fluxo_trabalho(documento):
    dados_extraidos = docling_api.extract_data(documento)
    resposta = llm.invoke(prompt_template.fill(documento=dados_extraidos))
    return resposta

4. Personalizando o Fluxo de Trabalho

A flexibilidade do Langchain permite personalizar seu fluxo de trabalho conforme necessário:

def fluxo_trabalho_personalizado(documento):
     dados_extraidos = docling_api.extract_data(documento)
     if "condição específica" in dados_extraidos:
         resposta = llm.invoke(prompt_template.fill(documento=dados_extraidos))
     else:
         resposta = "Nenhuma ação necessária."
     return resposta

5. Testando o Fluxo de Trabalho

Execute seu fluxo de trabalho utilizando um documento de teste:

documento_teste = "Aqui está o texto do documento que você quer analisar."
resultado = fluxo_trabalho_personalizado(documento_teste)
print(resultado)

Esse exemplo demonstra a criação e teste de um fluxo de trabalho simples utilizando Docling e Langchain.

Como Integrar Docling e Langchain

A integração entre Docling e Langchain permite uma abordagem mais eficiente para o processamento de documentos. Aqui estão os passos para configurar essa integração.

Passo 1: Instalação

Instale a biblioteca de integração:

pip install langchain-docling

Passo 2: Inicialização do DoclingLoader

Com a biblioteca instalada, inicialize o DoclingLoader para carregar e processar documentos:

from langchain_docling import DoclingLoader
file_path = "link_ou_caminho_do_documento"
loader = DoclingLoader(file_path=file_path)

Passo 3: Carregamento dos Documentos

Carregue os documentos para processamento:

docs = loader.load()

Passo 4: Escolha do Modo de Exportação

O DoclingLoader oferece dois modos de exportação:

- ExportType.DOC_CHUNKS: Divide o documento em partes, facilitando a captura de cada segmento.

- ExportType.MARKDOWN: Captura o documento como um único arquivo Markdown.

Especifique o modo de exportação ao inicializar o DoclingLoader:

from langchain_docling import ExportType
loader = DoclingLoader(file_path=file_path, export_type=ExportType.DOC_CHUNKS)

Passo 5: Incorporando ao Fluxo de Trabalho do Langchain

Os documentos carregados podem ser integrados diretamente a componentes do Langchain, permitindo construir pipelines mais sofisticados:

from langchain.chains import create_retrieval_chain
retriever = ...  # Implementação do retriever
question_answer_chain = create_retrieval_chain(retriever, ...)

Essa integração permite um processamento eficiente em projetos com grandes volumes de documentos, economizando tempo e melhorando a precisão nas respostas geradas.

Concluindo

Ao final deste tutorial, você aprendeu como integrar o Docling com o Langchain para otimizar o processamento e a análise de documentos. Com passos simples, você passou pela instalação, configuração e criação de fluxos de trabalho que podem transformar a forma como você lida com documentos em seus projetos de dados.

Além disso, a flexibilidade dessas ferramentas permite personalizar as soluções de acordo com suas necessidades específicas, tornando-a uma escolha valiosa para desenvolvedores e profissionais de dados. Aproveite essas funcionalidades para elevar seus projetos a um novo patamar de eficiência e precisão!