added chat streaming
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user