Skip to content

Releases: GoogleCloudPlatform/dfcx-scrapi

v1.10.5

06 Mar 02:28
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.10.4...1.10.5

v1.10.4

20 Feb 15:26
Compare
Choose a tag to compare

What's Changed

  • Pass the correct parameter to _update_kwargs by @MRyderOC in #174

Full Changelog: 1.10.3...1.10.4

v1.10.3

09 Feb 19:04
Compare
Choose a tag to compare

What's Changed

Full Changelog: 1.10.2...1.10.3

v1.10.2

08 Feb 04:08
Compare
Choose a tag to compare

What's Changed

Full Changelog: 1.10.1...1.10.2

v1.10.1

05 Feb 19:35
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.10.0...1.10.1

v1.10.0

15 Dec 17:42
Compare
Choose a tag to compare

New Features

Vertex AI Search and Conversation Engines and Data Stores!😍🚒💿

SUPER excited to finally add support for programmatic creation of Engines and Data Stores for Vertex AI Search and Conversation!
This was a big collaboration between several teams including Vertex Applied AI Incubator, Vertex Search, Dialogflow and DevRel to get alignment and access to the proper API endpoints for making this happen!

In just a few lines of code, you can now create a fully working Engine/Data Store!

from dfcx_scrapi.core.data_stores import DataStores
from dfcx_scrapi.core.engines import Engines
from dfcx_scrapi.core.sites import Sites

PROJECT_ID = "PROJECT_ID"
CREDS_PATH = "YOUR_CREDS_PATH

ds = DataStores(project_id=PROJECT_ID)
ds.create_datastore("my-cool-website-datastore")
ds_map = ds.get_data_stores_map(reverse=True)
my_ds = ds_map["my-cool-website-datastore"]

sites = Sites(project_id=PROJECT_ID)
sites.create_site(data_store_id=my_ds, uri_pattern="www.example.com/blog/*", include_site=True)
sites.create_site(data_store_id=my_ds, uri_pattern="www.example.com/news", include_site=False)

eng = Engines(PROJECT_ID, creds_path=CREDS_PATH)
eng_proto = eng.build_chat_engine_proto(
              display_name="my-cool-website-engine", business_name="Google Example", data_store_ids=my_ds)

eng.create_engine(eng_proto)

In addition to Engine and Data Store creation, we provide many other quality of life management endpoints like:

  • Enable / Disable Advanced Site Search
  • Recrawl URIs
  • Check Indexing Status
  • Check Verification Status
  • ...and much more!

Generators ♺🏗️

Excited to finally add full programmatic support for Dialogflow CX Generators!
You can now create, list, get, delete and update Generators and prompts directly from SCRAPI!

Fun Fact: 99% of this class was written by Gemini! ✨🤩😮

Generative Fallback 🍂🔙

Full support for modifying and creating Generative Fallback prompts and templates now available in SCRAPI!

Data Store Prompt Settings ⚙️

You can now programmatically modify the Generative AI Settings for Data Store prompts!
This includes modifying the Business Name, Agent Name, Agent Scope, and other settings.

Enhancements

  • Added option in restore_agent to allow for Fallback Settings to be set when importing an Agent
  • Added delete_transition_route_group
  • Added force arg for delete_entity_type to ensure the Entity Type is deleted even if it is referenced
  • Added Generative Settings builder class
  • Added support for Generative Settings in Agent builder class
  • Added support for Start Page (i.e. Flow Object) in the NluUtils class that allows users to run similarity comparison on Flow Object intents
  • Added support for Agent Level Route Groups

Bug Fix

  • Fixed a bug with delete_entity_type where passing the obj arg would not delete the Entity Type
  • Fixed several bugs in examples/google_sheets_series/cx_to_sheets_by_flow.ipynb that were using outdated code refs

What's Changed

New Contributors

Full Changelog: 1.9.0...1.10.0

v1.9.0

19 Oct 01:09
Compare
Choose a tag to compare

New Features

Vertex AI Conversation Eval Tool 📝 🔍

This iquality eval framework and tool supports the newly released Vertex AI Search & Conversation features.
You can use the new sample notebooks to:

  1. Build an Eval Dataset
  2. Run your Evals against your Vertex AI Conversational Agent
  3. Rate your Agent responses
  4. Visualize the distribution for your Ratings

