🌊 Langflow¢

Visual IDE on LangChain: drag a PDF loader, splitter, embeddings, prompt, and LLM into a graph, then chat in Langflow’s UI. It does not read Papers RAG indexes under .data/indexes/.

        flowchart LR
  subgraph rag [Papers RAG]
    PDFs["assets/pdf/papers"] --> Ingest["papers-ingest"]
    Ingest --> Chroma[".data/indexes/{llamaindex,langchain}"]
    Chroma --> App["poe run-papers-rag"]
  end
  subgraph studio [Langflow]
    SamePDFs["assets/pdf/papers"] --> LF["poe run-langflow :7860"]
    LF --> Graph["graph in the studio"]
  end
    

Papers RAG

Langflow

Role

In-process retrieve-and-generate

Visual flow editor + HTTP server

Launch

poe run-papers-rag

poe run-langflow

Index

papers-ingest β†’ Chroma

Authored in the studio

UI

Streamlit chat

http://127.0.0.1:7860

Citations

Citation objects from chunks

Depends on the graph

LlamaIndex and LangChain share a loader, embed model, chunk size, and isolated Chroma dirs. Langflow stores data under .data/langflow/ and is not installed in the workspace venv (uv tool run --from langflow).

πŸš€ LaunchΒΆ

poe run-langflow

Open http://127.0.0.1:7860. Point file loaders at assets/pdf/papers. OPENAI_API_KEY comes from the repo-root .env. First start downloads Langflow and can take a few minutes.

Docker:

docker compose -f dockers/compose/local-langflow.yml up

In the container, PDFs are at /app/papers.