Skip to content

minicoursegenerator/edu-role-play-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

edu-role-play-proxy

Cloudflare Worker that fronts edu-role-play bundles. Learners' bundled HTML calls this Worker; the Worker calls the model. API keys live as Worker secrets — never in the HTML.

One-click deploy

Deploy to Cloudflare

After deploy, in the Cloudflare dashboard go to your new Worker → Settings → Variables and Secrets → Add variable and add one of:

  • ANTHROPIC_API_KEY (recommended for role-play quality — Claude holds character better)
  • OPENAI_API_KEY

Mark it as a Secret (encrypted). With neither set, the Worker falls back to Cloudflare Workers AI (free, lower quality).

Point a bundled HTML at this Worker

Two ways, no re-bundle required:

  1. Open your-roleplay.bundled.html and add this to <head>:
    <meta name="edu-role-play-proxy" content="https://<your-worker>.workers.dev">
  2. Or share the URL with a query param: your-roleplay.bundled.html?erp-proxy=https://<your-worker>.workers.dev

Endpoint

POST /v1/chat
Content-Type: application/json

{
  "messages": [{ "role": "user", "content": "..." }],
  "model":   "@cf/meta/llama-3.1-8b-instruct",   // optional
  "temperature": 0.7,                             // optional, clamped 0..2
  "maxTokens": 512                                // optional, capped at 1024
}

Response: { "text": "..." }. Errors: { "error": "...", "code"?: "rate_limited" | "upstream_error" }.

Provider precedence

Picked at request time:

  1. ANTHROPIC_API_KEY set → Anthropic Messages API (default claude-haiku-4-5-20251001)
  2. OPENAI_API_KEY set → OpenAI Chat Completions (default gpt-4o-mini)
  3. Neither set → Cloudflare Workers AI via env.AI (default @cf/meta/llama-3.1-8b-instruct)

Rate limiting

Built-in: 30 requests per IP per 60s (RL binding). Tune in wrangler.toml and redeploy.

Privacy

The Worker does not log request or response bodies (they contain learner transcripts). Standard Workers logs (IP, status, model) appear in your Cloudflare dashboard.

Source

This file is generated from packages/cli/templates/proxy-worker/ in edu-role-play via scripts/sync-proxy-worker.mjs. Send PRs to that repo.

About

Cloudflare Worker proxy for edu-role-play bundles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors