Langflow Tutorial: Building LLM Applications Visually

# Tutorial Langflow: Membangun Aplikasi LLM Secara Visual Langflow adalah platform open-source yang memungkinkan Anda membangun aplikasi berbasis Large Language Model (LLM) secara visual menggunakan...

By Ruby Abdullah · · tutorial
LangflowLLMRAGVisual AI BuilderDataStax

Langflow Tutorial: Building LLM Applications Visually

Langflow is an open-source platform that lets you build Large Language Model (LLM) applications visually using a drag-and-drop interface. Developed by DataStax, Langflow simplifies the process of creating complex AI pipelines without having to write extensive code. In this tutorial, we will learn how to install, configure, and build various AI applications using Langflow, from simple chatbots to more sophisticated RAG (Retrieval-Augmented Generation) pipelines.

Why Langflow?

Building LLM applications often requires writing complex code to connect various components: language models, vector stores, prompt templates, memory, and more. Langflow solves this problem by providing a visual interface where you simply drag and connect these components like assembling a flowchart.

Key advantages of Langflow:

  • Visual Builder: Drag-and-drop components without writing boilerplate code
  • Wide Integration: Supports OpenAI, Anthropic, Google, Ollama, HuggingFace, and dozens of other providers
  • Export to Python: Visually created flows can be exported as Python code
  • Automatic API: Every flow automatically gets a REST API endpoint
  • Custom Components: You can create your own components using Python
  • Open Source: Free and can be deployed on your own infrastructure

Installation

Prerequisites

Before installing Langflow, make sure your system meets the following requirements:

  • Python 3.10 or later
  • pip (Python package manager)
  • Minimum 4GB RAM (8GB recommended for complex flows)

Installation via pip

The easiest way to install Langflow is using pip:

pip install langflow

For the latest version directly from the repository:

pip install langflow --pre

Installation via Docker

If you prefer using Docker:

docker pull langflowai/langflow:latest

docker run -d -p 7860:7860 langflowai/langflow:latest

For persistent storage so data is preserved across container restarts:

docker run -d \

-p 7860:7860 \

-v langflowdata:/app/langflow \

langflowai/langflow:latest

Installation via Docker Compose

For a more complete setup with PostgreSQL database:

# docker-compose.yml

version: "3.8"

services:

langflow:

image: langflowai/langflow:latest

ports:

  • "7860:7860"
environment:

  • LANGFLOWDATABASEURL=postgresql://langflow:langflow@db:5432/langflow
  • LANGFLOWAUTOLOGIN=true
dependson:

  • db
volumes:

  • langflowdata:/app/langflow

db:

image: postgres:16

environment:

POSTGRESUSER: langflow

POSTGRESPASSWORD: langflow

POSTGRESDB: langflow

volumes:

  • postgresdata:/var/lib/postgresql/data

volumes:

langflowdata:

postgresdata:

Run with:

docker compose up -d

Running Langflow

After installation, start Langflow:

langflow run

By default, Langflow runs at http://localhost:7860. You can change the port with:

langflow run --port 3000

Open your browser and navigate to the URL. You will see the Langflow interface ready to use.

Core Concepts

Before building, it is important to understand the core concepts in Langflow:

Components (Nodes)

Components are the main building blocks in Langflow. Each component represents a single function or service, for example:

  • LLM Models: OpenAI, Anthropic Claude, Google Gemini, Ollama
  • Prompts: Prompt templates with dynamic variables
  • Document Loaders: File readers for PDF, CSV, TXT, and other formats
  • Vector Stores: Chroma, Pinecone, Qdrant, FAISS
  • Embeddings: OpenAI Embeddings, HuggingFace Embeddings
  • Memory: Conversation buffer, summary memory
  • Tools: Web search, calculator, custom tools
  • Output: Chat output, text output

Edges (Connections)

Edges are lines connecting the output of one component to the input of another. These connections determine the data flow in your pipeline.

Flows

A flow is the entire pipeline consisting of connected components. A single flow represents one complete AI application.

Basic Usage: Building a Simple Chatbot

