in firestore-palm-chatbot/functions/src/discussion.ts [187:220]
private async generateMessageGenerative(
request: APIGenerateMessageRequest
): Promise<GenerateMessageResponse> {
if (!this.generativeClient) {
throw new Error('Generative client not initialized.');
}
const [result] = await this.generativeClient.generateMessage(request);
if (result.filters && result.filters.length) {
throw new Error(
'Chat prompt or response filtered by the PaLM API content filter.'
);
}
if (!result.candidates || !result.candidates.length) {
throw new Error('No candidates returned from server.');
}
const content = result.candidates[0].content;
const candidates = result.candidates!.map(c => c.content!);
if (!content) {
throw new Error('No content returned from server.');
}
const messages = result.messages || [];
return {
response: content,
candidates,
history: this.messagesFromApi(messages),
};
}