From 4e93bf42e87d6513604590bd7b40063406e8056b Mon Sep 17 00:00:00 2001 From: Charis <26616127+charislam@users.noreply.github.com> Date: Tue, 17 Sep 2024 10:35:34 -0400 Subject: [PATCH] fix(ai): restrict edge function regions (#29330) Missed some routes when restricting edge function regions in an earlier PR. Any edge function that calls OpenAI needs to be called from an OpenAI-supported region. --- apps/studio/pages/api/ai/sql/generate-v2.ts | 29 ++++++++++++++++++++- apps/studio/pages/api/ai/sql/suggest.ts | 29 ++++++++++++++++++++- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/apps/studio/pages/api/ai/sql/generate-v2.ts b/apps/studio/pages/api/ai/sql/generate-v2.ts index cd1f2bc269c..d529568da0b 100644 --- a/apps/studio/pages/api/ai/sql/generate-v2.ts +++ b/apps/studio/pages/api/ai/sql/generate-v2.ts @@ -3,7 +3,34 @@ import { chatSql } from 'ai-commands/edge' import { NextRequest } from 'next/server' import OpenAI from 'openai' -export const runtime = 'edge' +export const config = { + runtime: 'edge', + /* To avoid OpenAI errors, restrict to the Vercel Edge Function regions that + overlap with the OpenAI API regions. + + Reference for Vercel regions: https://vercel.com/docs/edge-network/regions#region-list + Reference for OpenAI regions: https://help.openai.com/en/articles/5347006-openai-api-supported-countries-and-territories + */ + regions: [ + 'arn1', + 'bom1', + 'cdg1', + 'cle1', + 'cpt1', + 'dub1', + 'fra1', + 'gru1', + 'hnd1', + 'iad1', + 'icn1', + 'kix1', + 'lhr1', + 'pdx1', + 'sfo1', + 'sin1', + 'syd1', + ], +} const openAiKey = process.env.OPENAI_API_KEY diff --git a/apps/studio/pages/api/ai/sql/suggest.ts b/apps/studio/pages/api/ai/sql/suggest.ts index 4eb7d69a458..df98ca480f7 100644 --- a/apps/studio/pages/api/ai/sql/suggest.ts +++ b/apps/studio/pages/api/ai/sql/suggest.ts @@ -3,7 +3,34 @@ import { chatRlsPolicy } from 'ai-commands/edge' import { NextRequest } from 'next/server' import OpenAI from 'openai' -export const runtime = 'edge' +export const config = { + runtime: 'edge', + /* To avoid OpenAI errors, restrict to the Vercel Edge Function regions that + overlap with the OpenAI API regions. + + Reference for Vercel regions: https://vercel.com/docs/edge-network/regions#region-list + Reference for OpenAI regions: https://help.openai.com/en/articles/5347006-openai-api-supported-countries-and-territories + */ + regions: [ + 'arn1', + 'bom1', + 'cdg1', + 'cle1', + 'cpt1', + 'dub1', + 'fra1', + 'gru1', + 'hnd1', + 'iad1', + 'icn1', + 'kix1', + 'lhr1', + 'pdx1', + 'sfo1', + 'sin1', + 'syd1', + ], +} const openAiKey = process.env.OPENAI_API_KEY