Examples of integrating gpt prompts into SAS Viya apps
npm install @sassoftware/gpt-samplestext
npx @sassoftware/gpt-samples@latest
`
On the prompt, enter chat to start the gpt session
Enter help to get guidance on what is possible
The gpt session will stay active until you enter exit
To exit the cli enter exit again.
Installation and Setup
The instruction below is for those users who wish to clone the code and extend the application.
- git clone https://github.com/sassoftware/restaf-demos gpt-samples -b gpt-samples
- cd gpt-samples
- npm install
- Define the environment variables described below
Getting started - Basic example
This example demonstrates setting up access to gpt and defining a function called
basic. This function's sole purpose is to reformat user provided keywords as
html, array or JavaScript object.
The code is in ./packages/basic/index.js
$3
`text
npm run basic
`
Some sample prompt and results:
$3
`text
SAS Viya is a cloud-based, in-memory analytics engine from SAS Institute, an American multinational developer of analytics software. SAS Viya provides quick, accurate results and reveals valuable insights from large amounts of data. It's capable of machine learning, text analytics, forecasting, optimization, and statistics. It can be used through a variety of programming languages including Python, R, Java, and Lua, or through its visual interface.
`
$3
`text
Sure, can you provide me with the keywords you want to process?
`
$3
`javascript
[ 'a', 'b', 'c' ]
`
$3
`text
- a
- b
- c
`
Example with access to Viya
This is similar to the previous example The basic function now executes SAS code
or casl code.
The prompt should look something like this:
`text
run file path to your .sas file or .casl file
`
The following starter files are included. Use .sas files if env VIYASOURCE is set to compute
- ../../programs/echo.casl
- ../../programs/datastep.casl
- ../../programs/datastep.sas
$3
`text
npm run basicSAS "run file "
`
$3
`json
{
"casResults": {
"result": {
"Fetch": {
"_ctb": true,
"attributes": {
"Action": {
"type": "string",
"value": "fetch"
},
"Actionset": {
"type": "string",
"value": "table"
},
"CreateTime": {
"type": "double",
"value": 2022787095.92428
}
},
"label": "Selected Rows from Table A",
"name": "Fetch",
"rows": [
[
1,
1
]
],
"schema": [
{
"attributes": {},
"format": "",
"label": "",
"name": "_Index_",
"type": "int",
"width": 8
},
{
"attributes": {},
"format": "",
"label": "",
"name": "x",
"type": "double",
"width": 8
}
],
"title": "Selected Rows from Table A"
}
}
}
}
`
$3
Make sure the env variable VIYASOURCE is set to compute.
`json
[
{
"line": "1 options NOSYNTAXCHECK OBS=MAX;%let syscc=0;",
"type": "source",
"version": 1
},
{
"line": "2 data a;",
"type": "source",
"version": 1
},
{
"line": "3 x=1;",
"type": "source",
"version": 1
},
{
"line": "4 run;",
"type": "source",
"version": 1
},
{
"line": "",
"type": "note",
"version": 1
},
{
"line": "NOTE: The data set WORK.A has 1 observations and 1 variables.",
"type": "note",
"version": 1
},
{
"line": "NOTE: DATA statement used (Total process time):",
"type": "note",
"version": 1
},
{
"line": " real time 0.00 seconds",
"type": "note",
"version": 1
},
{
"line": " cpu time 0.00 seconds",
"type": "note",
"version": 1
},
{
"line": " ",
"type": "note",
"version": 1
},
{
"line": "",
"type": "note",
"version": 1
},
{
"line": "5 ",
"type": "source",
"version": 1
},
{
"line": "6 proc print; run;",
"type": "source",
"version": 1
},
{
"line": "",
"type": "note",
"version": 1
},
{
"line": "NOTE: There were 1 observations read from the data set WORK.A.",
"type": "note",
"version": 1
},
{
"line": "NOTE: The PROCEDURE PRINT printed page 1.",
"type": "note",
"version": 1
},
{
"line": "NOTE: PROCEDURE PRINT used (Total process time):",
"type": "note",
"version": 1
},
{
"line": " real time 0.05 seconds",
"type": "note",
"version": 1
},
{
"line": " cpu time 0.06 seconds",
"type": "note",
"version": 1
},
{
"line": " ",
"type": "note",
"version": 1
},
{
"line": "",
"type": "note",
"version": 1
},
{
"line": "7 ",
"type": "source",
"version": 1
},
{
"line": "8 ;",
"type": "source",
"version": 1
},
{
"line": "",
"type": "note",
"version": 1
}
]
``