Noch ein Tutorial, während ich ein paar Bots fertigstelle (Aktualisiert mit Skript)
Aus dem Englischen übersetzt·
66
74
by:@Melancholux
KOSTENLOSER JANITORAI KI-PROXY · SCHRITT-FÜR-SCHRITT-CLOUDFLARE-ANLEITUNG
☁ MELS KOSTENLOSES PROXY-LABORANLEITUNG / OKTOBER 2026 · COMMUNITY-AUSGABE
KOSTENLOSER TARIF · SELBST GEHOSTETER WORKER · MEHRERE MODELLE DEIN EIGENER KI-PROXY Cloudflare Workers AI × JanitorAI
Ein Worker. Fünf Modelle. Kein monatliches Abo nötig, solange du innerhalb der zulässigen kostenlosen Limits bleibst.
Ein Worker. Fünf Modelle. Kein monatliches Abo nötig, solange du innerhalb der zulässigen kostenlosen Limits bleibst.
ANFÄNGERFREUNDLICHKEINE LOKALE GPU10.000 NEURONEN / TAGMODELLWECHSELHai hai, alle zusammen! 🌸 Ich habe das gemacht, damit du deinen eigenen Proxy bauen und verstehen kannst, statt von dem eines anderen abhängig zu sein.
BEVOR DU BEGINNST — WAS DIESES TUTORIAL MACHT
Wir erstellen einen kostenlosen Cloudflare Worker, bewahren dein privates Cloudflare-Token in Secrets auf, fügen einen geschützten OpenAI-kompatiblen Proxy hinzu, wählen ein Modell aus und verbinden es mit JanitorAI. Bilder veranschaulichen die Schritte, und das eigentliche Worker-Skript ist unten enthalten, damit du es kopieren kannst.
Es ist kostenlos innerhalb des täglichen Kontingents des Kontos, nicht unbegrenzt und nicht garantiert für jedes Modell auf jedem Konto. Veröffentliche niemals API-Token oder dein Proxy-Passwort.
Es ist kostenlos innerhalb des täglichen Kontingents des Kontos, nicht unbegrenzt und nicht garantiert für jedes Modell auf jedem Konto. Veröffentliche niemals API-Token oder dein Proxy-Passwort.
ABSCHNITT 01 // CLOUD-HANDBUCH Was du brauchst Deine Einrichtungs-Checkliste
Ein kostenloses Cloudflare-Konto
Erstelle eines unter dash.cloudflare.com. Dein Worker läuft online; dein PC muss nicht eingeschaltet bleiben.
Ein JanitorAI-Konto
Verwende einen Chat bzw. Charakter, bei dem benutzerdefinierte Proxys unterstützt werden.
Ein sicheres privates Passwort
Das erstellst du selbst. Es wird zum PROXY_KEY, der getrennt vom Cloudflare-API-Token ist.
Kostenloses Kontingent: Cloudflare Workers AI dokumentiert derzeit 10.000 kostenlose Neuronen/Tag, die um 00:00 UTC zurückgesetzt werden. Eingabe-/Ausgabelängen und Modellwahl verändern den Verbrauch. Beim Limit erhältst du einen Fehler, bis das Kontingent zurückgesetzt wird oder du den Tarif wechselst.
ABSCHNITT 02 // CLOUD-HANDBUCH Stelle deinen Cloudflare Worker bereit Erstelle den kleinen Server, der Anfragen weiterleitet
SCREENSHOT 01 · CLOUDFLARE-DASHBOARDVISUELLE REFERENZ
Verwende diesen Screenshot als visuelle Orientierung für das Dashboard. Die Beschriftungen können sich mit der Zeit ändern.
Gehe zum Cloudflare-Dashboard → Workers & Pages → Erstellen. Erstelle einen Worker mit der Starter-Vorlage, benenne ihn etwa janitor-free-proxy und drücke Deploy.
SCREENSHOT 02 · WORKER-EINRICHTUNGVISUELLE REFERENZ
Folge den aktuellen Aufforderungen zur Worker-Erstellung, bis Cloudflare dir eine *.workers.dev-Adresse gibt.
https://janitor-free-proxy.YOUR-SUBDOMAIN.workers.dev
ABSCHNITT 03 // CLOUD-HANDBUCH Hole dir dein Workers-AI-Token Dieses Token ist privat; es gehört niemals in JanitorAI
SCREENSHOT 03 · WORKERS AI / TOKENVISUELLE REFERENZ
Finde Workers AI und den Bereich für REST-API bzw. Token-Erstellung in deinem Dashboard.
Öffne AI → Workers AI und suche nach Use REST API oder einer Aktion zur API-Token-Erstellung. Erstelle ein Token mit Zugriff auf Workers AI und kopiere deine Cloudflare Account ID.
SICHERHEITSREGEL
Das Cloudflare-API-Token ist ein Server-Geheimnis. Füge es NICHT in JanitorAI, Discord oder öffentlichen Code ein. JanitorAI erhält nur ein anderes privates Passwort (PROXY_KEY).
ABSCHNITT 04 // CLOUD-HANDBUCH Füge 3 Worker-Einstellungen hinzu Eine Cloudflare Account ID plus zwei Secrets
SCREENSHOT 04 · VARIABLEN & SECRETSVISUELLE REFERENZ
Öffne in deinem Worker Einstellungen → Variablen und Secrets.
CLOUDFLARE_ACCOUNT_ID — Text: deine Account ID
CLOUDFLARE_API_TOKEN — Secret: das Cloudflare-Token
PROXY_KEY — Secret: ein einzigartiges starkes Passwort, das du wählst
CLOUDFLARE_API_TOKEN — Secret: das Cloudflare-Token
PROXY_KEY — Secret: ein einzigartiges starkes Passwort, das du wählst
Speichere die Variablen und stelle erneut bereit, falls Cloudflare dich dazu auffordert. Verwende nicht dein Konto-Login-Passwort als PROXY_KEY.
Deine drei Worker-Einstellungen — exakte Namen CLOUDFLARE_ACCOUNT_ID · Text · Deine Account ID, aus deinem eigenen Cloudflare-Dashboard bezogen. Dies ist nicht der Worker-Name oder die URL.
CLOUDFLARE_API_TOKEN · Secret · Das Workers-AI-API-Token, das du in Cloudflare erzeugt hast. Füge es niemals in den öffentlichen Worker-Code oder in Janitors API-Key-Feld ein.
PROXY_KEY · Secret · Ein langes einzigartiges Passwort, das du selbst erstellst. Du fügst DASSELBE Passwort in Janitors API Key-Feld ein.
NUR BEISPIELSTRUKTUR (keine echten Schlüssel)
CLOUDFLARE_ACCOUNT_ID = [deine eigene Account ID]
CLOUDFLARE_API_TOKEN = [dein eigenes geheimes KI-Token]
PROXY_KEY = [dein eigenes privates Zufallspasswort]
CLOUDFLARE_API_TOKEN · Secret · Das Workers-AI-API-Token, das du in Cloudflare erzeugt hast. Füge es niemals in den öffentlichen Worker-Code oder in Janitors API-Key-Feld ein.
PROXY_KEY · Secret · Ein langes einzigartiges Passwort, das du selbst erstellst. Du fügst DASSELBE Passwort in Janitors API Key-Feld ein.
NUR BEISPIELSTRUKTUR (keine echten Schlüssel)
CLOUDFLARE_ACCOUNT_ID = [deine eigene Account ID]
CLOUDFLARE_API_TOKEN = [dein eigenes geheimes KI-Token]
PROXY_KEY = [dein eigenes privates Zufallspasswort]
ABSCHNITT 05 // CLOUD-HANDBUCH Füge den vollständigen Proxy-Code ein Dies ist der tatsächlich funktionierende Worker-Quellcode, kein Platzhalter
SCREENSHOT 05 · WORKER-CODE-EDITORVISUELLE REFERENZ
Klicke auf Edit code in deinem Worker und ersetze den Starter-Code.
Öffne Edit code, entferne den vorhandenen Starter-Quellcode, füge das gesamte JavaScript unten ein und drücke dann Deploy. Das Skript unterstützt
/v1/chat/completions und /chat/completions, Streaming, dein gewähltes Modell und ein persönliches Passwort. ☁ Dieses Skript ist die eigentliche Brücke — was macht es? 1 · CORS + OPTIONS: ermöglicht browserbasierten Clients, die Preflight-Anfrage sicher zu stellen. 2 · POST-Endpunkte: akzeptiert Anfragen unter
/v1/chat/completions oder /chat/completions. 3 · Persönliches Passwort: vergleicht den API Key, den Janitor sendet, mit deinem PROXY_KEY-Secret. Ohne dies könnte jeder, der die URL entdeckt, dein kostenloses Kontingent verbrauchen. 4 · Vollständige RP-Konversation: behält Janitors messages-Array bei, statt deine Geschichte auf die letzte Nachricht zu reduzieren. 5 · Modellauswahl: beginnt mit Gemma 4, akzeptiert aber auch die fünf unterstützten Modell-IDs, die in diesem Tutorial aufgeführt sind. Der Originalcode erzwang immer Gemma; diese Version lässt dich über Janitors Feld für den Modellnamen wechseln. 6 · Streaming + Einstellungen: aktiviert Streaming und verwendet Temperatur 0.9, top_p 0.95 und max_tokens 2048 nur, wenn Janitor keine gültigen Werte geliefert hat. 7 · Cloudflare-API: verwendet deine Cloudflare Account ID und ihr separates API-Token, um Workers AI aufzurufen. Dein Cloudflare-Token muss niemals in Janitor eingefügt werden. 8 · Direkte Durchleitung: leitet den Antwort-Stream zurück an Janitor weiter, ohne einzelne Token oder Chunks neu zu bauen. Kopiere den GESAMTEN Block unten in Cloudflares Worker-Code-Editor. Füge ihn nicht in das Proxy-URL-Feld von Janitor ein. Du ersetzt nicht etwas im Skript durch deine Secrets: Füge sie unter Einstellungen → Variablen und Secrets hinzu. Behalte ihre exakten Namen, einschließlich Unterstriche. Nach dem Einfügen drücke Deploy.
</> VOLLSTÄNDIGES CLOUDFLARE-WORKER-SKRIPT — JAVASCRIPT · ÖFFNEN / KOPIEREN ↓
// JANITORAI + CLOUDFLARE WORKERS AI PROXY // Adapted from Mel's working streaming passthrough. // STEP 1: Settings > Variables and Secrets // CLOUDFLARE_ACCOUNT_ID = your own Cloudflare Account ID (Text) // CLOUDFLARE_API_TOKEN = your own Workers AI API token (Secret) // PROXY_KEY = a strong password YOU create (Secret) // STEP 2: paste this ENTIRE script in Edit code and Deploy. // STEP 3: in JanitorAI set Proxy URL to: // https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completions // and API Key to the SAME value as your PROXY_KEY. const MODELS = new Set([ "@cf/google/gemma-4-26b-a4b-it", "@cf/zai-org/glm-4.7-flash", "@cf/qwen/qwen3-30b-a3b-fp8", "@cf/mistralai/mistral-small-3.1-24b-instruct", "@cf/meta/llama-3.3-70b-instruct-fp8-fast", ]); const DEFAULT_MODEL = "@cf/google/gemma-4-26b-a4b-it"; export default { async fetch(request, env) { const origin = request.headers.get("Origin") || "*"; const corsHeaders = { "Access-Control-Allow-Origin": origin, "Access-Control-Allow-Methods": "GET, POST, OPTIONS", "Access-Control-Allow-Headers": request.headers.get("Access-Control-Request-Headers") || "Content-Type, Authorization, X-API-Key", "Access-Control-Max-Age": "86400", "Vary": "Origin", }; const json = (data, status = 200) => Response.json(data, { status, headers: corsHeaders }); if (request.method === "OPTIONS") { return new Response(null, { status: 204, headers: corsHeaders }); } const path = new URL(request.url).pathname; if (request.method === "GET" && path === "/") { return json({ status: "ok", service: "Private Workers AI proxy" }); } if (request.method !== "POST" || (path !== "/v1/chat/completions" && path !== "/chat/completions")) { return json({ error: { message: "Not found" } }, 404); } // IMPORTANT ADDITION: prevent strangers from using your quota. if (!env.PROXY_KEY || !env.CLOUDFLARE_ACCOUNT_ID || !env.CLOUDFLARE_API_TOKEN) { return json({ error: { message: "Missing Worker secrets" } }, 500); } const auth = request.headers.get("Authorization") || ""; const suppliedKey = auth.replace(/^Bearer\s+/i, "").trim() || request.headers.get("X-API-Key") || ""; if (suppliedKey !== env.PROXY_KEY) { return json({ error: { message: "Invalid PROXY_KEY" } }, 401); } try { const raw = await request.text(); if (raw.length > 500000) { return json({ error: { message: "Request too large" } }, 413); } const body = JSON.parse(raw); if (!Array.isArray(body.messages) || !body.messages.length) { return json({ error: { message: "Missing messages array" } }, 400); } // Preserve Janitor's conversation. The original fixed Gemma here: // body.model = "@cf/google/gemma-4-26b-a4b-it"; // This updated version also supports switching models in Janitor. body.model = body.model || DEFAULT_MODEL; if (!MODELS.has(body.model)) { return json({ error: { message: "Model not in tutorial allowlist" } }, 400); } body.stream = true; // Keep Janitor's settings, with sensible defaults. if (typeof body.temperature !== "number") body.temperature = 0.9; if (typeof body.top_p !== "number" || body.top_p <= 0) body.top_p = 0.95; if (!body.max_tokens || body.max_tokens <= 0) body.max_tokens = 2048; const upstream = await fetch( `https://api.cloudflare.com/client/v4/accounts/${encodeURIComponent(env.CLOUDFLARE_ACCOUNT_ID)}/ai/v1/chat/completions`, { method: "POST", headers: { "Authorization": `Bearer ${env.CLOUDFLARE_API_TOKEN}`, "Content-Type": "application/json", "Accept": "text/event-stream", }, body: JSON.stringify(body), } ); // DIRECT PASSTHROUGH: no rebuilding the model's streamed text. if (!upstream.ok) { const errorText = await upstream.text(); return new Response(errorText, { status: upstream.status, headers: { ...corsHeaders, "Content-Type": upstream.headers.get("Content-Type") || "application/json", }, }); } return new Response(upstream.body, { status: upstream.status, headers: { ...corsHeaders, "Content-Type": upstream.headers.get("Content-Type") || "text/event-stream; charset=utf-8", "Cache-Control": "no-cache, no-transform", }, }); } catch (error) { return json({ error: { message: error?.message || String(error) } }, 500); } }, };Warum 3 Einstellungen verwenden?
Die Cloudflare Account ID identifiziert dein Konto; das Cloudflare API Token gewährt Modellzugriff; der PROXY_KEY hindert andere daran, Anfragen über deine öffentliche Worker-URL zu senden.
Erwarte keinen automatischen Jailbreak
Dies ist ein Transport-Proxy, kein Modell-Fine-Tuning. Alle Modellrichtlinien und Cloudflare-Beschränkungen gelten weiterhin.
ABSCHNITT 06 // CLOUD-HANDBUCH Wähle eines von fünf KI-Modellen Modell-IDs, die du in JanitorAI kopieren kannst
SCREENSHOT 06 · WORKERS AI MODELLEVISUELLE REFERENZ
Verwende die Cloudflare-Modellseiten, um Fähigkeiten, aktuelle Berechtigung und Nutzungspreise zu vergleichen.
MODELL 01 GEMMA 4 · HIER STARTEN
@cf/google/gemma-4-26b-a4b-it
Allgemeines Storytelling und ein großes Kontextfenster von 256K Token. Gutes erstes Modell zum Experimentieren. MODELL 02 GLM-4.7 FLASH · DIALOG
@cf/zai-org/glm-4.7-flash
Mehrsprachige, dialogorientierte Option mit einem 131K-Kontextfenster. MODELL 03 QWEN3 30B A3B · DETAIL
@cf/qwen/qwen3-30b-a3b-fp8
Instruktionsbefolgung und komplexe Szenen. 32K Kontext; das Reasoning-Verhalten kann den Token-Verbrauch beeinflussen. MODELL 04 MISTRAL SMALL 3.1 · PROSA
@cf/mistralai/mistral-small-3.1-24b-instruct
Ein anderer Schreibstil zum Vergleichen für kreative Prosa. Bis zu 128K Kontext. MODELL 05 LLAMA 3.3 70B · ALTERNATIVE
@cf/meta/llama-3.3-70b-instruct-fp8-fast
Ein größeres Modell mit einem 24K-Kontextfenster, das das kostenlose Kontingent relativ schnell aufbrauchen kann.Dies sind Vorschläge zum Testen, keine verifizierten Rollenspiel-Rankings. Verfügbarkeit und Nur-Bezahlt-Beschränkungen können variieren. Wenn ein Modell 403 zurückgibt, prüfe den Cloudflare-Zugriff und die Modellberechtigung, statt anzunehmen, dass der Proxy defekt ist.
ABSCHNITT 07 // CLOUD-HANDBUCH Verbinde den Worker mit JanitorAI Verwende die Worker-URL und den PROXY_KEY — nicht dein Cloudflare-API-Token
SCREENSHOT 07 · JANITORAI-PROXY-EINSTELLUNGENVISUELLE REFERENZ
Öffne die JanitorAI-Chat-Einstellungen → Proxy → Proxy hinzufügen oder konfigurieren.
Konfigurationsname
Cloudflare Free AI
Modellname
Proxy-URL
API Key
Dein privates
Cloudflare Free AI
Modellname
@cf/google/gemma-4-26b-a4b-itProxy-URL
https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completionsAPI Key
Dein privates
PROXY_KEY-Secret — NICHT das Cloudflare-API-Token.Speichere die Einstellungen, wähle die Konfiguration aus und sende eine kurze Testnachricht. Wenn es funktioniert, sollten die Modellantworten von Cloudflare über deinen Worker zurückkommen. Wenn der Proxy keine Verbindung herstellt, prüfe sowohl die Worker-Logs als auch die Janitor-Chat-Einstellungen.
🔗 Wie sollte deine Proxy-URL tatsächlich aussehen? MELS ECHTE URL — NUR BEISPIELFORMAT
https://janitor-ai-proxy.melancholux.workers.dev/v1/chat/completions DEINE EIGENE URL — ERSETZE DIESEN TEIL https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completions Beispiel: Cloudflare sagt, deine Worker-Adresse ist https://my-rp-proxy.abc123.workers.dev. Deine Janitor-Proxy-URL ist genau diese Adresse plus /v1/chat/completions: https://my-rp-proxy.abc123.workers.dev/v1/chat/completions Verwende nicht Mels URL als deine eigene. Die Worker-Domain deines Kontos wird anders sein. Tippe nicht die Wörter YOUR-WORKER wörtlich ein und füge nicht dein Cloudflare-API-Token in Janitor ein: Verwende PROXY_KEY in dessen API-Key-Feld. ABSCHNITT 08 // CLOUD-HANDBUCH Wechsle Modelle ohne erneute Bereitstellung Fünf Modelle, ein Worker, ein kostenloses Kontingent
SCREENSHOT 08 · FINALE PRÜFUNG / TESTVISUELLE REFERENZ
Verwende den letzten Screenshot als Referenz, während du deinen Chat und das gewählte Modell überprüfst.
Ändere in JanitorAI nur den Model Name auf eine der oben aufgeführten IDs. Die Worker-URL und der PROXY_KEY bleiben unverändert. Du kannst separate Konfigurationen pro Modell speichern, aber sie alle verbrauchen dasselbe Kontokontingent.
Von: @cf/google/gemma-4-26b-a4b-it Zu: @cf/zai-org/glm-4.7-flash
ABSCHNITT 09 // CLOUD-HANDBUCH Empfohlene RP-Einstellungen Optionale Ausgangspunkte, keine universellen Bestwerte
Temperatur
0.8–1.0, um mit mehr Vielfalt zu experimentieren; senke sie, wenn Figuren abdriften.
Top P
0.90–0.95, wenn das gewählte Modell es unterstützt.
Maximale Ausgabe-Token
1024–2048; kürzere Antworten kosten weniger Neuronen.
Streaming
An, wenn deine aktuelle Janitor-Oberfläche und das gewählte Modell es beide unterstützen.
Lange Gesprächsverläufe können viele Token verbrauchen. Ein Modell mit riesigem Kontext bedeutet nicht, dass der gesamte Kontext in dein tägliches kostenloses Budget passt.
ABSCHNITT 10 // CLOUD-HANDBUCH FAQ & Fehlerbehebung Das, was üblicherweise schiefgeht
Muss mein PC eingeschaltet bleiben? ↓
Nein. Dein Cloudflare Worker läuft auf der Cloudflare-Infrastruktur.
Ist es unbegrenzt? ↓
Nein. Das kostenlose Kontingent deckt derzeit 10.000 Neuronen pro Tag über das gesamte Konto ab.
Ist NSFW garantiert? ↓
Nein. Sicherheits- und Moderationsverhalten hängen vom Modell und den Dienstrichlinien ab.
Können Freunde meinen Proxy nutzen? ↓
Teile deinen PROXY_KEY nicht leichtsinnig. Jeder mit der URL und dem Schlüssel könnte dein Kontingent verbrauchen.
401 Unauthorized ↓
Der JanitorAI API Key muss exakt mit dem PROXY_KEY übereinstimmen.
403 Forbidden ↓
Prüfe die Cloudflare-Token-Berechtigungen, die Modellberechtigung und ob ein kostenpflichtiger Tarif erforderlich ist.
404 Not Found ↓
Überprüfe die workers.dev-URL und den Pfad /v1/chat/completions.
400 Invalid model ↓
Prüfe, ob du eine unterstützte Modell-ID exakt kopiert hast.
429 Too many requests ↓
Möglicherweise hast du die kostenlosen Neuronen erschöpft oder temporäre Kapazitätslimits erreicht.
Antworten werden nicht angezeigt ↓
Prüfe die Worker-Bereitstellung, Logs, deine Secrets und die Chat-/Proxy-Einstellungen; versuche einen kürzeren Prompt.
Löscht der Modellwechsel Chats? ↓
Das Ändern des ausgewählten Modells entfernt nicht selbst gespeicherte Janitor-Konversationen. Jedes Modell kann den verfügbaren Kontext anders handhaben.
ABSCHNITT 11 // CLOUD-HANDBUCH Schlussworte & offizielle Ressourcen Mach es zu deinem — und halte deine Schlüssel privat
Und da habt ihr es, Lieblinge! 🌸
Ein persönlicher Proxy, fünf Modelle zum Vergleichen und ein bisschen mehr Freiheit zum Experimentieren. Dieses Tutorial ist kein unbegrenzter kostenloser Premium-Dienst, sondern nur eine Möglichkeit zu lernen und zu erkunden, innerhalb des verfügbaren Kontingents.
Ich teile das, weil Dinge zu erschaffen Spaß machen sollte, und ich weiß, dass nicht jeder für Premium-Modelle zahlen kann.
Bleib flauschig. 🤍
Ein persönlicher Proxy, fünf Modelle zum Vergleichen und ein bisschen mehr Freiheit zum Experimentieren. Dieses Tutorial ist kein unbegrenzter kostenloser Premium-Dienst, sondern nur eine Möglichkeit zu lernen und zu erkunden, innerhalb des verfügbaren Kontingents.
Ich teile das, weil Dinge zu erschaffen Spaß machen sollte, und ich weiß, dass nicht jeder für Premium-Modelle zahlen kann.
Bleib flauschig. 🤍
Cloudflare-Dashboard ↗Workers AI Modelle ↗Offizielle Preisgestaltung ↗Chat-Completions-Dokumentation ↗
Community-erstelltes Tutorial von Melancholux. Nicht mit JanitorAI, Cloudflare oder einem der aufgeführten Modellanbieter verbunden.
Private Schlüssel sollten niemals in einem öffentlichen Beitrag erscheinen.
Private Schlüssel sollten niemals in einem öffentlichen Beitrag erscheinen.
Erstellt 25. Okt.
Aktualisiert 25. Okt.
Veröffentlicht 25. Okt.
- Unbegrenzt
- #melancholux
- #reginaden