Releases: GoogleCloudPlatform/dfcx-scrapi
v1.10.5
What's Changed
- Fixed duplicated detect intent call if parameters are provided. by @Mrpatekful in #175
- BUGFIX: Set Region When ID is Missing by @kmaphoenix in #176
New Contributors
- @Mrpatekful made their first contribution in #175
Full Changelog: 1.10.4...1.10.5
v1.10.4
What's Changed
Full Changelog: 1.10.3...1.10.4
v1.10.3
v1.10.2
What's Changed
- Fix/data store endpoints by @kmaphoenix in #172
- Feature/get test cases map by @jkshj21 in #159
Full Changelog: 1.10.1...1.10.2
v1.10.1
What's Changed
- fix:_check_proto_obj_attr_exist does not handle None properly by @gyar-denim in #166
- chore: bump requirements by @kmaphoenix in #170
New Contributors
- @gyar-denim made their first contribution in #166
Full Changelog: 1.10.0...1.10.1
v1.10.0
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 fordelete_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 theNluUtils
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 theobj
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
- Feature/agent restore option by @jkshj21 in #152
- Feature/delete route group by @MRyderOC in #151
- Add new Generators Feature by @kmaphoenix in #155
- Bug/google sheets series by @jkshj21 in #154
- Generative Settings Builders and Supporting Agent Methods by @kmaphoenix in #156
- Add full support for Data Stores by @kmaphoenix in #158
- Feature/load start page intents by @hjosiah in #147
New Contributors
- @jkshj21 made their first contribution in #152
- @hjosiah made their first contribution in #147
- Gemini made their first contribution in #155
Full Changelog: 1.9.0...1.10.0
v1.9.0
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:
- Build an Eval Dataset
- Run your Evals against your Vertex AI Conversational Agent
- Rate your Agent responses
- Visualize the distribution for your Ratings
Bug Fix
- Added ENUM choice for
match_type
What's Changed
- Add Evaluation Tool for generative conversations by @ADiegoCAlonso in #144
- feat: add new match_type for LLM by @kmaphoenix in #146
New Contributors
- @ADiegoCAlonso made their first contribution in #144
Full Changelog: 1.8.1...1.9.0
v1.8.1
v1.8.0
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! 🔥
It's Cheap! (On the API!) 💰
We make all the magic happen in just 2 API calls, no matter the agent size! 🪄
It's Convenient! 🙏🏼
We already know you need that map and DataFrame. We gotcha! 😎
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 tolocation
inagents.py
Misc
- Fixed some docs in various places
- Fixed pylint deprecation error for builtins
- Added optimization for
__convert_tr_target_page
inCopyUtil
What's Changed
- Misc/improvement by @MRyderOC in #137
- fix: revert change to location_id arg by @kmaphoenix in #139
- Feature/agent checking by @SeanScripts in #104
- Feat/nlu evals by @kmaphoenix in #143
Full Changelog: 1.7.0...1.8.0
v1.7.0
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 aNoneType
error when using thereply
method in that class
What's Changed
- add force for delete page by @MRyderOC in #124
- Bump pyyaml from 5.3.1 to 5.4 by @dependabot in #125
- Feature/api call counter by @MRyderOC in #133
- add include_conversation_turns to the list_test_cases by @MRyderOC in #132
- feat: add language code arg to several methods by @kmaphoenix in #134
- fix: deprecate reliance on diag_info by @kmaphoenix in #136
New Contributors
- @dependabot made their first contribution in #125
Full Changelog: 1.6.3...1.7.0