Future of Software Project

Project Plan



Step 0. Sandbox Creation

Build a Python “sandbox” that achieves the three core functional requirements of the interface (below). The interface should be accessible by the LocalClarity team. This entire project will need to be open to the LocalClarity team at each stage so that we can iterate based on new learnings, especially related to the challenges of scale and the limitation of the context windows (both in terms of absolute capacity and the cost to execute each experience).

Step 1. Data Retrieval & Manipulation

In the sandbox, we should be able to:
1. Retrieve specific listing data sets via LocalClarity’s API using natural language queries.
megaphone
This is the core challenge of the entire initial effort. We need to be able to either pull in just the fields related to each request (i.e, having the readMask set by the AI model) OR we need to pull in a larger data set 200K to 4M tokens worth of data to evaluate against. Here is a smallish file of 200K tokens for just a 14 locations business. We have some businesses with hundreds of locations.
Small Business (trim):
sample-14-google.json
33.5 kB
Small Business (full file):
sample-14-google-full.json
1 MB

Target Size Business (trim file):
sample-file-351-google.json
1.2 MB
Target Size Business (full file):
sample-file-351-google-full.json
12.4 MB

Max Size (trim file):
sample-file-4800-google.json
10.3 MB
After validation of these files, direct access can be provided to the LocalClarity API for sample client data.
2. Build capabilities to support natural language queries about the session-retrieved data set, while providing a robust set of suggested options for different types of search and edits (i.e., common actions to take).
3. Based on the edits desired, build correctly formatted json packages that would serve to edit the LocalClarity database and each specific source. Fortunately, most edits will be on a specific variable and be much smaller than that the exploration data sets.
I’d like to focus on one step at a time, especially since LocalClarity will probably need to make edits to our API to allow for more granular (specific) requests to limit the amount of data necessary to perform searches on large sets of locations. We would start with 10 locations and then stress the processes for up to 1,000 locations.
info
We cannot replicate the entire LocalClarity database for access. It is entirely too large. It is also an Elastic Search database so straight SQL calls are not an option. We need to try and build off of API based data access. See API documentation link below.

Step 2. Notifications and Repositories

Given the experimental nature of this effort, we will NOT directly execute any requested changes in the LocalClarity or source database without manual review of each json output (and the associated authorizations).
To move towards an initial production alpha launch, the LocalClarity business teams needs a notification system (email or slack) that a new request has been logged by a customer. The business team can then explore and the code and then manually push the update (the team will use our Postman account to triggered the appropriate API requests).

Step 3. Expand to Review Data

After we have established the POC for manipulating location listing data (names, addresses, phones, holidays, etc.), we want to expand to the location review data sets (rating, reviewers, comments, sentiment, emotions) to perform first complex searches and eventually data manipulation.

Step 4. Chat Interface via Iframe

A new chat interface will then be exposed within the platform. The LocalClarity development team will pass to the chat interface the appropriate API credentials/tokens so that the chat interface can access the data for the searches and the file creation.
Sample designs will be provided as the target for the chat interface. We will need to decide if navigation is required to segregate the various data sets that can be controlled via the chat.

Step 5. Testing & Expansion

The business team will continue to evaluate the quality of the output with the following ongoing goals:
Establishing such a high degree of json structure reliability that human intervention is no longer required.
Expand the set of capabilities that can be performed on the Google listings.
Move from universal items such as location name, address, hours, and holidays to source specific data sets such as Categories and images.

Step 6. Full Cycle Connection

After an extended testing period, remove the manual output review and execution so that the entire workflow works in real-time for the user.



Technology


LocalClarity API Documentation

LocalClarity will create a user account in our development environment and then provide the API keys necessary to access the data.
We are concerned about the steps necessary to support the functionality for large clients. For example, can we simple pull the minimum amount of data via the API on the fly or would we need to make a substantially larger data call that is stored in a temporary repository and then exposed to the NL search. I don’t know how to do this at scale.

