added chat streaming

This commit is contained in:
Storme-bit
2026-04-05 23:47:01 -07:00
parent 9af77438b3
commit 4bd84ded04
3 changed files with 95 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
const { Router } = require('express')
const { chat } = require('../chat/index');
const { chat, chatStream } = require('../chat/index');
const memory = require('../services/memory')
const router = Router();
@@ -22,4 +22,29 @@ router.post('/', async (req, res) => {
}
});
router.post('/stream', async (req, res) => {
const {sessionId, message} = req.body;
if(!sessionId || !message) {
return res.status(400).json({
error: 'sessionId and message are required'
});
}
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');
res.flushHeaders();
try {
await chatStream(sessionId, message, (delta) => {
res.write(`data: ${JSON.stringify({ text: delta})}\n\n`)
})
res.write(`data: ${JSON.stringify({done: true})}\n\n`);
} catch (err) {
res.write(`data: ${JSON.stringify({error: err.message})}\n\n`);
} finally {
res.end();
}
});
module.exports = router;