diff --git a/examples/chatgpt/gpt_actions_library/gpt_action_redshift.ipynb b/examples/chatgpt/gpt_actions_library/gpt_action_redshift.ipynb index abd56806..d476e012 100644 --- a/examples/chatgpt/gpt_actions_library/gpt_action_redshift.ipynb +++ b/examples/chatgpt/gpt_actions_library/gpt_action_redshift.ipynb @@ -226,7 +226,7 @@ "metadata": {}, "outputs": [], "source": [ - "! aws redshift-serverless get-workgroup --workgroup-name default-workgroup --query 'workgroup.{address: endpoint.address, port: endpoint.port, SecurityGroupIds: securityGroupIds, SubnetIds: subnetIds}'" + "aws redshift-serverless get-workgroup --workgroup-name default-workgroup --query 'workgroup.{address: endpoint.address, port: endpoint.port, SecurityGroupIds: securityGroupIds, SubnetIds: subnetIds}'" ] }, { @@ -275,7 +275,6 @@ "metadata": {}, "outputs": [], "source": [ - "```yaml\n", "AWSTemplateFormatVersion: '2010-09-09'\n", "Transform: AWS::Serverless-2016-10-31\n", "Description: >\n", @@ -402,15 +401,14 @@ " Value: !GetAtt RedshiftMiddlewareFunctionRole.Arn\n", " CognitoUserPoolArn:\n", " Description: \"ARN of the Cognito User Pool\"\n", - " Value: !GetAtt MyCognitoUserPool.Arn\n", - "```" + " Value: !GetAtt MyCognitoUserPool.Arn\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Retrieve the URL information, you can then try a cURL request, which should return data in a file format:" + "Retrieve the URL information from the previous command output, you can then run a cURL request, which should return data in a file format:" ] }, { @@ -419,7 +417,7 @@ "metadata": {}, "outputs": [], "source": [ - "! curl -X POST https://10o5fvtsr1.execute-api.us-east-1.amazonaws.com/Prod/sql_statement/ \\\n", + "curl -X POST https:///Prod/sql_statement/ \\\n", "-H \"Content-Type: application/json\" \\\n", "-d '{ \"sql_statement\": \"SELECT * FROM customers LIMIT 10\", \"workgroup_name\": \"default-workgroup\", \"database_name\": \"pap-db\" }'" ] @@ -569,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", - "\n" + "![../../../images/chatgpt/redshift_gpt.png](../../../images/chatgpt/redshift_gpt.png)\n" ] } ], diff --git a/examples/chatgpt/gpt_actions_library/gpt_action_snowflake_direct.ipynb b/examples/chatgpt/gpt_actions_library/gpt_action_snowflake_direct.ipynb index 49e39ebc..e6a7b19e 100644 --- a/examples/chatgpt/gpt_actions_library/gpt_action_snowflake_direct.ipynb +++ b/examples/chatgpt/gpt_actions_library/gpt_action_snowflake_direct.ipynb @@ -304,7 +304,7 @@ "metadata": {}, "source": [ "\n", - "" + "![../../../images/chatgpt/snowflake_direct_oauth.png](../../../images/chatgpt/snowflake_direct_oauth.png)" ] }, { diff --git a/examples/chatgpt/gpt_actions_library/gpt_action_sql_database.ipynb b/examples/chatgpt/gpt_actions_library/gpt_action_sql_database.ipynb index 30516d17..c99d2825 100644 --- a/examples/chatgpt/gpt_actions_library/gpt_action_sql_database.ipynb +++ b/examples/chatgpt/gpt_actions_library/gpt_action_sql_database.ipynb @@ -68,7 +68,7 @@ "\n", "This guide will focus on option 1. For those interested in option 2, consider implementing a service like [PostgREST](https://github.com/PostgREST/postgrest) or [Hasura](https://hasura.io/) to streamline the process.\n", "\n", - "\"An\n", + "![An application architecture diagram depicting the interaction between the user, GPT, middleware, and database](../../../images/gptactions_sql_database_middleware.png)", "\n", "_Application architecture diagram_\n", "\n", diff --git a/examples/chatgpt/gpt_actions_library/gpt_middleware_aws_function.ipynb b/examples/chatgpt/gpt_actions_library/gpt_middleware_aws_function.ipynb index bebc857a..82108591 100644 --- a/examples/chatgpt/gpt_actions_library/gpt_middleware_aws_function.ipynb +++ b/examples/chatgpt/gpt_actions_library/gpt_middleware_aws_function.ipynb @@ -203,7 +203,7 @@ "\n", "Once you have this deployed, you can go check out the application on AWS Lambda:\n", "\n", - "\n", + "![../../../images/chatgpt/aws_lambda_1.png](../../../images/chatgpt/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", @@ -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", - "\n", + "![../../../images/chatgpt/aws_lambda_3.png](../../../images/chatgpt/aws_lambda_3.png)\n", "\n", "Create a Cognito Domain by clicking on \"Domains\" then \"Create Cognito Domain\"\n", "\n", - "\n", + "![../../../images/chatgpt/aws_lambda_8.png](../../../images/chatgpt/aws_lambda_8.png)\n", "\n", "Scroll down to `App client list` on the App Integration page of your User Pool:\n", "\n", - "\n", + "![../../../images/chatgpt/aws_lambda_9.png](../../../images/chatgpt/aws_lambda_9.png)\n", "\n", "Select your app client and edit the Hosted UI:\n", "\n", - "\n", + "![../../../images/chatgpt/aws_lambda_10.png](../../../images/chatgpt/aws_lambda_10.png)\n", "\n", "And add a callback URL, Authorization Scheme and OAuth scope:\n", "\n", - "\n", + "![../../../images/chatgpt/aws_lambda_11.png](../../../images/chatgpt/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 ``, 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", - "\n", + "![../../../images/chatgpt/aws_lambda_12.png](../../../images/chatgpt/aws_lambda_12.png)\n", "\n", - "\n", + "![../../../images/chatgpt/aws_lambda_13.png](../../../images/chatgpt/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)" ] }, { @@ -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", - "\n", + "![../../../images/chatgpt/aws_lambda_15.png](../../../images/chatgpt/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", - "\n", + "![../../../images/chatgpt/aws_lambda_16.png](../../../images/chatgpt/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", @@ -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", - "\n", + "![../../../images/chatgpt/aws_lambda_17.png](../../../images/chatgpt/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)" ] }, { @@ -371,13 +371,13 @@ "source": [ "You can now test this action again:\n", "\n", - "\n", + "![../../../images/chatgpt/aws_lambda_19.png](../../../images/chatgpt/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)" ] }, {