メインコンテンツまでスキップ

QiitaGPTのローカル開発環境を構築する

· 約4分
moritalous

Qiitaに投稿したQiitaGPT、爆誕!! (の予感)のローカル開発環境の構築手順です。

QiitaGPT、爆誕!! (の予感)
https://qiita.com/moritalous/items/ec15d0a5979e90497269
QiitaGPT **UNOFFICIAL**
https://qiita-gpt-git-main-moritalous.vercel.app/

ソースコードを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にアクセスします。

image.png

Default Projectをクリックします。

image.png

サイドバーの上から3つ目のアイコンSQL Editorをクリックします。

image.png

Next.js OpenAI Doc Search StarterプロジェクトにSQLがあります。supabase/migrations/20230406025118_init.sqlの内容をペーストし、RUNボタンをクリックします。

image.png

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_URLhttp://localhost:8000に変更
  • NEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_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

image.png

投稿を追加するにはMarkdownファイルをpages/docs配下に格納し、embeddingsを実行します。

pnpm run embeddings