.. _voss-wingman:

Wingman
-------------

.. _24.1|VOSS-1365:
.. _24.1-PB2|EKB-21090:
.. _24.2|VOSS-1430|EKB-21301:
.. _25.3|VOSS-1537:


Overview
.........

Automate provides a **Wingman Chat** AI assistant in the Admin portal
that can be activated by a user from any form.

Data Privacy & Architecture Overview 
''''''''''''''''''''''''''''''''''''

VOSS uses Microsoft Azure OpenAI Service to provide generative AI capabilities. Customer Data, Prompts, and Completions sent to the VOSS Azure OpenAI instance
are not available to other customers or OpenAI and are not used to train base
models or improve Microsoft or third-party products without permission. 

Azure OpenAI models are stateless in the sense that prompts and completions are
not stored in the model itself. In VOSS's current implementation, we do not use
Azure OpenAI stateful storage features such as Responses API message history,
Assistants Threads, or stored completions. Where VOSS persists AI history,
that persistence occurs only in the deployment's system of record as described
below. (Note: Microsoft preview features may follow different privacy practices.) 

.. rubric:: 1. Deployment Architecture & Data Processing 

In our current architecture, inference requests are sent to a VOSS Azure
OpenAI resource deployed in East US (Virginia). Data required for inference
is therefore processed in that geography. Azure OpenAI applies guardrails
and abuse-monitoring controls as part of normal service operation. If
stricter geographic processing requirements apply, Azure also offers
regional and Data Zone deployment models which can be explored. 

Depending on your integration, the VOSS platform is deployed using one of
two primary models: 

* Scenario A: Customer Environment (On-Premises) 

  System of Record (Persistent Storage): The VOSS platform is hosted within
  your own Customer Environment. All persisted customer data, including
  persisted AI chat history and prompts stored by VOSS, remains within
  your environment and under your control. 

  Transient AI Processing: Content submitted for live inference is transmitted
  to the VOSS Azure OpenAI resource in East US for processing. 

* Scenario B: VOSS-Hosted SaaS 

  System of Record (Persistent Storage): VOSS hosts the platform in a secure
  Azure subscription located in the geography as agreed with the customer.
  All persistent application data and persisted AI history are stored in
  this deployment's database. 

  Transient AI Processing: Real-time inference is routed to the VOSS Azure
  OpenAI resource in East US. 

.. rubric:: 2. Security Controls & Abuse Monitoring 

To ensure data remains secure while utilizing US-based inference, the following controls and Microsoft policies apply: 

* **Guardrails and Abuse Monitoring**: As part of its safety controls, 
  Azure OpenAI evaluates prompts and completions for policy violations and
  indicators of potentially abusive use. By default, content that is flagged
  by these controls, or associated with a potentially abusive pattern of use,
  may be subject to further review. This review is conducted primarily by
  automated means, but in some cases may include review by authorized Microsoft
  employees under restricted access controls. Microsoft states that customers
  approved for Modified Abuse Monitoring do not undergo the abuse-monitoring
  storage and human-review process described above, although automated review
  may still occur. 

* **Network Transport Security**: Communication between the VOSS platform and
  Azure OpenAI is secured using HTTPS/TLS encryption in transit. VOSS does
  not currently support Azure Private Link / private endpoints for this
  integration. For customer on-premises deployments, inference traffic is
  sent from the customer environment to the Azure OpenAI endpoint over
  standard secure network paths. 

* **Legal Transfer Mechanisms**: International data transfers to the US are
  governed by the EU-U.S. Data Privacy Framework, the UK Extension to the
  EU-U.S. Data Privacy Framework, the Swiss-U.S. Data Privacy Framework and
  the Microsoft DPA with EU Standard Contractual Clauses.

 




Enabling Wingman Chat 
.......................

Wingman Chat is enabled by default, and can be disabled and enabled ``sysadmin`` users 
and admins with access to the ``data/Settings`` model. 

For details, see :ref:`enable-wingman-chat`:

* 
   .. raw:: latex

      See **Enable Wingman Chat** in the *Settings* topic in the Advanced Configuration Guide.

   .. raw:: html

      <a href="data-settings.html">Enable Wingman Chat</a>.