Bug Fix

  • Added ENUM choice for match_type

What's Changed

New Contributors

Full Changelog: 1.8.1...1.9.0

v1.8.1

11 Sep 19:36
Compare
Choose a tag to compare

Bug Fix

  • Fixed typo in local agent file

Full Changelog: 1.8.0...1.8.1

v1.8.0

11 Sep 19:30
Compare
Choose a tag to compare

New Features

Offline Agent Parsing 📵

We're excited to announce a new feature we're calling "Offline Agent Parsing"!
So what does it do? 🤔

TLDR

The Offline Agent Parsing feature pulls your entire agent file offline and returns a Python object ✨jam packed ✨ with all of the key Agent Resources and most commonly sought after bits of information from your agent.

It's Fast! ⚡️

We can process any agent size, from 1 Flow to 100 Flows, in blazing fast time! 🔥
image

It's Cheap! (On the API!) 💰

We make all the magic happen in just 2 API calls, no matter the agent size! 🪄
image

It's Convenient! 🙏🏼

We already know you need that map and DataFrame. We gotcha! 😎
image
image

Some examples of what you'll get when you use the feature:

  • All of the major agent resources in List format (i.e. Intents, Entity Types, Flows, Pages, etc.)
  • All of the common resource maps (i.e. intents_map, flows_map, pages_map, etc.)
  • A full graph representation of your agent, for additional downstream parsing
  • Handy DataFrames for identifying gaps in your agent design
  • Total Counts of all common resources (i.e. Total Intents, Total Training Phrases, etc.)
  • ...and much more!

For a detail output of available, see the AgentData class.

Motivation

The motivation behind this class comes from many of our customers that are building really, REALLY big Dialogflow CX agents!

Using the standard APIs can become a costly hinderance in terms of time it takes to retrieve the online data from your Agent.
If you have 50 Flows and you want to get all of the Pages in your agent, that's a minimum of 51 API calls!
Additionally, you have to beware of API Quota limits.
Run your script too fast, and you'll hit a 429 Quota Exhausted error!

With Offline Agent Parsing, we take all of the heavy lifting offline and we do it all with just a single API call.

Batch NLU Evaluation 📊

Another great feature that we're releasing is the NLU Evaluation framework!

This framework allows you to batch / bulk test your Dialogflow CX NLU model against your evaluation datasets.
This is especially helpful for teams that do a lot of NLU tuning in Dialogflow CX.

See the new Sample Eval Notebook for some pointers on getting started!

Bug Fixes

  • Fixed a bug where location_id was reverted to location in agents.py

Misc

  • Fixed some docs in various places
  • Fixed pylint deprecation error for builtins
  • Added optimization for __convert_tr_target_page in CopyUtil

What's Changed

Full Changelog: 1.7.0...1.8.0

v1.7.0

21 Jun 02:42
Compare
Choose a tag to compare

Enhancements

API Call Counter

We've introduced a new API Call Counter feature that allows you to inspect the total number of API calls made by any Class in DFCX SCRAPI. This is helpful for debugging and understanding quotas and rate limits on your project. You can access the new API counter by inspecting the following methods on any class:

  • get_api_calls_details()
  • get_api_calls_count()

Additionally you can inspect the parameter api_calls_dict to get information about the API calls for that class.

Example:

from dfcx_scrapi.core.intents import Intents

i = Intents()
my_agent = <SAMPLE_AGENT_ID>

my_intents = list_intents(my_agent)

print(i.get_api_calls_details())
print(i.get_api_calls_count())
print(i.api_calls_dict)

Language Code Additions

We've updated language code parameters across several classes and methods to enable support for multilingual agents.

Test Cases Conversation Turns

We added some additional logic to allow user's to export Test Case full conversation turns when performing a list/get on test cases.

Bug Fixes

  • fixed an issue with delete page that wasn't allowing the user to force delete a page when requested
  • fixed an issue with DialogflowConversation class that was relying on the QueryResult.diagnostic_info field, causing NO_MATCH results to raise a NoneType error when using the reply method in that class

What's Changed

New Contributors

Full Changelog: 1.6.3...1.7.0