Laddro DocsLaddro Docs

SSE-Streaming

SSE-Streaming

Die Career API unterstützt Server-Sent Events (SSE) Streaming für KI-gestützte Endpoints. So können Sie Ergebnisse in Echtzeit erhalten, während sie generiert werden.

Streaming-Endpoints

EndpointBeschreibung
POST /v1/tailorLebenslauf-Anpassungsvorschläge
POST /v1/cover-letters/generateAnschreiben-Erstellung

Aktivierung

Fügen Sie Accept: text/event-stream zu Ihren Anfrage-Headern hinzu:

curl https://api.laddro.com/v1/tailor \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -d '{
    "resumeId": "res_abc123",
    "jobDescription": "..."
  }'

Event-Format

Events folgen der SSE-Spezifikation:

data: {"type":"section","section":"summary","content":"Experienced engineer..."}

data: {"type":"section","section":"experience","content":"..."}

data: {"type":"done"}

Jedes Event ist ein JSON-Objekt mit:

FeldTypBeschreibung
typestringsection oder done
sectionstringName des Lebenslauf-Abschnitts (wenn type gleich section ist)
contentstringGenerierter Inhalt

Implementierungsbeispiele

JavaScript (Browser)

const response = await fetch('https://api.laddro.com/v1/tailor', {
  method: 'POST',
  headers: {
    'x-api-key': apiKey,
    'Content-Type': 'application/json',
    'Accept': 'text/event-stream'
  },
  body: JSON.stringify({ resumeId, jobDescription })
})

const reader = response.body.getReader()
const decoder = new TextDecoder()

while (true) {
  const { done, value } = await reader.read()
  if (done) break

  const text = decoder.decode(value)
  const lines = text.split('\n')

  for (const line of lines) {
    if (line.startsWith('data: ')) {
      const event = JSON.parse(line.slice(6))
      if (event.type === 'done') return
      console.log(event.section, event.content)
    }
  }
}

TypeScript SDK

for await (const event of client.tailor(
  { resumeId, jobDescription },
  { stream: true }
)) {
  console.log(event.section, event.content)
}

Python SDK

for event in client.tailor(
    resume_id=resume_id,
    job_description=jd,
    stream=True
):
    print(event.section, event.content)

Node.js (Raw)

import { createParser } from 'eventsource-parser'

const response = await fetch('https://api.laddro.com/v1/tailor', {
  method: 'POST',
  headers: {
    'x-api-key': process.env.LADDRO_API_KEY,
    'Content-Type': 'application/json',
    'Accept': 'text/event-stream'
  },
  body: JSON.stringify({ resumeId, jobDescription })
})

const parser = createParser(event => {
  if (event.type === 'event') {
    const data = JSON.parse(event.data)
    if (data.type === 'done') return
    process.stdout.write(data.content)
  }
})

for await (const chunk of response.body) {
  parser.feed(new TextDecoder().decode(chunk))
}

Fehlerbehandlung

Wenn während des Streamings ein Fehler auftritt, sendet der Stream ein Fehler-Event:

data: {"type":"error","message":"Rate limit exceeded","statusCode":429}

Behandeln Sie immer den Fehler-Event-Typ in Ihrem Stream-Consumer.

On this page