Wingman requires internet access (to Microsoft Azure) and 
supports connecting via a web proxy. This can be configured by ``sysadmin`` users
and admins with access to the ``data/Settings`` model and the **Web Proxy** menu.
For details, see :ref:`wingman-web-proxy` and :ref:`licensing-web-proxy`.

.. note::

   * A user role should also be associated with an **Access Profile**
     that has **Wingman Chat** enabled under the **Miscellaneous Permissions**.
     From release 24.1, default administrator roles have this permission enabled
     and an upgrade to 24.1 enables this permission on all existing access profiles.
   
   * In order to first use Wingman, an initial manual sync step is required -
     See: Insights Analytics in the Platform Guide.
   
For details on Access Profiles and the required administrator level to manage these settings, see:

* 
   .. raw:: html

      <a href="concepts-access-profile-operations.html">Access Profile Permissions and Operations</a>

   .. raw:: latex

      The Access Profiles chapter in the Core Feature Guide



Using Wingman
....................

.. note::

   While we strive to ensure and will continue to improve on chatbot accuracy in future releases,
   the correctness, completeness, or reliability of all results and documentation links is
   not guaranteed.


1. Click the **Wingman** icon on the Automate Admin Portal toolbar to launch the chat pane.

   .. image:: /src/images/wingman-icon.png 


2. In the chat pane, select the Menu icon (3 dots) adjacent to the **New Chat** title
   to display chat history, size and help options for using Wingman Chat:

   .. image:: /src/images/wingman-chat-menu.png

   You can also resize the chat pane by dragging the resize button in the left frame. 
   The help menu item opens a list of instruction types and examples that can be selected
   to test the Wingman response.

|

   .. image:: /src/images/wingman-chat-help.png

|


Conversation context and chat history
......................................

Wingman retains the *context* of the current conversation 
when follow-up questions are asked. For example, if a question is: 
"many phones?", then a follow-up question: "by site"
will be interpreted *within the context* of phones, in other words,
"how many phones by site".

A user's *chat history* (up to 100 conversations) is available to the user in
the **Chat History** drop-down.

This user chat history is persistent across sessions and is grouped
in **TODAY**, **THIS WEEK** and **OLDER** lists.

Chat history entries can be searched and managed (deleted and re-used),
allowing for access to useful and repeatable queries.

.. image:: /src/images/wingman-edit-history.png






Wingman task types 
...................

Three types of tasks can be carried out - each selected by using 
an appropriate *prefix phrase* in your chat input: 

Show me/List all/How many/Troubleshooting
'''''''''''''''''''''''''''''''''''''''''''

Look up data on the platform.

* For "Show me" questions, the reply can be rendered in a chart.

  .. image:: /src/images/wingman-num-inv-by-status.png
  
  Date ranges can also be included into questions, for example: "show me transactions for this week".
  The list below provides an indication of the calculation of the date range based on the phrase in the question:
  
  * today: from 00:00:00 (UTC) to 23:59:59 (UTC) of the current day.
  * yesterday: from 00:00:00 (UTC) to 23:59:59 (UTC) of the previous day, in other words, the full 24 hour period of the previous day.
  * last week: from 00:00:00 (UTC) last Monday to Sunday 23:59:59 (UTC).
  * last month: from 00:00:00 (UTC) of the first day of the preceding month to 23:59:59 (UTC) of the last day of the preceding month.
  * last year: from 00:00:00 (UTC) of the first day of the previous year to 23:59:59 (UTC) of the last day of the previous year.
  * this week: from 00:00:00 (UTC) of the first day of the current week to 23:59:59 (UTC) of the last day of the current week.
  * this month: from 00:00:00 (UTC) of the first day of the current month to 23:59:59 (UTC) of the last day of the current month.
  * this year: from 00:00:00 (UTC) of the first day of the current year to 23:59:59 (UTC) of the last day of the current year.
  * since <specified date>: from 00:00:00 (UTC) of the specified date to 23:59:59 (UTC) of the current day.
  * since <phrase>: Match start date time to the phrase, but end date must be today's date time. Examples:
  
    * since last week: from 00:00:00 (UTC) last Monday to today's date.
    * since yesterday: from 00:00:00 (UTC) to 23:59:59 (UTC) of the previous day to today's date.
  
  When queries are made without an explicit date range, the default behaviour is "since last week", for example,
  if a query was made on September 6th, 2024 at 12:55 UTC:
  
  .. image:: /src/images/wingman-showme-chart-default-date-range.png
  
  Icons below replies show options to change the chart or output format.

