Bouw voort op grammatica- en Shenute AI-API's

De grammatica-API biedt een alleen-lezen, geversioneerde dataset voor lessen, begrippen, voorbeelden, oefeningen, voetnoten en bronnen, terwijl /api/shenute Shenute AI-interacties levert met providerkeuze en OCR-context voor afbeeldingen.

Begin hier

De meeste integraties starten best bij de API-index, waar de beschikbare resourcefamilies en de huidige datasetversie worden uitgelegd.

Typische workflow

  • Roep /api/v1/grammar aan om de huidige endpoints en datasetversie te ontdekken.
  • Gebruik /api/v1/grammar/lessons voor de index van gepubliceerde lessen.
  • Laad /api/v1/grammar/lessons/[slug] voor volledige lespayloads.
  • Gebruik /api/openapi.json om clients te genereren of het schema in tooling te importeren.
  • Verstuur POST /api/shenute voor Shenute AI-antwoorden (standaardprovider: openrouter).
  • Stuur OCR-requests voor afbeeldingen naar POST /api/ocr zodat Coptic Compass ze doorstuurt naar OCR_SERVICE_URL.

Integratienotities

  • Responses zijn alleen-lezen en bevatten schemaVersion, datasetVersion en generatedAt.
  • De publieke dataset bevat alleen gepubliceerde lessen en de bijbehorende begrippen, voorbeelden, oefeningen, voetnoten en bronnen.
  • De lesson-filter accepteert zowel een slug als een canonieke les-id.
  • Voor browser-apps op een andere origin is een backendproxy de veiligste standaardoptie.
  • Shenute AI ondersteunt providers: openrouter, gemini en hf.
  • Bij upload van afbeeldingen of cameracaptures draait OCR eerst; de geëxtraheerde tekst wordt toegevoegd onder [Image OCR Context] vóór de call naar /api/shenute.
  • Stel OCR_SERVICE_URL in en optioneel OCR_UPLOAD_FIELD als uw OCR-backend een vaste multipart-veldnaam vereist.
  • Het endpoint /api/ocr proxyt multipart OCR-uploads en geeft het upstream OCR-resultaat terug aan de client.

Voorbeeldrequest

Een minimale server-side fetch-aanroep die de titels van gepubliceerde lessen ophaalt.

const response = await fetch(
  "https://www.copticcompass.com/api/v1/grammar/lessons",
);

const payload = await response.json();
const lessonTitles = payload.data.map((lesson) => lesson.title.en);

Voorbeeld Shenute AI-request

Een minimale POST-request naar /api/shenute met OpenRouter als provider.

const response = await fetch("https://www.copticcompass.com/api/shenute", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    inferenceProvider: "openrouter",
    messages: [
      {
        id: "u1",
        role: "user",
        parts: [{ type: "text", text: "Vertaal deze Koptische zin." }],
      },
    ],
  }),
});

const streamOfText = await response.text();

OCR-integratienotities

Clients kunnen /api/ocr aanroepen; Coptic Compass stuurt door naar OCR_SERVICE_URL en geeft de upstream OCR-response terug.

# .env.local
OCR_SERVICE_URL=https://your-ocr-service/upload
# Optioneel voor strikte OCR-backends:
OCR_UPLOAD_FIELD=file

curl -X POST "https://www.copticcompass.com/api/ocr?lang=cop"   -F "file=@/pad/naar/koptische-afbeelding.jpg"

# OCR-proxyflow
# 1) client POST naar /api/ocr
# 2) server stuurt door naar OCR_SERVICE_URL
# 3) upstream OCR-response terug naar client