Generative AI fallback Not working

All of a sudden the chat bot AI fallback capabilites are not working.  I have 'enabled generative fallback' and provided a user-defined response as a back up if it fails.  However for every no match now, the AI is not kicking in and only the back up message is provided.  When I look at the test simulator I can see a great response under the parameter $request.generative.answer.

a. How can I make this feature work again?

b. Is the Gen AI fallback connected to the $request.generative.answer, and how can I utilize that in the agent response?

0 1 80
1 REPLY 1

Hi @Ian_Stack,

Welcome to Google Cloud Community!

I understand that you’re experiencing issues with your chatbot's generative fallback capabilities. Here's a breakdown of the problem and how to fix it:

a. Troubleshooting the Generative Fallback

 

   1. Platform-Specific Issues:

Recent Updates: You may want to check for release notes as new features can sometimes introduce unexpected conflicts.

As of May 08, 2024:

Dialogflow CX and Vertex AI Agents: Effective June 15, 2024, the following generative features will be upgraded from text-bison-001 and fine-tuned text-bison@001 options to gemini-1.0-pro-001:

  • Vertex AI agent apps
  • Data store agents (aka Chat agents)
  • Generators
  • Generative fallback

Rate Limits: Some platforms impose usage limits on AI features (especially free tiers). Verify if you have exceeded any quotas that might disable generative fallback temporarily.

Caching: It could be that the platform is caching old settings or responses. Try clearing your browser cache, logging out and back in, or even testing in an incognito/private browsing window.

  1. Verify Enabled Fallback: Double-check that the "Enable Generative Fallback" setting is truly enabled within your chatbot platform's settings. Make sure it's switched on and not accidentally toggled off.
  2. Examine User-Defined Response: Review your user-defined fallback response. Ensure it's properly formatted and doesn't contain any errors. Check for:

Missing Placeholders: Check if your backup response has placeholders for variables that might be needed. The fallback might need to include information from the user's query or session context. Below is an example of text prompt with placeholders:

placeholder.png

  • Logic Errors: Does the backup response logic conflict with the generative fallback logic? Make sure the backup message doesn't inadvertently override the generative answer.
  • The prompt and the generated response are checked against a list of banned phrases. If they contain any banned phrase, or are otherwise deemed unsafe, generation will be unsuccessful, and the regular prescribed response (under Agent says in the same fulfillment) will be issued instead.
  1. Test Input: Use a variety of test inputs that you know should trigger the generative fallback (inputs that the bot is not explicitly programmed to handle). This will help pinpoint the issue:
  • Directly Test Generative Fallback: If possible, your chatbot platform might offer a direct way to test the generative fallback feature. See if this helps narrow down the issue.
  • Inspect Logs: Look for any error messages or debugging information in your bot's logs. These might provide clues as to why the generative fallback isn't working.

 

b. Utilizing $request.generative.answer

Yes, the $request.generative.answer variable is the key to accessing the generative AI's response. 

Purpose of $request.generative.answer: This variable holds the response generated by the AI model. It is designed to be used when the AI model produces a response, not as a direct fallback mechanism.

How to Use it Effectively:

Conditional Logic: You can use conditional logic in your agent's responses to check if the $request.generative.answer variable is populated. If it is, you can then incorporate it into the response.

Accessing the AI Response: If you want to leverage the AI's response in your fallback, you'll need to implement conditional logic in your agent response:

# Check if the AI generated a response
if ($request.generative.answer != "") {
    # Use the AI's response
    return "The AI thinks the answer is: " + $request.generative.answer;
} else {
    # Fallback to the user-defined response
    return "I'm not sure I understand. Please try rephrasing your question.";
}

Example Scenario

Let's say your bot is designed to answer trivia questions. If it encounters a question it doesn't know, the generative fallback would try to answer it using AI. You would then use $request.generative.answer to display the AI's response. If the AI fails, you would display your user-defined fallback message:

# Handle a trivia question
if (question type == "trivia") {
   # AI response
   if ($request.generative.answer != "") {
       return $request.generative.answer; 
   } else {
       return "I don't know the answer to that trivia question.  Try a different one!";
   }
}

Enhancing Fallbacks: While not a direct fallback mechanism, you can use $request.generative.answer within your fallback messages. This allows you to provide a more informative fallback, suggesting what the AI might have understood.

Example Code:

"text": "I'm not sure I understood your request. Did you mean to ask: $request.generative.answer",

 "speech": "I'm not sure I understood your request. Did you mean to ask: $request.generative.answer"

Key Points

Understanding AI Fallback: The generative fallback is designed to handle cases where the chatbot's programmed rules don't have a direct answer.

Conditional Logic: Use conditional logic to check if the AI model generated a response before resorting to your backup message.

Error Handling: Always consider that the AI model might fail to provide a response. Implement error handling for such situations.

I hope the above information is helpful.