AI Model Options

LocalClarity maintains an API account at ChatGPT. While we would be thrilled to leverage OpenAI, we realize that we may need to access models with large context windows, and because of that need even different models. To support this project we can provide an API from ChatGPT, Anthropic, or Google Gemini.

Environment

Since the business team is driving the first two Steps of this effort while the in-house development team works on other priorities, we are hoping for a transparent, highly commented Python environment. We consider this a partnership project that will require multiple iterations and pivots as we begin to understand what can and can’t be done at scale.

Sample JSON Outputs

The LocalClarity team will provide multiple examples of the various outputs required to update the LocalClarity database and push the updates to the different source portals.
Fortunately, ChatGPT is full aware of the json structure required by Google. I was able to easily query, for example, for the the package required to update the hours for a location.
Google Business Profile API Overview



Design


We are currently operating is “proof of concept” stage, but it may be helpful to understand the project if you are aware of the end goal we are hoping to achieve.
Users will be able to engage in different data sets (such as their business listing records and their review records) to perform different searches and actions. You can see the examples of suggested searches or edits in the boxes.

Chat-Sample-Sana.png


Notes


1. Continuity: ​Thread continuity is required for a session. There may be significant benefits to have it extend over a single session but this will need to be reviewed as part of the considerations for scaling.




Appendix: Enterprise Software Evolution

Current Challenges

Enterprise software has a number of structural challenges that limit productivity and value creation. ​1. Complex Interfaces: Enterprise software often has intricate interfaces with numerous features, making it difficult for users to navigate and find what they need.
2. Steep Learning Curve: The complexity of enterprise software can lead to a steep learning curve, requiring extensive training for new users.
3. Inconsistent User Experiences Different modules or parts of enterprise software may have inconsistent user interfaces, causing confusion.
4. Error Handling and Help: Users may encounter errors or require assistance, and finding the right support resources can be time-consuming.
5. Time-Consuming Training Programs: Traditional training programs can be lengthy and costly, requiring significant time away from regular work.
6. Retention of Training Material: Users may forget what they've learned during training due to the infrequent use of certain features.
7. Adaptation to Updates: Keeping users up-to-date with new features and changes in enterprise software is challenging.
8. Varied Skill Levels: Employees have varying levels of technical expertise, making it difficult to design one-size-fits-all training programs.

AI-Powered Chat Interface Solutions

A natural language primary interface has a number of advantages.
1. Simplified Interaction: AI chat interfaces allow users to request information or perform tasks using natural language, reducing the need to navigate through complex menus.
2. Guided Assistance: AI chatbots provide immediate assistance and guidance, reducing the need for extensive training and allowing users to learn on the go.
3. Consistent User Experience: A chat interface provides a consistent user experience across different functionalities, creating a unified interaction model.
4. Real-Time Support: Chatbots offer real-time assistance, troubleshooting, and direct users to relevant help resources instantly.
5. On-Demand Learning: AI chat interfaces allow for on-demand, contextual learning, enabling users to learn as they work without the need for lengthy training sessions.
6. Just-In-Time Training: AI chatbots provide just-in-time training and reminders, helping users recall and apply their training as needed.
7. Real-Time Updates: AI interfaces can inform users of updates and changes in real-time, providing instant guidance on new features.
8. Tailored Assistance: AI chat interfaces can adapt to the user’s skill level, providing tailored assistance and learning paths based on individual needs.

Additional Benefits

1. Accessibility: AI chat interfaces can be designed to be accessible to users with disabilities, improving overall accessibility of enterprise software.
2. Scalability: AI chatbots can handle multiple user queries simultaneously, providing scalable support without the need for proportional increases in support staff.
3. Efficiency: By automating routine tasks and queries, AI chat interfaces free up human resources to focus on more complex issues, improving overall operational efficiency.
4. Global Ready: AI Powered chat interfaces are trained on multiple language models, allowing users to communicate directly with the platform in dozens of languages.


Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.