private async generateMessageGenerative()

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),
    };
  }