🎉 75% of content is free forever — Unlock Premium from $10/mo →
CW
NEWSLIVESearch All Content
đŸ’ŧ Servicesâ„šī¸ Aboutâœ‰ī¸ ContactView Pricing Plansfrom $10

Deployment Guide - Put Your Agent Online

đŸŸĸ Free Lesson

Advertisement


Deployment Options

MethodDifficultyCostBest For
Streamlit CloudEasyFreeDemos, prototypes
RailwayEasy$5/moSmall apps
RenderEasyFree tierAPIs
AWS/GCPHardVariesProduction
DockerMediumVariesAnywhere

Option 1: Streamlit Cloud (Easiest)

Step 1: Create Your App

python
# app.py
import streamlit as st
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_agent

@tool
def search(query: str) -> str:
    """Search the web"""
    from duckduckgo_search import DDGS
    with DDGS() as ddgs:
        results = list(ddgs.text(query, max_results=3))
    return "\n".join([r["body"] for r in results])

st.title("AI Agent")

if "agent" not in st.session_state:
    llm = ChatOpenAI(model="gpt-4o")
    st.session_state.agent = create_react_agent(model=llm, tools=[search])

if prompt := st.chat_input("Ask me anything"):
    result = st.session_state.agent.invoke({
        "messages": [{"role": "user", "content": prompt}]
    })
    st.write(result["messages"][-1].content)

Step 2: Create requirements.txt

Architecture Diagram
streamlit
langchain
langchain-openai
duckduckgo-search

Step 3: Deploy

  1. Push to GitHub
  2. Go to share.streamlit.io
  3. Connect your GitHub repo
  4. Click "Deploy"

Done! Your agent is live.


Option 2: Railway (Simple API)

Step 1: Create FastAPI App

python
# main.py
from fastapi import FastAPI
from pydantic import BaseModel
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_agent

app = FastAPI()

@tool
def search(query: str) -> str:
    """Search the web"""
    return f"Results for: {query}"

llm = ChatOpenAI(model="gpt-4o")
agent = create_react_agent(model=llm, tools=[search])

class Query(BaseModel):
    message: str

@app.post("/chat")
def chat(query: Query):
    result = agent.invoke({
        "messages": [{"role": "user", "content": query.message}]
    })
    return {"response": result["messages"][-1].content}

Step 2: Create railway.json

{
  "build": {
    "builder": "nixpacks"
  },
  "deploy": {
    "startCommand": "uvicorn main:app --host 0.0.0.0 --port $PORT"
  }
}

Step 3: Deploy

railway init
railway up

Option 3: Docker (Anywhere)

Create Dockerfile

FROM python:3.11-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Build and Run

docker build -t my-agent .
docker run -p 8000:8000 my-agent

Environment Variables

Never hardcode API keys:

python
import os
from langchain_openai import ChatOpenAI

# Get key from environment
api_key = os.environ.get("OPENAI_API_KEY")
llm = ChatOpenAI(model="gpt-4o", api_key=api_key)

Set in your deployment platform's settings.


Related Topics

TopicLink
Production AppsBest Practices
LLM ServingServing Architectures
MonitoringObservability
SecurityBest Practices

What to Learn Next

-> Final Project

Build something real.

-> Advanced Agents

Level up your skills.

-> Production Apps

Build for real users.

—
☆☆☆☆☆
0 ratings

Rate & Feedback

Continue Learning

Suggested next tutorials based on this topic

Need Expert AI Agents Beginner Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement