edgedb-js
edgedb-js copied to clipboard
Add a streaming RAG method
Adds an SSE-style streaming response method along with a lower-level async generator.
Example output from httpie:
http http://localhost:3004 message=="Tell me something about pluto"
HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: text/event-stream
Date: Wed, 17 Apr 2024 02:14:59 GMT
Keep-Alive: timeout=5
Transfer-Encoding: chunked
event: message_start
data: {
"message": {
"id": "chatcmpl-9Ep76xGnUpwaq8Xz8bSq8DAVRbFQ2",
"model": "gpt-4-0125-preview",
"role": "assistant"
},
"type": "message_start"
}
event: content_block_start
data: {
"content_block": {
"text": "",
"type": "text"
},
"index": 0,
"type": "content_block_start"
}
event: content_block_delta
data: {
"delta": {
"text": "Pl",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": "uto",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": "'s",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " surface",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " is",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " primarily",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " made",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " up",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " of",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " nitrogen",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " ice",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": ",",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " methane",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": ",",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " and",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " carbon",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": " mon",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": "oxide",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_delta
data: {
"delta": {
"text": ".",
"type": "text_delta"
},
"index": 0,
"type": "content_block_delta"
}
event: content_block_stop
data: {
"index": 0,
"type": "content_block_stop"
}
event: message_delta
data: {
"delta": {
"stop_reason": "stop"
},
"type": "message_delta"
}
event: message_stop
data: {
"type": "message_stop"
}