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
| Endpoint | Beschreibung |
|---|---|
POST /v1/tailor | Lebenslauf-Anpassungsvorschläge |
POST /v1/cover-letters/generate | Anschreiben-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:
| Feld | Typ | Beschreibung |
|---|---|---|
type | string | section oder done |
section | string | Name des Lebenslauf-Abschnitts (wenn type gleich section ist) |
content | string | Generierter 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.