Let us start by creating a simple chatbot using OpenAI GPT.

Step 1: Create a New Flow

  • Open Langflow in your browser
  • Click New Flow or Blank Flow
  • You will enter an empty canvas editor
  • Step 2: Add Components

    From the left sidebar, search and drag the following components onto the canvas:

  • Chat Input - from the Inputs category
  • OpenAI - from the Models category
  • Chat Output - from the Outputs category
  • Prompt - from the Prompts category
  • Step 3: Configure Components

    Prompt Component:

    Click on the Prompt component and set the template:

    You are a helpful AI assistant. Answer the user's question clearly and concisely.
    
    

    User: {usermessage}

    OpenAI Component:
    • Model: gpt-4o-mini (or another model of your choice)
    • API Key: Enter your OpenAI API key
    • Temperature: 0.7

    Step 4: Connect Components

    Connect the components together:

  • Chat Input output → Prompt input (usermessage)
  • Prompt output → OpenAI input (prompt)
  • OpenAI output → Chat Output input
  • Step 5: Test the Chatbot

    Click the Playground button in the bottom right corner. Type a message and see the response from your chatbot.

    Building a RAG Pipeline (Retrieval-Augmented Generation)

    RAG is a technique that combines document retrieval with text generation. Here is how to build it in Langflow.

    Step 1: Prepare Components

    Drag the following components onto the canvas:

  • File (Document Loader) - for uploading documents
  • Recursive Character Text Splitter - for splitting documents
  • OpenAI Embeddings - for creating vector representations
  • Chroma (Vector Store) - for storing vectors
  • Chat Input - for user input
  • Prompt - for RAG prompt template
  • OpenAI - LLM model
  • Chat Output - for output
  • Step 2: Configure the Ingestion Pipeline

    Connect the pipeline for document processing:

  • File → Text Splitter (documents)
  • Text Splitter → Chroma (documents)
  • OpenAI Embeddings → Chroma (embedding)
  • Text Splitter configuration:

    • Chunk Size: 1000
    • Chunk Overlap: 200

    Step 3: Configure the Query Pipeline

    Create a prompt template for RAG:

    Answer the question based only on the following context:
    
    

    Context:

    {context}

    Question: {question}

    If the answer is not found in the context, say "I don't have enough information to answer that question."

    Connect the query pipeline:

  • Chat Input → Chroma (search query)
  • Chat Input → Prompt (question)
  • Chroma (search results) → Prompt (context)
  • Prompt → OpenAI → Chat Output
  • Step 4: Test the RAG Pipeline

  • Upload a document through the File component
  • Wait for the indexing process to complete
  • Open the Playground and ask questions about the document content
  • Advanced Usage

    Creating Custom Components

    Langflow allows you to create your own components using Python. Here is an example custom component for web scraping:

    from langflow.custom import Component
    

    from langflow.io import MessageTextInput, Output

    from langflow.schema import Data

    import requests

    from bs4 import BeautifulSoup

    class WebScraperComponent(Component):

    displayname = "Web Scraper"

    description = "Scrape content from a web page"

    icon = "globe"

    inputs = [

    MessageTextInput(

    name="url",

    displayname="URL",

    info="The URL to scrape",

    required=True,

    ),

    ]

    outputs = [

    Output(displayname="Scraped Content", name="content", method="scrape"),

    ]

    def scrape(self) -> Data:

    url = self.url

    response = requests.get(url, timeout=10)

    soup = BeautifulSoup(response.text, "html.parser")

    for script in soup(["script", "style"]):

    script.decompose()

    text = soup.gettext(separator="\n", strip=True)

    return Data(text=text)

    To use a custom component:

  • Click the + icon in the sidebar
  • Select Custom Component
  • Paste the Python code above
  • The component will appear on the canvas and can be connected to other components
  • Using the Langflow API

    Every flow you create automatically gets a REST API endpoint. This makes it easy to integrate with other applications.

    Getting the API Endpoint:
  • Click the API button in the top right corner of the flow
  • Copy the endpoint URL and example request
  • Example API usage with Python:
    import requests
    
    

    LANGFLOWURL = "http://localhost:7860"

    FLOWID = "your-flow-id-here"

    def queryflow(message: str) -> str:

    apiurl = f"{LANGFLOWURL}/api/v1/run/{FLOWID}"

    payload = {

    "inputvalue": message,

    "outputtype": "chat",

    "inputtype": "chat",

    }

    response = requests.post(apiurl, json=payload)

    result = response.json()

    output = result["outputs"][0]["outputs"][0]["results"]["message"]["text"]

    return output

    answer = queryflow("What is machine learning?")

    print(answer)

    Example API usage with curl:
    curl -X POST "http://localhost:7860/api/v1/run/YOURFLOWID" \
    

    -H "Content-Type: application/json" \

    -d '{

    "inputvalue": "What is machine learning?",

    "outputtype": "chat",

    "inputtype": "chat"

    }'

    Multi-Agent Flow

    Langflow supports creating multi-agent systems where multiple agents work together to solve complex tasks.

    Example: Research Agent + Writer Agent
  • Research Agent: Uses web search tools to gather information
  • Writer Agent: Uses research results to write an article
  • Required components:

    • 2x Agent component
    • Tavily Search tool (for research)
    • OpenAI model (for both agents)
    • Sequential Task (for execution ordering)

    Research Agent configuration:

    • System Prompt: "You are a research assistant. Search the web for the given topic and provide a comprehensive summary with key facts and sources."
    • Tools: Tavily Search

    Writer Agent configuration:

    • System Prompt: "You are a professional writer. Based on the research provided, write a well-structured article."
    • Input: Output from Research Agent

    Using Ollama (Local Models)

    To run AI models locally without API costs:

  • Install Ollama on your computer
  • Pull your desired model: ollama pull llama3.1
  • In Langflow, use the Ollama component instead of OpenAI
  • Set the base URL to http://localhost:11434
  • # Verify Ollama is running
    

    import requests

    response = requests.get("http://localhost:11434/api/tags")

    models = response.json()

    print("Available models:", [m["name"] for m in models["models"]])

    Exporting Flows to Python

    Langflow allows you to export flows as Python code for deployment or further modification:

  • Open the flow you want to export
  • Click the ... menu → Export
  • Select Python format
  • The Python file will be downloaded
  • Example exported code:

    from langflow.load import runflowfromjson
    
    

    result = runflowfromjson(

    flow="path/to/exportedflow.json",

    inputvalue="Hello, how are you?",

    fallbacktoenvvars=True,

    )

    print(result[0].outputs[0].results["message"].text)

    Tweaks and Overrides

    You can modify component parameters at runtime using tweaks:

    import requests
    
    

    LANGFLOWURL = "http://localhost:7860"

    FLOWID = "your-flow-id"

    payload = {

    "inputvalue": "Explain quantum computing",

    "outputtype": "chat",

    "inputtype": "chat",

    "tweaks": {

    "OpenAI-xxxxx": {

    "modelname": "gpt-4o",

    "temperature": 0.3,

    },

    "Prompt-xxxxx": {

    "template": "Answer in simple terms: {usermessage}",

    },

    },

    }

    response = requests.post(

    f"{LANGFLOWURL}/api/v1/run/{FLOWID}",

    json=payload,

    )

    print(response.json())

    Deploying to Production

    Deploy to Cloud using DataStax Langflow

    DataStax provides a hosted version of Langflow that is ready to use:

  • Create an account at DataStax Langflow
  • Import your flow
  • Get a production-ready API endpoint
  • Self-Hosted Deployment with Nginx

    For deploying on your own server:

    # /etc/nginx/sites-available/langflow
    

    server {

    listen 80;

    servername langflow.yourdomain.com;

    location / {

    proxypass http://127.0.0.1:7860;

    proxyhttpversion 1.1;

    proxysetheader Upgrade $httpupgrade;

    proxysetheader Connection "upgrade";

    proxysetheader Host $host;

    proxysetheader X-Real-IP $remoteaddr;

    proxyreadtimeout 300s;

    proxysendtimeout 300s;

    }

    }

    Environment Variables

    Configure Langflow through environment variables:

    # Database
    

    export LANGFLOWDATABASEURL="postgresql://user:pass@host:5432/langflow"

    Security

    export LANGFLOWAUTOLOGIN=false

    export LANGFLOWSUPERUSER=admin

    export LANGFLOWSUPERUSERPASSWORD=your-secure-password

    Performance

    export LANGFLOWWORKERS=4

    export LANGFLOWMAXFILESIZEUPLOAD=100

    API Keys (so you don't need to input them manually in the UI)

    export OPENAIAPIKEY="sk-..."

    export ANTHROPICAPI_KEY="sk-ant-..."

    Best Practices

    1. Flow Organization

    • Give descriptive names to every flow and component
    • Group related components visually
    • Use the Note feature to document complex logic
    • Save completed flows as templates for reuse

    2. API Key Management

    • Never hardcode API keys inside flows
    • Use Global Variables in Langflow to store API keys
    • For production, use environment variables
    • Rotate API keys regularly

    3. Performance Optimization

    • Use appropriate chunk sizes for your documents (typically 500-1500 characters)
    • Choose the right embedding model based on your needs and budget
    • Enable caching to reduce redundant API calls
    • Monitor token usage to control costs

    4. Error Handling

    • Always provide fallback responses if the LLM fails to respond
    • Use reasonable timeouts for API calls
    • Log errors for debugging
    • Test flows thoroughly before deploying to production

    5. Security

    • Enable authentication for production deployments
    • Restrict API access using API keys
    • Validate user input before sending to the LLM
    • Never expose internal error messages to end users

    Troubleshooting

    Common Issues

    Flow does not run:
    • Make sure all components are connected correctly
    • Check if API keys are filled in
    • Check the logs in the terminal where Langflow is running

    Slow response:
    • Reduce unnecessary components
    • Use smaller models for simple tasks
    • Check your internet connection

    "Module not found" error:
    • Install required dependencies: pip install langflow[all]
    • Restart Langflow after installation

    Database error:
    • For SQLite (default), make sure the directory has write permissions
    • For PostgreSQL, verify the connection string

    Conclusion

    Langflow is a tool that simplifies LLM application development with a visual approach. With Langflow, you can build complex AI pipelines without writing extensive code, while still having the flexibility to create custom components and export flows as Python code.

    Key takeaways from this tutorial:

    • Langflow provides a drag-and-drop interface for building LLM applications
    • It supports various AI providers including OpenAI, Anthropic, Google, and local models via Ollama
    • RAG pipelines can be built visually with document loaders, text splitters, vector stores, and LLMs
    • Custom components allow you to extend Langflow functionality
    • Every flow automatically gets a REST API endpoint for integration
    • Multi-agent systems can be built using Agent and Sequential Task components
    • Deployment can be done self-hosted or using the DataStax cloud service

    Langflow is ideal for rapid prototyping, building chatbots, RAG systems, agentic pipelines, and various other AI applications. Start with a simple flow, then increase complexity as your project requires.

    Related Articles

    DSPy: Stop Hand-Tuning Prompts, Let the Compiler Optimize Them

    DSPy: Berhenti Ngoprek Prompt Manual, Biarkan Compiler yang Optimasi Halo temen-temen, kali ini aku mau ngenalin satu li...

    RAGFlow: Build a RAG Engine That Actually Understands Documents, Complete With Citations

    RAGFlow: Bikin RAG Engine yang Ngerti Dokumen Beneran, Lengkap dengan Sitasi Halo temen-temen, balik lagi sama aku. Kala...

    Complete Dify Tutorial: Open-Source Platform for Building AI Applications

    Tutorial Lengkap Dify: Platform Open-Source untuk Membangun Aplikasi AI Dify adalah platform open-source yang memungkink...

    LangChain Tutorial: The Most Popular Framework for Building LLM Applications

    Tutorial LangChain: Framework Paling Populer untuk Membangun Aplikasi LLM LangChain adalah framework open-source yang di...