The sendMessage
method in the Chat
class is used to send a message to a chat conversation. This method automatically adapts to provide either a stream of responses or a single, complete response based on how it is called.
Key Features
Context-Aware
- Conversational Memory: Every message sent and the corresponding response from the language model are stored, ensuring a continuous and coherent conversation flow by keeping track of all previous exchanges.
Flexible Response Handling
- Streaming Mode: Direct calls to
sendMessage
return a stream for real-time, incremental responses. Useful for lengthy or real-time interactions. Requires event listeners likeon('data', callback)
. - Complete Mode: Using
sendMessage
withasync/await
or.then
returns a promise for a single, full response, suitable for standard request-response scenarios.
Usage Examples
Non-Streaming Response
To receive a complete response after the message processing is finished, use sendMessage
with async/await
or .then
. This will return a promise that resolves to a string containing the full response.
const chat = new Chat();
// Example using async/await
async function getCompleteResponse() {
const answerString = await chat.sendMessage("Who was the first man to walk on the moon?");
console.log("Non-Streaming Response:", answerString);
}
// Example using .then
chat.sendMessage("Who was the first man to walk on the moon?")
.then(answerString => {
console.log("Non-Streaming Response:", answerString);
});
Streaming Response
For a real-time, incremental response, simply call sendMessage
without async/await
or .then
. This will return a stream of responses as they become available.
const chat = new Chat();
// Sending a message for streaming response
const responseStream = chat.sendMessage("Who was the first man to walk on the moon?");
responseStream.on('data', (data) => {
console.log("Streaming Part of Response:", data);
});