Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,7 @@
"\n",
"You now have deployed a GPT that uses a middleware in AWS, in an authenticated manner, that's able to connect to Redsfhit. Users with access (that are in Cognito) can now query your databases to perform data analysis task:\n",
"\n",
"![../../../images/chatgpt/redshift_gpt.png](../../../images/chatgpt/redshift_gpt.png)\n"
"![../../../images/redshift_gpt.png](../../../images/redshift_gpt.png)\n"
]
}
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@
"metadata": {},
"source": [
"\n",
"![../../../images/chatgpt/snowflake_direct_oauth.png](../../../images/chatgpt/snowflake_direct_oauth.png)"
"![../../../images/snowflake_direct_oauth.png](../../../images/snowflake_direct_oauth.png)"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@
"\n",
"Once you have this deployed, you can go check out the application on AWS Lambda:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_1.png](../../../images/chatgpt/aws_lambda_1.png)\n",
"![../../../images/aws_lambda_1.png](../../../images/aws_lambda_1.png)\n",
"\n",
"You can confirm that the function is not reachable unless authenticated by running a curl command without any authentication:\n",
"\n",
Expand Down Expand Up @@ -239,35 +239,35 @@
"\n",
"Let's now make sure we create a webpage/domain on which we can log-in. Go to AWS Cognito, select the newly created user pool & go to App Integration tab:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_3.png](../../../images/chatgpt/aws_lambda_3.png)\n",
"![../../../images/aws_lambda_3.png](../../../images/aws_lambda_3.png)\n",
"\n",
"Create a Cognito Domain by clicking on \"Domains\" then \"Create Cognito Domain\"\n",
"\n",
"![../../../images/chatgpt/aws_lambda_8.png](../../../images/chatgpt/aws_lambda_8.png)\n",
"![../../../images/aws_lambda_8.png](../../../images/aws_lambda_8.png)\n",
"\n",
"Scroll down to `App client list` on the App Integration page of your User Pool:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_9.png](../../../images/chatgpt/aws_lambda_9.png)\n",
"![../../../images/aws_lambda_9.png](../../../images/aws_lambda_9.png)\n",
"\n",
"Select your app client and edit the Hosted UI:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_10.png](../../../images/chatgpt/aws_lambda_10.png)\n",
"![../../../images/aws_lambda_10.png](../../../images/aws_lambda_10.png)\n",
"\n",
"And add a callback URL, Authorization Scheme and OAuth scope:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_11.png](../../../images/chatgpt/aws_lambda_11.png)\n",
"![../../../images/aws_lambda_11.png](../../../images/aws_lambda_11.png)\n",
"\n",
"_Note that you'll come back to this step when ChatGPT will generate a callback URL for the authentication of your action. The postman URL, should be used only for development purpose._\n",
"\n",
"You can try this connection in Postman, under Authorization for your `<api_url>`, copy/paste the value from AWS for the client_id, client_secret and the URL you set up for the auth domain, make sure to add `openid` in the scope to get a valid access_token:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_12.png](../../../images/chatgpt/aws_lambda_12.png)\n",
"![../../../images/aws_lambda_12.png](../../../images/aws_lambda_12.png)\n",
"\n",
"![../../../images/chatgpt/aws_lambda_13.png](../../../images/chatgpt/aws_lambda_13.png)\n",
"![../../../images/aws_lambda_13.png](../../../images/aws_lambda_13.png)\n",
"\n",
"If you're now doing the request on Postman, using the access_token you just retrieve, you'll get a success JSON returned:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_14.png](../../../images/chatgpt/aws_lambda_14.png)"
"![../../../images/aws_lambda_14.png](../../../images/aws_lambda_14.png)"
]
},
{
Expand Down Expand Up @@ -320,13 +320,13 @@
"Click on Authentication > OAuth.\n",
"We'll now need to fetch AWS Cognito's variables. Let's go on your User Pool > User Pool App Client. From there you can retrieve your client ID and client Secret.\n",
"\n",
"![../../../images/chatgpt/aws_lambda_15.png](../../../images/chatgpt/aws_lambda_15.png)\n",
"![../../../images/aws_lambda_15.png](../../../images/aws_lambda_15.png)\n",
"\n",
"Copy paste those values in ChatGPT. Now let's add the Token URLs.\n",
"\n",
"From your User Pool you'll find the URL you've previously created for the hosted domain.\n",
"\n",
"![../../../images/chatgpt/aws_lambda_16.png](../../../images/chatgpt/aws_lambda_16.png)\n",
"![../../../images/aws_lambda_16.png](../../../images/aws_lambda_16.png)\n",
"\n",
"We'll take this URL and append [AWS routes for OAuth](https://docs.aws.amazon.com/cognito/latest/developerguide/federation-endpoints.html).\n",
"\n",
Expand All @@ -351,11 +351,11 @@
"source": [
"Now go back on your GPT (moving out of the action subview), and you'll see a callback URL provided by ChatGPT for the Authentication:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_17.png](../../../images/chatgpt/aws_lambda_17.png)\n",
"![../../../images/aws_lambda_17.png](../../../images/aws_lambda_17.png)\n",
"\n",
"Get this URL and edit the hosted UI of your User Pool App client & save the changes:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_18.png](../../../images/chatgpt/aws_lambda_18.png)"
"![../../../images/aws_lambda_18.png](../../../images/aws_lambda_18.png)"
]
},
{
Expand All @@ -371,13 +371,13 @@
"source": [
"You can now test this action again:\n",
"\n",
"![../../../images/chatgpt/aws_lambda_19.png](../../../images/chatgpt/aws_lambda_19.png)\n",
"![../../../images/aws_lambda_19.png](../../../images/aws_lambda_19.png)\n",
"\n",
"You will be redirected to AWS Cognito page, which you can log-in in using the credentials previously set-up.\n",
"\n",
"If you now ask the GPT to run the same action, it will answer correctly as you're now authenticated and able to run this function!\n",
"\n",
"![../../../images/chatgpt/aws_lambda_20.png](../../../images/chatgpt/aws_lambda_20.png)"
"![../../../images/aws_lambda_20.png](../../../images/aws_lambda_20.png)"
]
},
{
Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes