Skip to content

Instantly share code, notes, and snippets.

View daanalytics's full-sized avatar
🎯
Focusing

Daan Bakboord daanalytics

🎯
Focusing
View GitHub Profile
@daanalytics
daanalytics / grant-governance_access.sql
Created February 22, 2024 19:33
Grant access to Snowflake Governance Dashboard
USE ROLE accountadmin;
GRANT DATABASE ROLE snowflake.object_viewer TO ROLE <ROLE>;
GRANT DATABASE ROLE snowflake.governance_viewer TO ROLE <ROLE>;
@daanalytics
daanalytics / create_streamlit.sql
Created November 16, 2023 18:27
Create Streamlit Application 'Ask ChatGPT Anything'
CREATE STREAMLIT IF NOT EXISTS ask_chatgpt_anything
ROOT_LOCATION = '<stage_path_and_root_directory>' --'@<Streamlit Database>.Streamlit Schema>.<Streamlit Stage>'
MAIN_FILE = '<path_to_main_file_in_root_directory>' --'/<Python file>'
QUERY_WAREHOUSE = <streamlit_warehouse> -- warehouse_name (optional)
TITLE = '<title>' -- (optional)
COMMENT = '<comment>' --string_literal (optional)
;
@daanalytics
daanalytics / get_openai_response.sql
Created November 16, 2023 15:39
-/ Create the Get OpenAI Response UDF
--/ Create the UDF
CREATE OR REPLACE FUNCTION get_openai_response(prompt_output text, ai_model_engine text)
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = 3.8
HANDLER = 'return_openai_response'
EXTERNAL_ACCESS_INTEGRATIONS = (openai_external_access_integration)
PACKAGES = ('openai')
SECRETS = ('secret' = open_ai_secret)
AS
@daanalytics
daanalytics / openai_external_access_integration.sql
Created November 16, 2023 15:37
Create an external access integration.
--/ Create an external access integration.
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION openai_external_access_integration
ALLOWED_NETWORK_RULES = (openai_network_rule)
ALLOWED_AUTHENTICATION_SECRETS = (open_ai_secret)
ENABLED = true
;
@daanalytics
daanalytics / open_ai_secret.sql
Last active November 16, 2023 15:35
Create a secret to hold credentials.
--/ Create a secret to hold credentials.
CREATE OR REPLACE SECRET open_ai_secret
TYPE = GENERIC_STRING
SECRET_STRING = '<OPENAI_API_KEY>'
;
@daanalytics
daanalytics / openai_network_rule.sql
Last active November 16, 2023 15:32
Create a network rule to represent the external network location.
--/ Create a network rule to represent the external network location.
CREATE OR REPLACE NETWORK RULE openai_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('api.openai.com')
;
@daanalytics
daanalytics / regex_openai_response.py
Created October 31, 2023 14:24
Regex OpenAI Response
import re
# Regular expression to extract topics and descriptions
pattern = r'\d+\.\s(.*?):\s(.*?)(?=\d+\.|$)'
topics_and_descriptions = re.findall(pattern, openai_response, re.S)
for topic, description in topics_and_descriptions:
print("Topic:", topic)
print("Description:", description.strip())
print("-----")
@daanalytics
daanalytics / create_conditional_masking_policy.sql
Created May 31, 2023 08:48
Create Conditional Masking Policy
CREATE OR REPLACE MASKING POLICY conditional_mask_phone
AS
(phone_number STRING, gender STRING, marital_status STRING) RETURNS STRING ->
CASE
WHEN current_role() IN ('TASTY_ADMIN')
THEN phone_number
WHEN current_role() IN ('TASTY_TEST_ROLE')
THEN CASE
WHEN gender = 'Female'
AND marital_status = 'Single'
@daanalytics
daanalytics / apply_tag_based_mask.sql
Created May 24, 2023 13:43
Apply Tag-based Masking
ALTER TAG pii_email_tag SET MASKING POLICY data_governance.email_mask
;
@daanalytics
daanalytics / apply_dynamic_mask_pol.sql
Created May 1, 2023 12:47
Apply a Dynamic Masking Policy
-- Apply Dynamic Masking Policy to a table column
ALTER TABLE IF EXISTS customer_loyalty MODIFY COLUMN e_mail SET MASKING POLICY data_governance.email_mask
;