Showing posts with label ML. Show all posts
Showing posts with label ML. Show all posts

Tuesday, January 2, 2024

Dialogflow enters the GenAI / LLM era

Building a chatbot or voice chatbot? Check how the latest AI technologies added to Dialogflow could be the answer for your next project
Photo by Google DeepMind on Unsplash

In the Google Cloud Next '23Google announced many AI enhancements to Dialogflow, including addition of GenAI and LLM capabilities. Because these are groundbreaking changes to the very popular Dialogflow, wanted to explore howthe new GenAI features added to Dialogflow CX transform it in a fantastic service for a conversational chatbot and voice-chatbot.

Why (re)consider Dialogflow

Those who worked with Dialogflow in the past years, often say that a conversational chatbot built with Dialogflow gets complicated pretty quickly given the many variations a business should consider to implement a useful chatbot or voice chatbot.

This may have changed since Google Cloud Next '23, as Google announced many AI enhancements to Dialogflow, including addition of genai and LLM capabilities.

In this article we review how good the new GenAI features are, and how they take Dialogflow to the next level.

To test those features and understand how they augment Dialogflow, we built a real voice chatbot (plugged on a real telephone number). Overall, the results were fantastic! The latest GenAI features augment Dialogflow in a way that building a voice chatbot is quick, fun, pleasant and intuitive.

So let’s understand what is it that Google brought to the platform.

New GenAI features

If we had conducted this spike in Summer 2023, we probably wouldn’t be able to recommend Dialogflow CX for an intelligent voice/chatbot. Why? Because without the GenAI features announced in August 2023, it would not be possible to build an organic conversation with Dialogflow, without a lot of customization.

But how quickly this changed!

With the latest GenAI features announced for Dialogflow, building a voice chatbot is quick, fun, pleasant and intuitive.

So we went to explore the solution with some scepticism, and to our surprise, the results were great! Uploading custom data to the bot, having it trained and building a conversation on top of it was fast and intuitive.

In summary, here are some of the most interesting features announced in Fall 2023:

  • Ability to tailor your ML models
  • Ability to upload your own documents
  • Ability to fine-tuned your ML models
  • Ability to customize the responses with easy upload of documents. This could be great to simply upload internal/specific docs on/about the company, and have the model index that,
  • Leverage hybrid agents (combines the power of precise conversation controls (flows, parameters, intents, conditions, transitions, and so on) with data store handler generative features), as presented in our demo.
  • Ability to handle undesired intent matches
  • Ability to store internal documentation

Google Cloud GenAI Architecture

So let's review what's changed.

To make the Dialogflox CX + genai experience great, Google has created an impressive layer of optimization (depicted on the image above), which makes any custom made tough to beat.

Source: Google Cloud Next '23

Our Implementation

To validate the new features we wanted to build a voice chatbot using custom data, with little customization on Dialogflow's part. Was it be possible?

Indeed! We managed to deploy a fully operational bot in only 4 hours of work! Here is what we achieved during this time:

  • Uploaded custom docs
  • Fad the model auto-trained to answer questions on those docs (screenshots below)
  • Created custom intents to guide the conversation
  • Integrated with telephony providers, called it over the phone, and it was able to respond to random questions elegantly
  • Tested and tuned the solution
So let's get into it the most interesting features of the platform.

Features

Side by side Apps

Business would be able to have side by side apps. Below, we show two GenAI apps built for different clients. This would allow clients to have multiple apps, tailored to different business uses, for example.


Data Stores and custom training

Different solutions also have their own custom data store. Data stores are used to find answers for end-user's questions, and can be sourced from websites and/or custom documents. Below we show two possible options: website indexing (crawling) and document upload.

Once the data is ingested, the model is automatically trained on it leveraging automated or advanced NLU capabilities:


Asking custom questions

As your bot learns from your data, it becomes able to answer questions based on the documentation provided. Note that this required no training from our part.

Our chatbot responding to questions related from an uploaded doc, and from custom training.

Testing your bot

On the image above, you can also see a textbox ("talk to an agent"), where you can interact with the bot via text. This makes sense as we don't want to be test our bot over the phone, if we can do it from Dialogflow's UI, right?

Custom data importing

As mentioned, custom data can be easily imported using the admin portal. Here's what it looks like.

Auditing

Changes and modifications to data are also tracked for auditing and compliance reasons. This is extremely important for business, and a feature that should not be ignored.

Inline Testing Simulator

The interface also allows us to quickly test (and even listen) to the model, as shown below.

Test Cases

To test your agent, you create test cases using the simulator to define golden conversations, then you execute test cases as needed. This article explains that in more detail. You can also use the built-in test feature to uncover bugs and prevent regressions.

Custom Training

Beyond data stores, it's also possible to provide custom training to match to specific intents. For example, here we train the bot to respond specific questions the client might ask.


Response Tuning

