// frontend
export function ChatScreen() {
const [messages, setMessages] = useState([])
useEffect(() => {
const fetchData = async () => {
const response = await fetch(`${import.meta.env.VITE_PUBLIC_API_URL}/assistant-sse`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ startStream: true }),
})
const reader = response.body.getReader()
const decoder = new TextDecoder('utf-8')
const readStream = async () => {
console.log('first')
const { value, done } = await reader.read()
if (done) {
console.log('Stream completed')
return
}
const newText = decoder.decode(value, { stream: true })
setMessages((prevMessages) => prevMessages + newText)
readStream()
}
readStream()
}
fetchData()
return () => {
}
}, [])
return (
<p>{messages}</p>
)
}
// frontend
export function ChatScreen() {
const [messages, setMessages] = useState([])
useEffect(() => {
const fetchData = async () => {
const response = await fetch(`${import.meta.env.VITE_PUBLIC_API_URL}/assistant-sse`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ startStream: true }),
})
const reader = response.body.getReader()
const decoder = new TextDecoder('utf-8')
const readStream = async () => {
console.log('first')
const { value, done } = await reader.read()
if (done) {
console.log('Stream completed')
return
}
const newText = decoder.decode(value, { stream: true })
setMessages((prevMessages) => prevMessages + newText)
readStream()
}
readStream()
}
fetchData()
return () => {
}
}, [])
return (
<p>{messages}</p>
)
}