PalveronPalveronDocs

LangChain

KI-Governance für LangChain-Pipelines — automatische Policy-Checks, PII-Maskierung und Audit-Trails für jeden LLM-Call, Tool-Aufruf und Chain-Run.

LangChain Integration

Fügen Sie einen Callback-Handler zu Ihrer LangChain-Pipeline hinzu. Jeder Prompt, Tool-Call und LLM-Output wird automatisch gegen Ihre Palveron-Governance-Policies geprüft.

Installation

pip install palveron-langchain

Schnellstart

from palveron_langchain import PalveronCallbackHandler
from langchain_openai import ChatOpenAI

handler = PalveronCallbackHandler(api_key="pv_live_xxx")
llm = ChatOpenAI(model="gpt-4o", callbacks=[handler])

# Jeder Aufruf wird jetzt governiert
result = llm.invoke("Fasse die Kundendaten für Max Mustermann, [email protected] zusammen")
# → PalveronGovernanceError: Blockiert — PII erkannt (E-Mail-Adresse)

Was geprüft wird

EventWannWas
on_llm_startVor Text-CompletionPrompt-Text
on_chat_model_startVor Chat-Model-CallAlle Nachrichten
on_tool_startVor Tool-AusführungTool-Name + Input
on_llm_endNach Generierung (opt-in)LLM-Output-Text

Konfiguration

handler = PalveronCallbackHandler(
    api_key="pv_live_xxx",
    base_url="https://gateway.intern.firma.de:8080",  # On-Prem
    check_prompts=True,       # Inputs vor LLM prüfen (Standard)
    check_outputs=False,      # LLM-Outputs prüfen (opt-in)
    check_tools=True,         # Tool-Inputs prüfen (Standard)
    raise_on_block=True,      # Exception bei BLOCKED (Standard)
    fail_open=False,          # Blockieren bei Gateway-Ausfall (Standard)
    metadata={"team": "ml"},  # Zusätzliche Metadata pro Trace
)

Mit Agents

from langchain.agents import create_react_agent, AgentExecutor

handler = PalveronCallbackHandler(api_key="pv_live_xxx")
agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, callbacks=[handler])

# Sowohl LLM-Calls ALS AUCH Tool-Ausführungen werden governiert
result = executor.invoke({"input": "Lösche alle Kundendatensätze"})

Mit LCEL Chains

from langchain_core.prompts import ChatPromptTemplate

handler = PalveronCallbackHandler(api_key="pv_live_xxx")
chain = ChatPromptTemplate.from_template("Zusammenfassung: {text}") | llm

result = chain.invoke(
    {"text": sensibles_dokument},
    config={"callbacks": [handler]},
)

Governance Records

Programmatischer Zugriff auf den Audit-Trail nach der Ausführung:

print(f"Blockiert: {handler.blocked_count}")
print(f"Trace IDs: {handler.trace_ids}")

for record in handler.records:
    print(f"{record.event}: {record.decision} ({record.latency_ms:.0f}ms)")

Fehlerbehandlung

from palveron_langchain import PalveronCallbackHandler, PalveronGovernanceError

try:
    result = llm.invoke("Sende SVN 12 345 678 A 90 an den Kunden")
except PalveronGovernanceError as e:
    print(e.decision)   # "BLOCKED"
    print(e.trace_id)   # "trc_abc123"
    print(e.reason)     # "PII erkannt: Sozialversicherungsnummer"

Einschränkungen

LangChain Callbacks sind beobachtend — sie können Prompts nicht im Flug ändern. Der Handler kann Requests blockieren (durch Exception) und Modifikationen loggen, aber den eigentlichen Prompt-Text nicht umschreiben, bevor er das LLM erreicht.

Für vollständiges Input-Rewriting mit PII-Maskierung bevor das Model die Daten sieht, verwenden Sie den Palveron Gateway Proxy.

Source Code

Open Source (MIT): github.com/palveron/adapter-langchain.

Nächste Schritte

On this page