Skip to content
LangChain: Schnell Apps mit der OpenAI API bauen

Entfessle das Potenzial von LangChain in der modernen KI-Anwendungsentwicklung

Updated on

LangChain hat sich seit 2023 dramatisch weiterentwickelt. Was als einfacher Wrapper rund um LLMs begann, ist heute ein vollständiges Framework für KI-Anwendungen, das Folgendes unterstützt:

  • LCEL (LangChain Expression Language)
  • Runnables
  • LangGraph (zustandsbehaftete, robuste Agent-Workflows)
  • OpenAI Function Calling
  • Tool Calling
  • Fortgeschrittene Speichersysteme (Memory)
  • Moderne Dokumenten-Pipelines für RAG

Dieser aktualisierte Leitfaden vermittelt dir ein 2025-taugliches Verständnis von LangChain und zeigt, wie du mit der neuesten OpenAI API echte LLM-Anwendungen baust.

📚

Grundkonzepte für LangChain

🌟 LangChain heute: Ein modernes Framework für KI-Apps

Moderne LLM-Anwendungen benötigen weit mehr als reine Textgenerierung:

  • Tools
  • Memory
  • Dokumenten-Retrieval
  • Zustandsverwaltung (State Management)
  • Mehrschritt-Workflows
  • Fehlermanagement
  • Determinismus

LangChain stellt diese Bausteine über Runnables, LCEL und LangGraph bereit und ermöglicht es Entwicklern, verlässliche Agenten- und Workflow-Systeme zu bauen.


🔗 Sequenzielle Workflows mit LCEL (aktualisiert)

LCEL ermöglicht es dir, LLM-Pipelines wie Funktionen zu komponieren:

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
 
model = ChatOpenAI(model="gpt-4.1")
 
prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant."),
    ("user", "{question}")
])
 
chain = prompt | model
chain.invoke({"question": "Explain LangChain LCEL in one paragraph."})

Damit werden ältere „SequentialChain“-APIs abgelöst.


Erste Schritte mit LangChain

📦 Installation

pip install langchain langchain-openai langgraph faiss-cpu

Wenn du LangGraph verwendest:

pip install langgraph

💬 LLMs und Prompt Templates (moderne API)

LangChain verwendet nun ChatModel-Schnittstellen:

from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI(model="gpt-4.1", temperature=0)

Prompt Templates bleiben ein zentrales Werkzeug:

from langchain_core.prompts import ChatPromptTemplate
 
prompt = ChatPromptTemplate.from_template(
    "Summarize the following text:\n\n{text}"
)

⛓️ Chains mit LCEL (statt der alten „Chains API“)

Du baust Chains mit LCEL:

chain = prompt | llm

⚙️ Tools & Agents (Best Practices 2025)

Die alten initialize_agent-, „ReAct Agent“- und MiniChain-Stile sind veraltet.

Der empfohlene Ansatz ist:

Verwende LangGraph für Agent-Workflows

LangGraph bietet:

  • Zustandsverwaltung (State Management)
  • Retry-Policies
  • Deterministische Übergänge (Edges)
  • Tool Calling
  • Persistenz

Beispiel für einen Agent-Knoten:

from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI(
    model="gpt-4.1",
    temperature=0,
    streaming=False
)

Tool-Calling-Beispiel:

from langchain_core.tools import tool
 
@tool
def search_wiki(query: str):
    """Search Wikipedia topics."""
    import wikipedia
    return wikipedia.summary(query)
 
tools = [search_wiki]

Verknüpfung mit dem LLM:

result = llm.invoke({
    "messages": [
        {"role": "user", "content": "Find me information about LangChain."}
    ],
    "tools": tools
})

🧠 Memory

LangChain Memory unterstützt inzwischen:

  • BufferMemory
  • ConversationSummaryMemory
  • SQL- / Redis-basierte Memory
  • Graph-State-Memory (LangGraph)

Beispiel:

from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
 
memory.save_context(
    {"input": "Hello"},
    {"output": "Hi, how can I help?"}
)
 
memory.load_memory_variables({})

📄 Datenladen, Text-Splitter & Retrieval (modernes RAG)

Aktualisiertes Beispiel mit FAISS + OpenAI Embeddings:

from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
 
loader = TextLoader("./state_of_the_union.txt")
docs = loader.load()
 
splitter = RecursiveCharacterTextSplitter(chunk_size=1000)
chunks = splitter.split_documents(docs)
 
emb = OpenAIEmbeddings()
db = FAISS.from_documents(chunks, emb)
 
query = "What policies did the president highlight?"
results = db.similarity_search(query)

🚀 End-to-End-Beispiel

Unten findest du eine vollständige, lauffähige LangChain-Pipeline mit LCEL, der aktualisierten OpenAI API und Retrieval.

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_core.prompts import ChatPromptTemplate
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import FAISS
 
# 1. Load LLM
llm = ChatOpenAI(model="gpt-4.1", temperature=0)
 
# 2. Load + split documents
loader = TextLoader("./state_of_the_union.txt")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=800)
chunks = splitter.split_documents(docs)
 
# 3. Build vectorstore
db = FAISS.from_documents(chunks, OpenAIEmbeddings())
 
# 4. Retrieval chain
prompt = ChatPromptTemplate.from_messages([
    ("system", "Answer based on the provided context."),
    ("user", "{question}\n\nContext: {context}")
])
 
def retriever(q):
    results = db.similarity_search(q, k=3)
    return "\n".join([r.page_content for r in results])
 
chain = (
    {
        "question": lambda x: x,
        "context": lambda x: retriever(x)
    }
    | prompt
    | llm
)
 
# 5. Run end-to-end
response = chain.invoke("What economic topics were mentioned?")
print(response.content)

Fazit

LangChain ist im Jahr 2025 nicht mehr nur ein Toolkit – es ist ein vollwertiges Framework für KI-Anwendungen für:

  • Agents
  • Workflows
  • Retrieval-Systeme
  • Tool-Integrationen
  • Gesprächsanwendungen mit reichhaltiger Memory

Mit LCEL, Runnables und LangGraph kannst du jetzt produktreife KI-Apps mit einer sauberen, wartbaren und skalierbaren Architektur entwickeln.

Nutze diesen Leitfaden als aktualisierte Grundlage, um leistungsstarke, wettbewerbsfähige KI-Anwendungen zu erstellen.