Of course, the response can be fine tuned for any specific intent. The image below shows a custom messaged we trained the bot with, so it could respond elegantly to the calling client, looking to pay their outstanding invoice.


Backend integration

Integration with the backend is achieved via fulfilments, a Dialogflow term. Integrations with external backends can be configured on the Webhooks admin section. Those webohooks are leveraged by the fullfilment API, directly by Dialogflow.


Generators

Generators allow you to use generative AI models to generate dynamic responses or text that can be used during fulfillment. The next image shows some of the tuning you can do with your model.

Custom Voice

Of course, any serious solution for a voice chatbot should allow customizing the voice of your bot,. With Dialogflow that's not different. You can also leverage mult-language, and even create a new bot voice based on any human voice.


Advanced speech settings

Beyond the features mentioned above, it’s also possible to tune the speech in great details. Below you can see the different options at your disposal.

Multi-language

Support for multi-language (and locales) is also available. This is great for organizations that operate on more than one language, as it's common here in North America.


Security

Security is an essential requirement for every implementation. Dialogflow provides a robust set of security features and a great level of customization. Security Settings represents the settings related to security issues, such as data redaction and data retention. It may take hours for updates on the settings to propagate to all the related components and take effect. Learn more



AI, GenAI and LLM

So let's review some features that leverage AI directly.

Agent Settings

The Agent Settings screen allow to fine tune your agent with specific settings.

GenAI Settings

The Generative AI settings also provides a specific section for GenAI tuning.

Data Store Prompt

Data store prompt is a type of prompt engineering, where you can fine tune the answers given by your model. Dialogflow addresses this very elegantly by making it extremely simple to customize your inputs via a Data store prompt setting.

Sentiment analysis

Sentiment analysis inspects end-user input and identifies the prevailing subjective opinion, especially to determine an end-user's attitude as positive, negative, or neutral. When making a detect intent request with the API, you can specify that sentiment analysis be performed, and the response will contain sentiment analysis values. Learn more

Generative Fallback

The generative fallback feature uses Google's latest generative large language models (LLMs) to generate virtual agent responses when end-user input does not match an intent or parameter for form filling. The feature can be configured with a text prompt that instructs the LLM how to respond. You can use a predefined text prompt or add your own prompts.

Conversation Playbook

Vertex AI Conversation’s playbook feature (in preview) lets you use natural language to define what responses and transactions you want to enable your voice and chatbots to perform, similar to how you would instruct a human agent on how to handle tasks.


Answer feedback

Finally, answer feedback helps track agent performance, Dialogflow provides tools for collecting and analyzing end-user feedback on agent answers during a conversation.

Our Assessment

As you can see, the new GenAI capabilities of Dialogflow are impressive! It's possible now build and deploy to production, a genai based voice chatbot in less the 4 hours!

In summary, here is why you should consider Dialogflow for future chatbots, or voice-powered chatbots:
  • Robust ecosystem of features
  • Robust out of the box integrations (seamless integration to telephony, seamless integration with other services (SMS, text, chat) including WhatsApp, Facebook Messenger, Teams and Slack)
  • Robust console to manage flows and configure the experience
  • Native GenAI capabilities (as of Aug 29th 2023).
  • Ability to customize the responses with easy upload of documents. This could be great to tailor the answers with company specific content.
  • Custom workflows (also known as fulfilment) via webhooks.
  • Extremely high ROI (our team managed to have an operational voice chatbot in just 4 hours of work).
  • Voice customization (you can even train the bot to use your voice)
  • Multi-language
  • Ability to leverage hybrid agents combining the power of precise conversation controls (flows, parameters, intents, conditions, transitions, and so on) with data store handler generative features), as presented in our demo.
  • Ability to handle undesired intent matches (including backlisting of answers and topics)
  • Ability to have separate environments
  • Ability to test the models inline
  • NLP, NLU, TTS, STT and other AI features provided out of the box
  • Ability to conduct experiments
  • Ability to integrate with CI/CD pipelines (see screenshots below)
  • Analytics on calls and conversations
  • Ability to create experiments (aka. A/B/n testing)
  • Extensive API to build voice chatbots directly from code
  • Enterprise-grade GRC (governance, risk and compliance)
  • Fully managed solution

Conclusion

The ecosystem for AutoML, LLMs and GenAI is thriving with new solutions being created every day. Google is investing heavily in genai to outsmart competition, and is adding AI to most of its enterprise offerings. As an example, the features listed above are extremely new (announced last week), with others still to be added.

With that said, Dialogflow CX became a great alternative for voice chatbots if the advantages listed above can be justified over its tradeoffs: a more opinionated solution, less room for customization, requirement for Google Cloud, and more (yet not clear).

In counterpart, a custom solution could give us much more opportunity for customization to adapt to client’s needs. However, it too would have its own tradeoffs: a slower pace of development, higher cost of implementation, non-managed ops, a moving target on security, increased complexity, and more (yet not clear).

About the Author

Bruno Hildenbrand