이 스타터는 pages 디렉토리의 모든 .mdx 파일을 가져 와서 OpenAi 텍스트 완료 프롬프트 내에서 사용자 정의 컨텍스트로 사용하도록 처리합니다.
이 스타터를 Vercel에 배포하십시오. Supabase 통합은 필요한 환경 변수를 자동으로 설정하고 데이터베이스 스키마를 구성합니다. 당신이해야 할 일은 OPENAI_KEY 설정하고 갈 준비가되기 만하면됩니다!
[의 뜻
나만의 맞춤형 chatgpt를 구축하면 네 가지 단계가 필요합니다.
pages 폴더의 .mdx 파일)을 사전 프로세스하십시오. 1 단계 및 2. 빌드 시간에 발생합니다. 이 시간 동안 generate-embeddings 스크립트가 실행되어 다음과 같은 작업을 수행합니다.
시퀀스 인디 아그램
참가자 Vercel
참가자 DB (PGVECTOR)
참가자 OpenAi (API)
루프 1. 지식 기반을 사전 처리하십시오
Vercel- >> vercel : cunk .mdx 페이지 섹션으로
루프 2. 임베딩 생성 및 저장
vercel- >> OpenAi (API) : 페이지 섹션에 포함시킵니다
Openai (API)->> Vercel : 벡터 임베딩 (1536)
vercel- >> db (pgvector) : 페이지 섹션을위한 매장
끝
끝
이 스크립트는 임베딩을 저장하는 것 외에도 각 .mdx 파일에 대한 체크섬을 생성하고 다른 데이터베이스 테이블에 저장하여 파일이 변경 될 때만 임베딩이 재생되는지 확인합니다.
3 단계 및 4. 런타임에 발생하면 사용자가 질문을 제출할 때마다 발생합니다. 이런 일이 발생하면 다음과 같은 일련의 작업이 수행됩니다.
시퀀스 인디 아그램
참가자 클라이언트
참가자 가장자리 함수
참가자 DB (PGVECTOR)
참가자 OpenAi (API)
클라이언트->> 에지 함수 : {쿼리 : Lorem Ispum}
중요 3. 벡터 유사성 검색을 수행하십시오
에지 함수->> OpenAI (API) : 쿼리를위한 임베딩을 만듭니다
OpenAi (API)->> 가장자리 함수 : 벡터 임베딩 (1536)
에지 함수->> db (pgvector) : 벡터 유사성 검색
DB (PGVECTOR)->> 엣지 기능 : 관련 문서 내용
끝
중요한 4. 콘텐츠를 프롬프트에 주입하십시오
에지 기능->> OpenAI (API) : 완료 요청 프롬프트 : 쿼리 + 관련 문서 콘텐츠
OpenAi (API)->> 클라이언트 : 텍스트/이벤트 스트림 : 완료 응답
끝
이에 대한 관련 파일은 SearchDialog (클라이언트) 구성 요소 및 vector-search (Edge Function)입니다.
pgvector 확장 설정을 포함한 데이터베이스의 초기화는 supabase start 실행할 때 로컬 Postgres 인스턴스에 자동으로 적용되는 supabase/migrations 폴더에 저장됩니다.
cp .env.example .env.env 파일에 OPENAI_KEY 를 설정하십시오.NEXT_PUBLIC_SUPABASE_ANON_KEY 및 SUPABASE_SERVICE_ROLE_KEY run :참고 : 키를 검색하려면 Supabase를 실행해야합니다.
Docker가 로컬로 설치되어 실행 중인지 확인하십시오. 그런 다음 실행하십시오
supabase start NEXT_PUBLIC_SUPABASE_ANON_KEY 및 SUPABASE_SERVICE_ROLE_KEY run을 검색하려면 :
supabase status새로운 터미널 창에서 실행하십시오
pnpm dev.mdx 형식이어야합니다. 이는 기존 (또는 호환) Markdown .md 파일을 바꾸면 수행 할 수 있습니다.pnpm run embeddings 실행하여 임베딩을 재생성하십시오.참고 : Supabase가 실행 중인지 확인하십시오. 확인하려면
supabase status실행하십시오. 실행되지 않는 경우 실행supabase start.
pnpm dev 다시 실행하여 Nextjs Localhost : 3000 렌더링 페이지를 새로 고치십시오. 아파치 2.0