SAS Viya Copilot Explained: Building Machine Learning Pipelines in Minutes, Not Hours
Recent Library Articles
SAS Viya Copilot is a set of software as a service (SaaS) features and capabilities that use large language models (LLMs) to provide users with a more intuitive and accessible way to work with SAS Viya offerings. SAS Viya Copilot is for developers, data scientists, citizen data scientists, and business analysts who are writing code, analyzing data, building machine learning model pipelines, and doing more across the data and AI life cycle.
SAS Forward: Real Stories, Live Demos and AI Innovation
Ask the Expert
Join us November 4-5 for SAS Forward, a virtual event exploring modern analytics, AI and intelligent decisioning. Discover real-world success stories, explore emerging trends, and see the latest SAS innovations in action through expert-led sessions and live demonstrations.
Contour is a supported ingress controller for SAS Viya following the community-maintained ingress-nginx project's retirement in March 2026. The transition is largely straightforward and transparent, and the ingress layer generally requires little attention once deployed. However, there is one important architectural consideration that administrators and architects should understand when designing SAS Viya environments and integrating additional applications.
Applications such as SAS Enterprise Session Monitor (ESM), Apache Airflow, SAS Viya Monitoring for Kubernetes, custom web applications, and other services are often deployed alongside SAS Viya. Many of these applications require external access and are frequently exposed under the same public ingress hostname as SAS Viya.
Architectures like this that worked perfectly under ingress-nginx may require additional design considerations when using Contour. The reason lies in how the two ingress controllers handle ingress hostname ownership. For a recap on Contour and the decision to switch support from ingress-nginx, take a look at Raphael Poumarede's earlier breakdown. Raphael makes a really important point about HTTPProxy objects:
"Note, that unlike with ingress objects only one HTTProxy object (called “sas-httpproxy-root“), considered as the “root” HTTPProxy, holds the FQDN name and includes all the other proxies definitions."
One root HTTPProxy. So what exactly does that mean?
The Architectural Shift from ingress-nginx to Contour
Many organisations historically exposed multiple applications beneath a common ingress hostname.
... View more
I am performing an ordinal regression analysis with 10 predictors, reduced from an original set of 50. Sample size: N = 380. One of these predictors is the primary predictor of interest (Safety Hazards [SH], a continuous variable). The rest are potential confounders of the primary predictor or contributors to the model.
My primary outcome is Job Satisfaction (JS).
I distilled the 10 candidates from the original 50 by running ordinal bivariate regressions on each candidate.
a) A crude model [JS <-- (beta)*SH]
b) 49 adjusted models: [JS <-- (beta)*SH + any of the 49 predictors].
1. If any of the bivariate regressions produced a CIE of 10% or more for the primary predictor, SH, it made the list of 10, regardless of its p- value.
2. If any of the 50 candidates had a p- value of <= 0.1, regardless of its CIE value, it made it to the list of 10 as well.
I sort the list of 10 by CIE value and use that order to determine which variable to test next in the model.
I then begin the final fitting process to extract the most plausible confounders of SH and true model contributors from the 10 predictors. I use 2 different regression methods: Forward Stepwise Regression (FSR) and Backward Stepwise Regression (BSR).
The conditions to stay in the model are: "If the p-value > 0.1 and CIE <10%, then reject from the model; otherwise, retain."
In FSR, I start with a sparse (crude) model and sequentially add a predictor, then test whether it meets the retention criteria. If so, I retain it, add the next predictor to the new model, and apply the same retention/rejection criteria until all predictors have been tested.
In BSR, I start with a full model and sequentially remove predictors, one at a time, and perform similar rejection/retention tests as in FSR until all predictors have been tested.
However, I find that the FSR and BSR algorithms retain and reject different variables. To be clear, about 60% of variables are common to both algorithms.
My question is: why do FSR and BSR algorithms produce different results?
What is different about starting with a full model (BSR) versus a sparse model (FSR)?
What is different about starting with a sparse model (FSR) versus a full model (BSR)?
Please try to give an explanation that does not involve the term 'variance', as I tried to explain to my PI, only to be told that is the wrong way to explain it.
Thanks
David
... View more
Hi everyone, We are running SAS 9.4 M8 on AIX with the embedded Apache Tomcat 10.1.35 (which uses jakarta.servlet). The JRE shipped with SAS is IBM Semeru / Eclipse OpenJ9 21.0.9. We have deployed a custom webapp on the same Tomcat instance (SASServer1_1) that needs to perform server-side Kerberos authentication using a keytab to obtain a service ticket for a backend service. Our setup: - A keytab file with the HTTP service principal for our server - A jaas.config file (the same one used by SAS) with a custom section using com.ibm.security.auth.module.Krb5LoginModule - -Djava.security.auth.login.config is set in CATALINA_OPTS via setenv.sh pointing to the jaas.config - -Djavax.security.auth.useSubjectCredsOnly=false is also set - The keytab is readable by the SAS process user What works: - When we run a standalone Java test class using the SAME JRE, the SAME jaas.config, and the SAME keytab, the Kerberos login succeeds and we generate a valid SPNEGO token (586 bytes). Everything works perfectly in CLI. - kinit with the keytab works fine on the server - kvno for the target service principal returns a valid version number What does NOT work: - When the same JAAS LoginContext code runs inside a servlet filter in Tomcat, we get: "No LoginModule found for com.ibm.security.auth.module.Krb5LoginModule" This is confusing because the same JRE, same jaas.config, and same keytab work in CLI but not inside Tomcat. Our questions: Does SAS override or replace the java.security.auth.login.config system property at startup? Could this explain why our custom JAAS section is not found by the Tomcat classloader? Has anyone successfully deployed a custom webapp on the SAS embedded Tomcat that performs Kerberos authentication using JAAS LoginContext? Is there a recommended way to add custom JAAS login modules to the SAS embedded Tomcat without conflicting with SAS's own security configuration? We noticed the SAS Tomcat process has its own JAAS-related parameters in the startup command. Could there be a conflict between SAS's JAAS config and ours? Any guidance, experience sharing, or pointers to documentation would be greatly appreciated. Environment: - SAS 9.4 M8 - AIX - Apache Tomcat 10.1.35 (embedded with SAS) - IBM Semeru Runtime / Eclipse OpenJ9 21.0.9 - Kerberos realm: Active Directory Thank you in advance!
... View more
Want to easily access the Microsoft tools you use most within your SAS Viya environment? We’ll show you how.
Watch the Webinar
In this webinar, you will learn to:
Make informed business decisions by enhancing Microsoft documents with analytics insights.
Work with data in Microsoft applications and upload Excel files to SAS Viya.
Create SAS programs and insert results from programs and SAS jobs into Excel.
The questions from the Q&A segment held at the end of the webinar are listed below and the slides from the webinar are attached.
1. How do I access SAS for Microsoft 365?
SAS for Microsoft 365 is included with all SAS Viya licenses and is installed as an add-in within Microsoft applications. Your SAS administrator can help set it up, and detailed installation instructions are available in SAS for Microsoft 365 Documentation.
2. Do I need a separate license apart from my SAS Viya license?
No. SAS for Microsoft 365 is included with all SAS Viya licenses and does not require a separate license.
3. Does SAS for Microsoft 365 work for SAS 9 users?
SAS for Microsoft 365 is designed for SAS Viya users. If you are using SAS 9, consider SAS Office Analytics, which provides similar Microsoft Office integration capabilities for SAS 9 environments.
4. Is the SAS extension also available for Microsoft Visio?
Not at this time. I haven't heard that support for Microsoft Visio is on the product roadmap.
Recommended Resources
SAS for Microsoft 365 Course
SAS for Microsoft 365 Information Page
SAS for Microsoft 365 Documentation
Please see additional resources in the attached slide deck.
Want more tips? Be sure to subscribe to the Ask the Expert board to receive follow up Q&A, slides and recordings from other SAS Ask the Expert webinars.
... View more
Most organizations do not have a shortage of data, analytics or AI models. The harder problem is operationalizing them. A signal appears, a transaction looks unusual, a machine begins behaving differently, a customer's circumstances change, or an eligibility condition is triggered. At that point, the question is no longer simply “What is happening?” It becomes “What should we do about it — and can we make that decision quickly, consistently and at scale?”
There can be a considerable gap between generating an insight and creating business value from it. The hidden cost of the insight-to-action gap.
Consider a fraud alert. Detecting a potentially fraudulent transaction has value. But the economic outcome depends on what happens next. Should the transaction be declined automatically? Should the customer be challenged? Should it be referred for investigation? And how quickly can that decision be made?
The same pattern appears elsewhere. A manufacturer may predict that a component is likely to fail. The value comes from deciding whether to continue operating, schedule maintenance, order a replacement part or shut down the equipment.
A telecommunications provider may recognize that a customer is likely to leave. But somebody — or something — still has to decide what intervention is appropriate for that particular customer.
This suggests a different way of thinking about ROI from real-time analytics.
The value is not simply in detecting something sooner. It is in shortening and improving the path from signal to appropriate action. We need to think about the decision, not just the use case. We need to change the starting point for organizations evaluating real-time analytics. Rather than beginning with a catalogue of possible use cases, we need to start with the decisions that matter.
It includes asking:
How frequently is this decision made? A small improvement to a decision made millions of times can potentially be more valuable than a dramatic improvement to an occasional decision.
How valuable is speed? For some decisions, a delay of several hours makes little difference. For fraud, equipment failure or a real-time customer interaction, milliseconds or seconds may matter.
What is the cost of a poor decision? False positives, unnecessary interventions, missed opportunities and inconsistent treatment all carry costs.
How much manual effort sits between insight and action? An organization may have sophisticated analytics while still relying on people, spreadsheets, emails and disconnected workflows to determine what happens next.
How important is consistency and governance? In regulated or high-risk environments, the organization needs more than a good decision. It may also need to demonstrate how and why that decision was made.
These questions begin to expose where the business case really lies.
The architecture mandate
This is where the combination of SAS Event Stream Processing (ESP) and SAS Intelligent Decisioning becomes interesting. ESP addresses the first part of the problem: understanding what is happening as it happens. It can ingest, enrich, correlate and analyze data in motion, joining multiple data sources and applying AI and pattern-detection logic in real time.
Intelligent Decisioning addresses the next part: determining what should happen. Business rules, policies, AI models, eligibility criteria, decision strategies and approval workflows can be managed within a decisioning environment rather than embedded separately across operational systems.
The resulting architecture creates a continuous operational loop: Detect → Understand → Decide → Act. The important point is that these are not four independent activities. The value comes from connecting them.
A more useful way to think about ROI
This also gives organisations a practical framework for assessing potential returns.
Instead of asking only, “How much money will this use case save?”, consider four sources of value:
Decision speed — What is the economic value of acting seconds, minutes or hours earlier?
Decision quality — What is the value of increasing the proportion of appropriate decisions while reducing false positives, unnecessary interventions or missed opportunities?
Decision efficiency — How much manual work, duplicated logic and operational friction can be removed?
Decision governance — What is the value of applying policies consistently and being able to explain, audit and change how decisions are made?
Different use cases will produce very different answers
Fraud may be dominated by speed and decision quality. Manufacturing may emphasize avoided downtime. Customer engagement may focus on conversion, retention and relevance. Public-sector applications may place greater weight on consistency, transparency and policy compliance.
The technology may be similar. The economic logic is not. Start with the decisions worth improving This leads to a useful discipline for organizations considering real-time decisioning.
Don't start by asking, “Where could we use streaming analytics?” Start by identifying high-volume, high-value or time-sensitive decisions and ask: What signals inform this decision? How quickly do they arrive? What determines the appropriate response? What currently prevents us from acting faster or more consistently? And what would improve economically if we closed that gap?
The trick is to move the focus away from technology looking for a use case. It turns it into a conversation about decision economics. ESP identifies what is happening. Intelligent Decisioning determines what should happen next. The business case comes from understanding the value of making that connection — repeatedly, reliably and at scale.
... View more