Giới thiệu
Trang này cung cấp hướng dẫn & chỉ dẫn cho các nhà phát triển xây dựng Hành động GPT-4o cho một ứng dụng cụ thể. Trước khi tiếp tục, hãy đảm bảo rằng bạn đã làm quen với các thông tin sau:
+ Giới thiệu về Hành động GPT
+ Giới thiệu về Thư viện hành động GPT
+ Ví dụ về việc xây dựng một hành động GPT từ đầu
Hướng dẫn này cung cấp thông tin chi tiết về cách kết nối tài khoản Chat GPT 4 với Snowflake Data Warehouse cho mục đích trả về truy vấn SQL cho ChatGPT để sử dụng với Data Analysis . GPT yêu cầu một hành động giao tiếp với phần mềm trung gian (tức là hàm Azure) để hành động có thể định dạng đúng phản hồi từ Snowflake để sử dụng trong môi trường sổ ghi chép Python. Dữ liệu phải được trả về dưới dạng tệp , do đó hàm phần mềm trung gian phải chuyển đổi phản hồi SQL thành tệp CSV/Excel, có kích thước dưới 10MB.
Tài liệu này sẽ phác thảo hành động GPT của hàm Middleware. Để thiết lập hàm middleware, hãy xem thư viện GPT Actions (Middleware) - Azure Functions . Bạn có thể kết hợp hành động middleware Snowflake này với hành động Snowflake Directly để kích hoạt GPT có thể tạo và kiểm tra các truy vấn SQL trước khi thực hiện chúng.
Giá trị + Ví dụ về các trường hợp sử dụng kinh doanh
Khách hàng Snowflake hiện tại có thể tận dụng các hướng dẫn này để truy vấn dữ liệu từ kho dữ liệu của họ và tải dữ liệu đó vào môi trường Data Analysis Python để có thêm thông tin chi tiết. Điều này cho phép phân tích được hỗ trợ bởi ChatGPT như trực quan hóa các tập dữ liệu, xác định các mẫu/dị thường hoặc xác định các khoảng trống cho mục đích làm sạch dữ liệu. GPT này có thể được sử dụng để thúc đẩy các quyết định kinh doanh từ các tập dữ liệu tương đối nhỏ hoặc để khám phá các tập hợp dữ liệu thông qua AI để tạo ra các giả thuyết khi bạn khám phá tập dữ liệu toàn diện trong công cụ BI của mình, tiết kiệm thời gian và tiền bạc, đồng thời xác định các mẫu chưa từng thấy trước đây.
Thông tin ứng dụng
Liên kết khóa ứng dụng
Hãy xem qua các liên kết này từ Snowflake và Azure trước khi bạn bắt đầu:
Hành động bông tuyết
- Trang web ứng dụng: https://app.snowflake.com/
- Tài liệu về ứng dụng Python Connector: https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-connect
Chức năng Azure
- Trang web ứng dụng: https://learn.microsoft.com/en-us/azure/azure-functions/
- Tài liệu API ứng dụng: https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference/
Điều kiện tiên quyết của ứng dụng
Trước khi bắt đầu, hãy đảm bảo bạn thực hiện các bước sau trong môi trường ứng dụng của mình:
- Cung cấp kho dữ liệu Snowflake
- Đảm bảo rằng người dùng xác thực vào Snowflake qua ChatGPT có quyền truy cập vào cơ sở dữ liệu, lược đồ và bảng có vai trò cần thiết
Ngoài ra, trước khi tạo ứng dụng của bạn trong Azure Function App, bạn sẽ cần một cách để xử lý xác thực người dùng. Bạn sẽ cần thiết lập Đăng ký ứng dụng OAuth trong Azure Entra ID có thể được liên kết với tích hợp bảo mật OAuth bên ngoài của Snowflake. Tích hợp bảo mật OAuth bên ngoài của Snowflake cho phép các hệ thống bên ngoài phát hành mã thông báo truy cập mà Snowflake có thể sử dụng để xác định mức độ truy cập. Trong trường hợp này, nhà cung cấp mã thông báo bên ngoài đó là Azure Entra ID. Vì ChatGPT 4 sẽ kết nối với Azure chứ không phải Snowflake, nên mã thông báo OAuth của người dùng GPT sẽ được Azure cung cấp liên kết với người dùng của họ trong Entra ID. Do đó, bạn sẽ cần một cách để ánh xạ người dùng trong Snowflake với người dùng tương ứng của họ trong Azure.
Tất cả các bước cần thiết cho cả phía Azure và phía Snowflake đều được trình bày dưới đây.
Cấu hình tài nguyên OAuth trong Azure Entra ID
Chúng tôi sẽ thiết lập Đăng ký ứng dụng mới, cấu hình các Phạm vi Snowflake cần thiết trong Azure sẽ được sử dụng và truy xuất tất cả các tham số cấu hình OAuth cần thiết trong cả Snowflake và ChatGPT. Phần này sẽ nằm trong Azure để trong phần tiếp theo, bạn sẽ có thông tin cần thiết để liên kết đến Đăng ký ứng dụng này khi cấu hình ở phía Snowflake.
- Điều hướng đến Cổng thông tin Microsoft Azure và xác thực.
- Điều hướng đến Azure Entra ID (trước đây là Active Directory).
- Nhấp vào Đăng ký ứng dụng trong mục Quản lý .
- Nhấp vào Đăng ký mới .
- Nhập
Snowflake GPT OAuth Clienthoặc giá trị tương tự như Tên . - Xác minh loại tài khoản được hỗ trợ được đặt thành Người thuê đơn lẻ .
- Bỏ qua URI chuyển hướng ngay bây giờ. Bạn sẽ quay lại sau khi cấu hình GPT của mình
- Nhấp vào Đăng ký .
- Ghi lại ID Thư mục (người thuê) (
TENANT_ID) trong mục Essentials . Bạn sẽ sử dụng ID này để tạoAZURE_AD_ISSUERvàAZURE_AD_JWS_KEY_ENDPOINT.- Là
AZURE_AD_ISSUERhttps://sts.windows.net/TENANT_ID/ - Là
AZURE_AD_JWS_KEY_ENDPOINThttps://login.microsoftonline.com/TENANT_ID/discovery/v2.0/keys
- Là
- Nhấp vào Điểm cuối trong giao diện Tổng quan .
- Ở phía bên phải, hãy lưu ý điểm cuối xác thực OAuth 2.0 (v2) là
AZURE_AD_OAUTH_AUTHORIZATION_ENDPOINTvà điểm cuối mã thông báo OAuth 2.0 (v2) làAZURE_AD_OAUTH_TOKEN_ENDPOINT.- Các điểm cuối phải giống với
https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/oauth2/v2.0/authorizationvàhttps://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/oauth2/v2.0/token.
- Các điểm cuối phải giống với
- Nhấp vào **Phơi bày API **trong mục Quản lý .
- Nhấp vào liên kết Đặt bên cạnh URI ID ứng dụng để đặt
Application ID URI.- Phải
Application ID URIlà duy nhất trong thư mục của tổ chức bạn, chẳng hạn nhưhttps://your.company.com/4d2a8c2b-a5f4-4b86-93ca-294185f45f2e. Giá trị này sẽ được gọi là trong các bước cấu hình tiếp theo.
- Phải
- Để thêm Vai trò Snowflake làm phạm vi OAuth cho các luồng OAuth trong đó máy khách theo chương trình hoạt động thay mặt cho người dùng, hãy nhấp vào Thêm phạm vi để thêm phạm vi đại diện cho vai trò Snowflake.
- Nhập phạm vi bằng cách nhập tên vai trò Snowflake với
session:scope:tiền tố. Ví dụ, đối với vai trò Snowflake Analyst, hãy nhậpsession:scope:analyst. - Chọn người có thể đồng ý.
- Nhập tên hiển thị cho phạm vi (ví dụ: Quản trị viên tài khoản).
- Nhập mô tả cho phạm vi (ví dụ: Có thể quản lý tài khoản Snowflake).
- Nhấp vào Thêm phạm vi .
- Lưu phạm vi dưới dạng
AZURE_AD_SCOPE. Nó phải là sự kết hợp của bạnApplication ID URIvàScope name
- Nhập phạm vi bằng cách nhập tên vai trò Snowflake với
- Trong phần Tổng quan , hãy sao chép
ClientIDtừ trường ID ứng dụng (khách hàng) . Trường này sẽ được gọi làOAUTH_CLIENT_IDtrong các bước sau. - Nhấp vào Chứng chỉ & bí mật rồi nhấp vào Bí mật máy khách mới .
- Thêm mô tả về bí mật.
- Chọn 730 ngày (24 tháng) . Để thử nghiệm, hãy chọn những bí mật không hết hạn sớm.
- Nhấp vào Thêm . Sao chép bí mật. Điều này sẽ được gọi là
OAUTH_CLIENT_SECRETtrong các bước sau. - Đối với các máy khách theo chương trình sẽ yêu cầu Mã truy cập thay mặt cho người dùng, hãy cấu hình Quyền được ủy quyền cho Ứng dụng như sau.
- Nhấp vào Quyền API .
- Nhấp vào Thêm quyền .
- Nhấp vào API của tôi .
- Nhấp vào Tài nguyên OAuth Snowflake mà bạn đã tạo trong Cấu hình tài nguyên OAuth trong Azure AD .
- Nhấp vào hộp Quyền được ủy quyền .
- Kiểm tra Quyền liên quan đến Phạm vi được xác định trong Ứng dụng mà bạn muốn cấp cho máy khách này.
- Nhấp vào Thêm quyền .
- Nhấp vào nút Grant Admin Consent để cấp quyền cho máy khách. Lưu ý rằng vì mục đích thử nghiệm, quyền được cấu hình theo cách này. Tuy nhiên, trong môi trường sản xuất, việc cấp quyền theo cách này là không nên.
- Nhấp vào Có .
Tạo tích hợp bảo mật trong Snowflake
Sau khi Đăng ký ứng dụng hoàn tất trong Azure Entra ID, bước tiếp theo là liên kết Đăng ký ứng dụng đó với Snowflake thông qua Tích hợp bảo mật OAuth bên ngoài. Tham external_oauth_audience_listsố của tích hợp bảo mật phải khớp với URI ID ứng dụng mà bạn đã chỉ định khi cấu hình Azure Entra ID.
Issuer và điểm cuối JWS Keys cũng sẽ đến từ các giá trị được thu thập trong các bước trước đó. Thuộc tính ánh xạ người dùng có thể được đặt thành hoặc , và đây là cách thông tin đăng nhập Microsoft của người dùng sẽ được ánh xạ tới người dùng của họ trong Snowflake để đảm bảo các quyền trong Snowflake được tôn trọng bởi mã thông báo truy cập được cấp cho ChatGPT.EMAIL_ADDRESSLOGIN_NAME
CREATE OR REPLACE SECURITY INTEGRATION AZURE_OAUTH_INTEGRATION TYPE = EXTERNAL_OAUTH ENABLED = TRUE EXTERNAL_OAUTH_TYPE = 'AZURE' EXTERNAL_OAUTH_ISSUER = '' EXTERNAL_OAUTH_JWS_KEYS_URL = '' EXTERNAL_OAUTH_AUDIENCE_LIST = ('') EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'upn' EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'EMAIL_ADDRESS';Thông tin phần mềm trung gian:
Hãy đảm bảo bạn thực hiện các bước sau trong môi trường Azure của mình:
- Azure Portal hoặc VS Code có quyền truy cập để tạo Azure Function Apps và Azure Entra App Registrations
- Có một phần chi tiết trong hướng dẫn này liên quan đến việc triển khai và thiết kế chức năng cần thiết để gói phản hồi từ Snowflake nhằm trả về kết quả truy vấn dưới dạng CSV cho ChatGPT. Azure Function App cho phép GPT của bạn thu thập các tập dữ liệu lớn hơn vì ChatGPT có thể thu thập nhiều dữ liệu hơn từ các phản hồi tệp thay vì từ các tải trọng ứng dụng/json. Ngoài ra, các tập dữ liệu đó sẽ chỉ khả dụng cho Phân tích dữ liệu (hay còn gọi là Trình thông dịch mã) với phản hồi được định dạng dưới dạng tệp CSV.
Ứng dụng Azure Function
Bây giờ chúng ta đã tạo GPT và xử lý xác thực Azure/Snowflake, chúng ta có thể tạo chính Azure Function App để thực thi truy vấn SQL và xử lý định dạng phản hồi, cho phép GPT tải xuống kết quả dưới dạng CSV để sử dụng với Phân tích dữ liệu.
Hãy làm theo Azure Cookbook Guide này để biết thêm chi tiết về cách triển khai Azure Function App. Dưới đây bạn sẽ tìm thấy mã mẫu để thêm vào hàm.
Mã này có mục đích là định hướng - mặc dù nó có thể hoạt động ngay khi cài đặt, bạn vẫn nên tùy chỉnh nó dựa trên nhu cầu cụ thể của GPT và thiết lập CNTT của bạn.
Mã ứng dụng
Bạn sẽ cần thiết lập các luồng sau trong Azure Function App của mình:
- Trích xuất mã thông báo từ yêu cầu HTTP và sử dụng nó để kết nối với Snowflake
- Thực hiện truy vấn SQL và ghi kết quả vào CSV
- Lưu trữ tạm thời CSV đó trong Blob Storage*
- Tạo URL được ký trước để truy cập CSV đó một cách an toàn*
- Trả lời bằng openaiFileResponse
*Các bước này có thể không cần thiết nếu bạn sử dụng tùy chọn luồng tệp thay vì tùy chọn url để trả tệp về GPT. Thông tin chi tiết bên dưới.
Đảm bảo bạn đã cài đặt và nhập các thư viện cần thiết vào tập lệnh của mình. Ngoài các thư viện chuẩn của Python, tập lệnh mẫu này tận dụng những điều sau:
import azure.functions as func
from azure.storage.blob import BlobServiceClient, generate_blob_sas, BlobSasPermissions, ContentSettings
import snowflake.connector
import jwt # pyjwt for token decodingKết nối với Snowflake
Để kết nối với Snowflake, bạn sẽ cần trích xuất mã thông báo truy cập được gán từ Azure Entra ID từ tiêu đề Authorization và sử dụng mã thông báo đó khi kết nối với máy chủ Snowflake.
Trong ví dụ này, tên người dùng Snowflake là địa chỉ email giúp đơn giản hóa việc ánh xạ ID người dùng Entra được trích xuất từ mã thông báo truy cập HTTP sang ID người dùng Snowflake cần thiết để kết nối. Nếu tổ chức của bạn không như vậy, bạn có thể ánh xạ địa chỉ email với ID người dùng Snowflake trong ứng dụng Python của mình.
Ứng dụng của tôi được xây dựng để giao tiếp với một Tài khoản Snowflake (tức là ab12345.eastus2.azure) và Kho. Nếu bạn cần truy cập nhiều tài khoản hoặc kho, bạn có thể cân nhắc truyền các tham số này trong tham số hành động GPT của mình để bạn có thể trích xuất chúng từ yêu cầu HTTP.
# Extract the token from the Authorization header
auth_header = req.headers.get('Authorization')
token_type, token = auth_header.split()
try: # Extract email address from token to use for Snowflake user mapping # If Snowflake usernames are not emails, then identify the username accordingly decoded_token = jwt.decode(token, options={"verify_signature": False}) email = decoded_token.get('upn') conn = snowflake.connector.connect( user=email, # Snowflake username, i.e., user's email in my example account=SNOWFLAKE_ACCOUNT, # Snowflake account, i.e., ab12345.eastus2.azure authenticator="oauth", token=token, warehouse=SNOWFLAKE_WAREHOUSE # Replace with Snowflake warehouse ) logging.info("Successfully connected to Snowflake.")
except Exception as e: logging.error(f"Failed to connect to Snowflake: {e}")Thực hiện truy vấn và lưu CSV
Sau khi kết nối với Snowflake, bạn sẽ cần thực hiện truy vấn và lưu trữ kết quả vào CSV. Mặc dù vai trò trong Snowflake sẽ ngăn chặn mọi khả năng truy vấn có hại, bạn có thể muốn khử trùng truy vấn của mình trong ứng dụng (không bao gồm bên dưới) giống như bạn thực hiện bất kỳ truy vấn SQL theo chương trình nào khác.
# Extract SQL query from request parameters or body
sql_query = req.params.get('sql_query')
try: # Use the specified warehouse cursor = conn.cursor() # Execute the query cursor.execute(sql_query) results = cursor.fetchall() column_names = [desc[0] for desc in cursor.description] logger.info(f"Query executed successfully: {sql_query}") # Convert results to CSV csv_file_path = write_results_to_csv(results, column_names)
except Exception as e: logger.error(f"Error executing query or processing data: {e}")
def write_results_to_csv(results, column_names): try: # Create a temporary file temp_file = tempfile.NamedTemporaryFile(delete=False, mode='w', newline='') csv_writer = csv.writer(temp_file) csv_writer.writerow(column_names) # Write the column headers csv_writer.writerows(results) # Write the data rows temp_file.close() # Close the file to flush the contents return temp_file.name # Return file path except Exception as e: logger.error(f"Error writing results to CSV: {e}")Lưu trữ tệp trong Blob Storage
Có 2 phương pháp để trả về tệp cho ChatGPT để xử lý. Bạn có thể truyền dữ liệu được mã hóa base64 cùng với mimeType và tên tệp trong phản hồi danh sách openaiFileResponse hoặc bạn có thể trả về danh sách URL . Trong giải pháp này, chúng tôi sẽ tập trung vào phương pháp sau.
Để thực hiện việc này, bạn sẽ cần tải tệp CSV lên Azure Blob Storage và trả về URL đã ký trước để truy cập tệp đó một cách an toàn trong ChatGPT. Điều quan trọng cần lưu ý là để tải xuống URL trong ChatGPT, bạn sẽ cần đảm bảo URL đó bao gồm content_type và content_disposition, như trong ví dụ bên dưới. Nếu bạn muốn kiểm tra xem URL có các tiêu đề cần thiết hay không, bạn có thể sử dụng curl -I từ bất kỳ thiết bị đầu cuối nào.
Bạn sẽ cần lấy Chuỗi kết nối cho kho lưu trữ Azure của mình theo hướng dẫn tại đây .
def upload_csv_to_azure(file_path, container_name, blob_name, connect_str): try: # Create the BlobServiceClient object which will be used to create a container client blob_service_client = BlobServiceClient.from_connection_string(connect_str) # Create a blob client using the local file name as the name for the blob blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name) # Upload the file with specified content settings with open(file_path, "rb") as data: blob_client.upload_blob(data, overwrite=True, content_settings=ContentSettings( content_type='text/csv', content_disposition=f'attachment; filename="{blob_name}"' )) logger.info(f"Successfully uploaded {file_path} to {container_name}/{blob_name}") # Generate a SAS token for the blob sas_token = generate_blob_sas( account_name=blob_service_client.account_name, container_name=container_name, blob_name=blob_name, account_key=blob_service_client.credential.account_key, permission=BlobSasPermissions(read=True), expiry=datetime.datetime.utcnow() + datetime.timedelta(hours=1) # Token valid for 1 hour ) # Generate a presigned URL using the SAS token url = f"https://{blob_service_client.account_name}.blob.core.windows.net/{container_name}/{blob_name}?{sas_token}" logger.info(f"Generated presigned URL: {url}") return url except Exception as e: logger.error(f"Error uploading file to Azure Blob Storage: {e}") raiseĐịnh dạng openaiFileResponse
Cuối cùng, bạn sẽ cần định dạng phản hồi phù hợp để hướng dẫn ChatGPT xử lý phản hồi đó dưới dạng tệp hoặc chuỗi tệp. openaiFileResponse là danh sách có thể bao gồm tối đa 10 URL (hoặc mã hóa base64 nếu sử dụng tùy chọn nội tuyến ).
# Format the response so ChatGPT treats it as a file
response = { 'openaiFileResponse': [csv_url]
}
cursor.close()
conn.close()
return func.HttpResponse( json.dumps(response), status_code=200
)Có rất nhiều thành phần chuyển động trong ứng dụng này, vì vậy việc kiểm tra Azure Function App của bạn có thể rất quan trọng. ChatGPT có thể là một nền tảng kiểm tra khó khăn vì các yêu cầu và phản hồi đôi khi có thể không rõ ràng hơn mức cần thiết để gỡ lỗi. Kiểm tra ban đầu ứng dụng của bạn thông qua cURL hoặc Postman để gọi yêu cầu HTTP từ một môi trường được kiểm soát nhiều hơn sẽ cho phép bạn gỡ lỗi và phân loại các vấn đề dễ dàng hơn. Khi bạn xác định rằng các phản hồi đang được trả về như mong đợi trong các công cụ đó, bạn đã sẵn sàng để xây dựng GPT của mình.
Các bước ChatGPT
Hướng dẫn tùy chỉnh GPT
Sau khi bạn đã tạo GPT tùy chỉnh, hãy sử dụng văn bản bên dưới trong bảng Hướng dẫn để lấy cảm hứng. Bạn có thắc mắc không? Hãy xem Ví dụ về Bắt đầu để xem bước này hoạt động chi tiết hơn như thế nào.
Ví dụ hướng dẫn
Điều quan trọng là ChatGPT phải hiểu lược đồ bảng của bạn để tạo đúng các truy vấn SQL. Có nhiều phương pháp khác nhau để thực hiện việc này và Bộ hướng dẫn này đại diện cho cách trực tiếp nhất. Chúng tôi đang nỗ lực xuất bản các hướng dẫn bổ sung cho các phiên bản Snowflake GPT khác nhau mà bạn có thể muốn xây dựng để cho phép làm việc với nhiều bảng, lược đồ và cơ sở dữ liệu khác nhau hoặc thậm chí để học động cho các lược đồ có xu hướng thay đổi theo thời gian.
Dưới đây là một số hướng dẫn cơ bản khi làm việc với một lược đồ và bảng duy nhất. GPT này đã được tối ưu hóa cho một trường hợp sử dụng duy nhất (phân tích dữ liệu chuyến bay từ tháng 1 năm 2013 ra khỏi NYC) cho phép sử dụng các hướng dẫn đơn giản nhất để cung cấp hiệu suất GPT đáng tin cậy nhất.
Bạn là chuyên gia viết truy vấn SQL để lấy dữ liệu từ Snowflake. Bạn giúp người dùng chuyển đổi lời nhắc của họ thành truy vấn SQL. Bất kỳ câu hỏi nào xung quanh dữ liệu chuyến bay sẽ được chuyển đổi thành truy vấn SQL Snowflake truy cập vào bảng FLIGHTS.PUBLIC.JAN_2013_NYC. Truyền bất kỳ truy vấn nào vào tham số "sql_query"
Sơ đồ của bảng bao gồm
ID NUMBER A unique identifier for each flight
YEAR NUMBER The year of the flight
MONTH NUMBER The month of the flight
DAY NUMBER The day of the month on which the flight departed
DEP_TIME NUMBER The actual departure time of the flight
SCHED_DEP_TIME NUMBER The scheduled departure time of the flight
DEP_DELAY NUMBER The departure delay in minutes (negative values indicate early departures)
ARR_TIME NUMBER The actual arrival time of the flight
SCHED_ARR_TIME NUMBER The scheduled arrival time of the flight
ARR_DELAY NUMBER The arrival delay in minutes (negative values indicate early arrivals)
CARRIER_CODE TEXT The carrier code of the airline
FLIGHT NUMBER The flight number
TAILNUM TEXT The aircraft tail number
ORIGIN_AIRPORT_CODE TEXT The origin airport code
DEST_AIRPORT_CODE TEXT The destination airport code
AIR_TIME NUMBER The total airtime of the flight in minutes
DISTANCE NUMBER The distance traveled by the flight in miles
HOUR NUMBER The hour part of the scheduled departure time
MINUTE NUMBER The minute part of the scheduled departure time
TIME_HOUR NUMBER The time at which the flight departed (rounded to the nearest hour)
CARRIER_NAME TEXT The full name of the airline carrier
ORIGIN_AIRPORT_NAME TEXT The full name of the origin airport
ORIGIN_REGION TEXT The region code of the origin airport
ORIGIN_MUNICIPALITY TEXT The city where the origin airport is located
ORIGIN_COORDINATES TEXT The geographical coordinates of the origin airport
DEST_AIRPORT_NAME TEXT The full name of the destination airport
DEST_REGION TEXT The region code of the destination airport
DEST_MUNICIPALITY TEXT The city where the destination airport is located
DEST_COORDINATES TEXT The geographical coordinates of the destination airportKhi người dùng yêu cầu dữ liệu về chuyến bay, hãy thực hiện như sau:
- Sử dụng
executeSQLhành động để gửi yêu cầu POST đến điểm cuối chức năng Azure - Nhận tệp được trả về như một phần của phản hồi Hành động. Hiển thị tệp dưới dạng bảng tính
- Thực hiện phân tích trên tệp và cung cấp thông tin cần thiết mà người dùng đã yêu cầu
Người dùng sẽ muốn đặt câu hỏi về dữ liệu trong trình thông dịch mã, vì vậy hãy sử dụng trình thông dịch này để có được thông tin phân tích dữ liệu từ tập dữ liệu bạn đã lấy.
Lược đồ OpenAPI
Sau khi tạo GPT tùy chỉnh, hãy sao chép văn bản bên dưới trong bảng Hành động, thay thế các giá trị giữ chỗ bằng thông tin chi tiết về hàm cụ thể của bạn và cập nhật các tham số dựa trên bất kỳ đầu vào bổ sung nào mà bạn đã xây dựng vào Ứng dụng hàm Azure của mình.
Bạn có thắc mắc không? Hãy xem Ví dụ về Bắt đầu để biết bước này hoạt động chi tiết hơn như thế nào.
openapi: 3.1.0
info: title: Snowflake GPT API description: API to execute SQL queries on Snowflake and get the results as a CSV file URL. version: 1.0.0
servers: - url: https://.azurewebsites.net description: Azure Function App server running Snowflake integration application
paths: /api/?code=: post: operationId: executeSQL summary: Executes a SQL query on Snowflake and returns the result file URL as a CSV. requestBody: required: true content: application/json: schema: type: object properties: sql_query: type: string description: The SQL query to be executed on Snowflake. required: - sql_query responses: '200': description: Successfully executed the query. content: application/json: schema: type: object properties: openaiFileResponse: type: array items: type: string format: uri description: Array of URLs pointing to the result files. '401': description: Unauthorized. Missing or invalid authentication token. '400': description: Bad Request. The request was invalid or cannot be otherwise served. '500': description: Internal Server Error. An error occurred on the server.
components: schemas: {} Câu hỏi thường gặp & Xử lý sự cố
Các tệp được trả về ChatGPT bị giới hạn kích thước ở mức 10MB. Yêu cầu của bạn có thể không thành công nếu tệp được trả về lớn hơn kích thước đó. Đảm bảo bao gồm LIMITs trong các lệnh SQL của bạn nếu bạn thấy mình đang gặp phải những giới hạn này.Tại sao Azure Function App lại được yêu cầu ngay từ đầu? Tính năng Data Analysis (hay còn gọi là Code Interpreter) của ChatGPT phụ thuộc vào môi trường Python an toàn tách biệt với cửa sổ ngữ cảnh của mô hình. Dữ liệu được truyền đến Data Analysis phải được thực hiện bằng cách tải tệp lên ngay hôm nay. Các hành động GPT trả về dữ liệu sau đó phải trả về dữ liệu đó dưới dạng tệp CSV hoặc loại tệp dữ liệu khác. Để trả về tệp thông qua hành động GPT, phản hồi phải được gói trong mộtopenaiFileResponseđối tượng. Điều này yêu cầu mã tùy chỉnh để định dạng phản hồi đúng cách.Công ty tôi sử dụng một nhà cung cấp đám mây khác với Azure. Để kết nối các chức năng phần mềm trung gian khác với ChatGPT thông qua hành động GPT, vui lòng tham khảo các sách hướng dẫn phần mềm trung gian AWS hoặc GCP khác . Bạn có thể sử dụng các khái niệm được thảo luận trong sách hướng dẫn này để tư vấn về các cân nhắc khi xây dựng ứng dụng phần mềm trung gian của mình, nhưng việc kết nối phần mềm trung gian đó với Snowflake có thể khác nhau đối với các nhà cung cấp đám mây khác nhau. Ví dụ: Snowflake đã xây dựng tích hợp OAuth bên ngoài dành riêng cho việc liên kết với Azure Entra ID.Làm thế nào để tôi giới hạn các tập dữ liệu mà GPT của tôi có quyền truy cập? Có thể quan trọng khi giới hạn phạm vi truy cập mà ChatGPT có trong Snowflake. Có một số cách để thực hiện việc này:Vai trò Snowflake có thể giới hạn người có quyền truy cập vào bảng nào và sẽ được tôn trọng bởi mã thông báo truy cập của người dùng GPT do Azure Entra ID cung cấpTrong hàm phần mềm trung gian của bạn, bạn có thể thêm các kiểm tra hợp lý để xác minh các bảng được truy cập đã được ứng dụng đó chấp thuậnBạn có thể muốn tạo một Cơ sở dữ liệu/Kho hoàn toàn mới dành riêng cho việc tích hợp với ChatGPT, xóa mọi thông tin nhạy cảm, chẳng hạn như PII.
Sơ đồ gọi sai kho hoặc tập dữ liệu: Nếu ChatGPT gọi sai kho hoặc cơ sở dữ liệu, hãy cân nhắc cập nhật hướng dẫn của bạn để làm rõ hơn (a) kho/cơ sở dữ liệu nào sẽ được gọi hoặc (b) yêu cầu người dùng cung cấp các thông tin chi tiết chính xác đó trước khi chạy truy vấn
Xem thêm: mua tài khoản ChatGPT Plus chính hãng giá rẻ với nhiều ưu đãi đặc biệt hấp dẫn duy nhất ngày hôm nay

Cách đổi Mật khẩu Chat GPT - Hướng dẫn đổi Pass Chat GPT 100% Thành công
Hướng dẫn Cách đăng nhập Chat GPT Nhanh nhất | Có hỗ trợ Miễn phí qua Teamview-Ultraview
Chat GPT Plus là gì? So sánh Chat GPT Plus với Chat GPT Miễn phí
Chat GPT bị giới hạn giải thích vì sao và cách khắc phục
Chat GPT là gì ? Cách đăng Ký Chat GPT Miễn Phí tại Việt Nam