Qiitaに投稿したQiitaGPT、爆誕!! (の予感)のローカル開発環境の構築手順です。
ソースコードをClone
Next.js OpenAI Doc Search StarterのソースコードをCloneします。
git clone https://github.com/supabase-community/nextjs-openai-doc-search.git
pnpmのインストール
pnpmをインストールします。
curl -fsSL https://get.pnpm.io/install.sh | sh -
Supabaseを構築
Supabaseもローカルで構築します。まずはソースをCloneします。
git clone https://github.com/supabase/supabase.git
ディレクトリを移動します。
cd supabase/docker/
設定ファイルを作成します。
cp .env.example .env
Next.js OpenAI Doc Search Starterとポート番号が重複しているので、変更します
############
# Studio - Configuration for the Dashboard
############
STUDIO_DEFAULT_ORGANIZATION=Default Organization
STUDIO_DEFAULT_PROJECT=Default Project
- STUDIO_PORT=3001
+ STUDIO_PORT=3001
# replace if you intend to use Studio outside of localhost
SUPABASE_PUBLIC_URL=http://localhost:8000
# Enable webp support
IMGPROXY_ENABLE_WEBP_DETECTION=true
Docker Composeで起動します。
docker compose up -d
起動しているコンテナはこんな感じ
docker compose ps
realtime-dev.supabase-realtime supabase/realtime:v2.5.1 "/usr/bin/tini -s -g…" realtime 33 hours ago Up 20 minutes (healthy)
supabase-auth supabase/gotrue:v2.47.0 "gotrue" auth 33 hours ago Up 20 minutes (healthy)
supabase-db supabase/postgres:15.1.0.54-rc0 "docker-entrypoint.s…" db 33 hours ago Up 20 minutes (healthy) 0.0.0.0:5432->5432/tcp
supabase-imgproxy darthsim/imgproxy:v3.13 "imgproxy" imgproxy 33 hours ago Up 17 seconds (healthy) 8080/tcp
supabase-kong kong:2.8.1 "/docker-entrypoint.…" kong 33 hours ago Up 20 minutes (healthy) 0.0.0.0:8000->8000/tcp, 8001/tcp, 0.0.0.0:8443->8443/tcp, 8444/tcp
supabase-meta supabase/postgres-meta:v0.60.7 "docker-entrypoint.s…" meta 33 hours ago Up 20 minutes (healthy) 8080/tcp
supabase-rest postgrest/postgrest:v10.1.2 "/bin/postgrest" rest 33 hours ago Up 20 minutes 3000/tcp
supabase-storage supabase/storage-api:v0.28.2 "docker-entrypoint.s…" storage 33 hours ago Up 20 minutes (healthy) 5000/tcp
supabase-studio supabase/studio:20230330-99fed3d "docker-entrypoint.s…" studio 19 seconds ago Up 17 seconds (healthy) 0.0.0.0:3001->3000/tcp
http://localhost:3001
にアクセスします。
Default Project
をクリックします。
サイドバーの上から3つ目のアイコンSQL Editor
をクリックします。
Next.js OpenAI Doc Search StarterプロジェクトにSQLがあります。supabase/migrations/20230406025118_init.sql
の内容をペーストし、RUN
ボタンをクリックします。
Next.js OpenAI Doc Search Starterの設定
Next.js OpenAI Doc Search Starterプロジェクトの設定ファイルを作成します。
cd nextjs-openai-doc-search
cp .env.example .env
.env.example
はこんな感じです。
.env.example
# For local development, run `supabase status` to get credentials.
# For hosted instance keys head to https://app.supabase.com/project/_/settings/api
NEXT_PUBLIC_SUPABASE_URL=http://localhost:54321
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
# Get your key at https://platform.openai.com/account/api-keys
OPENAI_KEY=
NEXT_PUBLIC_SUPABASE_URL
をhttp://localhost:8000
に変更NEXT_PUBLIC_SUPABASE_ANON_KEY
とSUPABASE_SERVICE_ROLE_KEY
はSupabaseプロジェクトのdocker/.envの値に変更OPENAI_KEY
にOpen AIのAPI Keyを指定
Next.js OpenAI Doc Search Starterの起動
nextjs-openai-doc-searchディレクトリで実行します。
pnpm i
pnpm run dev
投稿を追加するにはMarkdownファイルをpages/docs
配下に格納し、embeddings
を実行します。
pnpm run embeddings