Tutoriais

LangChain na BEAM

Um agente de conversa em Elixir: a chain dentro de um processo, tools que o modelo pode chamar e o streaming chegando até a tela.

3 partes Em andamento
  • elixir
  • langchain
  • llm
  • otp

A biblioteca langchain cuida do formato de mensagens de cada provedor e do loop de chamadas de ferramenta. Fora disso ela não opina, e sobram três decisões suas: onde o estado da conversa mora, o que fazer quando o modelo demora, e quem recebe os pedaços da resposta enquanto ela chega.

Para essas três o OTP já tem resposta pronta há décadas: processo, supervisor, mailbox. Esta série usa essas peças para montar um agente de conversa:

  1. A chain dentro de um processo. Por que uma conversa é um GenServer, e como criar um por usuário sem vazar processo.
  2. Tools que o modelo pode chamar. O que o modelo controla quando você entrega uma função a ele, e onde validar.
  3. O LiveView não pode esperar. Streaming token a token, e onde a chamada ao modelo tem que rodar.

O código assume {:langchain, "~> 0.9.0"} e um Phoenix por perto. Dá para ler cada parte separadamente, mas elas foram escritas na ordem em que estão.

03Partes