* For "How many" questions, Wingman by default responds by showing a bar
  chart with the count of the data found.

* For "List all" questions, Wingman by default responds by showing
  a table with the data found.

  .. image:: /src/images/wingman-list-all.png

* Questions can also be asked about *transactions*, for example:
  
  * Are there any failed transactions?
  * Why did it fail?
  * Which transactions are there?
  * Show me the logs of all severities

* *Troubleshooting* questions can be asked whereby Wingman will follow a detailed playbook to
  provide a structured problem diagnosis and report. 
  
  .. important::

     For the current release of Automate, only a Call Quality playbook is available
     to Wingman for troubleshooting, so troubleshooting questions need to be
     about call quality. More troubleshooting playbooks will be added as the most
     common cases are identified by customers and VOSS Support.
  
  For example, a question such as:

  "Investigate call issues for user Martina Leon over the last 6 months"
  
  This will return:
  
  * The set of troubleshooting steps to be carried out
  
    .. image:: /src/images/wingman-playbook-example1.png
  
    |
  
  * A detailed troubleshooting diagnosis and possible solutions,
    as shown in the images below:
  
    .. image:: /src/images/wingman-playbook-example2.png
  
    |
  
    .. image:: /src/images/wingman-playbook-example3.png
  
    |
  
  
.. note::

   * Wingman will use the permitted dashboard resources in a
     user's access profile as valid data lookup options.
   * Data sources are: :ref:`wingman-data-sources`. If a question does not
     refer to these sources, Wingman responds with the friendly names of
     these sources as available data sources.
   * Count results (in tables or charts) are dependent on the *hierarchy*
     at which the user is, as well as the user role permissions when using the
     Wingman chat interface.
     
     The example below shows responses where an
     admin user navigates down to a site level hierarchy and asks:
     "List all users with last name Smith" (result: **No Data to display.**)
     and then navigates to a provider level and repeats the question (result: table):

     .. image:: /src/images/wingman-hierarchy.png


   * "How many" and "Show me" questions use the Insights data source
     that is available from release 24.1 and is also used to
     create dashboard widgets. For details, see: :ref:`automate-dashboards`.
     This means that while questions for data can be refined by also specifying
     a single provider, reseller or customer or site hierarchy name
     in the question, questions do not return data when a question
     specifies all hierarchies.


I need/want to
''''''''''''''

Wingman Chat responds with action recommendations or instructions and with a **Go now** link
- based on user's menu layout - to the appropriate form, dashboard or feature.

.. image:: /src/images/wingman-follow-link.png

The **Go now** links use the following models for the matching tasks:

* Onboard a new multi-vendor user

  ``view/AddSubscriberFromProfile``

* Onboard a new Microsoft user

  ``view/MicrosoftSubscriberQas``

* Onboard a new Cisco user

  ``view/QuickSubscriber``

* Create a new Cisco phone

  ``view/AddPhone``

* Add a range of numbers to the number inventory

  ``view/NumberInventoryRangeMgmtVIEW``


How do I/What is/Tell me about/Explain
'''''''''''''''''''''''''''''''''''''''

Formulate questions that start with these words to ask documentation questions about the product.

Wingman responds with:

* a summarized answer
* a set of generated reference links to the full documentation on the documentation portal that may be relevant

  .. image:: /src/images/wingman-how-do-i.png

.. 25.3
.. 
.. * Conversation context awareness for follow-up queries.
.. * Tracking conversation history with a limit of 100 threads per user.
.. * Real-time progress updates during query processing.
.. * Expanded recommendations based on admin menu layout.
.. * Support for non-automate widgets (e.g., assurance widgets).
.. * Guided troubleshooting workflows using playbooks for structured problem diagnosis.
.. 
.. Assurance (25.3)
.. 
.. "Show me assurance ..."


.. _wingman-data-sources:

Wingman data sources
......................

The table describes the list of Automate data sources that are available
to Wingman when **Show me/List all/How many** - type questions are asked. 

.. tabularcolumns:: |p{9cm}|p{6cm}|

.. csv-table:: Wingman Data Sources
   :file: wingman-data-sources.csv
   :class: longtable
   :header-rows: 1
   :widths: 3 2   

