IA e aplicações · Guia Scraft

LangGraph em Python: organize um fluxo com estado

Um fluxo pode ter várias etapas, decisões e informações compartilhadas. LangGraph representa essas etapas como nós conectados em um grafo. Para começar, separe o mecanismo de orquestração da chamada a um modelo: um exemplo determinístico ajuda a entender o estado sem depender de uma API de IA.

Antes de começar

Conheça funções, dicionários e tipos. Use Python 3.10 ou superior em um ambiente virtual com langgraph. O exemplo não usa chave nem serviço de IA.

O que você vai praticar

  • Representar os dados de um fluxo com TypedDict e StateGraph.
  • Conectar um nó entre START e END, compilar o grafo e invocá-lo.
  • Distinguir a orquestração do fluxo de uma chamada a um modelo de IA.

Estado, nós e transições

O estado descreve os dados que percorrem o fluxo. Um nó recebe esse estado, executa uma operação e devolve uma atualização. Uma aresta determina qual etapa vem depois. START e END indicam os limites do fluxo; decisões mais complexas podem escolher o próximo nó por meio de condições.

TypedDict ajuda a expressar a estrutura esperada para ferramentas de tipagem, mas não valida dados externos automaticamente em tempo de execução. Valide entradas na fronteira da aplicação. O exemplo abaixo aceita um nome e acrescenta uma mensagem ao estado.

Execute um grafo sem modelo de IA

Em um ambiente virtual local, instale langgraph com python -m pip install langgraph. Salve o exemplo em um arquivo Python e execute-o. Não há chave de modelo nem chamada externa neste grafo: a função de saudação é Python comum.

Depois de registrar o nó e as arestas, compile cria o objeto executável. invoke recebe o estado inicial e retorna o resultado do fluxo. Essa estrutura é pequena de propósito: primeiro confirme o caminho feliz, depois acrescente outra etapa e teste o que muda no estado.

from typing import TypedDict
from langgraph.graph import StateGraph, START, END

class Estado(TypedDict):
    nome: str
    mensagem: str

def saudar(estado: Estado):
    return {"mensagem": f"Olá, {estado['nome']}!"}

construtor = StateGraph(Estado)
construtor.add_node("saudar", saudar)
construtor.add_edge(START, "saudar")
construtor.add_edge("saudar", END)
grafo = construtor.compile()
resultado = grafo.invoke({"nome": "Ana", "mensagem": ""})
print(resultado["mensagem"])

Resultado esperado

Olá, Ana!

Quando acrescentar IA, persistência e decisões

Use uma nova etapa quando houver uma responsabilidade clara, como classificar uma entrada ou conferir um resultado. Quando vários nós atualizam uma coleção, defina como combinar as atualizações; nem sempre substituir o valor anterior é o comportamento desejado.

Antes de integrar um modelo, defina quais dados podem sair da aplicação, o limite de execução e o comportamento após falha. Persistência e retomada precisam ser configuradas para o caso de uso. Teste o fluxo com respostas determinísticas antes de avaliar a variabilidade de uma IA.

Para chegar a esse ponto com base, pratique funções, dicionários, tipos e testes. A Scraft apresenta Python como porta de entrada para programação e conecta esses fundamentos à construção de aplicações mais amplas.

Do conceito ao código

Sua vez de praticar

Acrescente um nó antes de saudar que remova espaços no início e no fim do nome. Conecte START à normalização, depois à saudação e finalmente a END.

Confira estes casos

  • Nome " Ana ": mensagem "Olá, Ana!".
  • Nome "Bia": mensagem "Olá, Bia!".
  • A normalização devolve uma atualização do nome no estado.
Preciso de uma dica

Use strip no nó de normalização e altere as arestas para que a saudação receba o nome já tratado.

Continue pela documentação oficial

Ler este guia em texto