
로그인 : 방문 페이지에서 로그인하여 시작하십시오. 로그인하면 Let's Start 버튼이 표시됩니다. 시작하려면이 버튼을 클릭하십시오.
프로젝트 만들기 : 클릭 한 후 Let's Start 프로젝트를 만들 수 있습니다. 제목, 설명을 제공하고 PDF 파일을 업로드하십시오. PDF는 클라우드 버킷 (예 : S3)에 업로드하고 PostgreSQL에 저장됩니다.
PDF 처리 : 백엔드에서 PDF 파일은 컨텐츠의 벡터 임베딩을 생성하도록 처리됩니다. 이 내장은 향후 사용을 위해 저장됩니다.
비동기 처리 : 전체 처리는 BullMQ를 사용하여 비동기 적으로 처리되어 효율적이고 다른 작업을 차단하지 않도록하여 채팅 인터페이스가 준비되기를 기다리지 않고 진행할 수 있습니다.
대시 보드 모니터링 : 프론트 엔드 대시 보드에서 모든 프로젝트를 볼 수 있습니다. 각 프로젝트에는 '생성', '실패'또는 '생성'이라는 상태가 표시됩니다. 이를 통해 진행 상황을 추적하고 프로젝트가 언제 준비되었는지 알 수 있습니다. 문제가 발생하면 상태를보고 적절한 조치를 취할 수 있습니다.
채팅 인터페이스 : 프로젝트가 준비되면 사용자 친화적 인 채팅 인터페이스에 액세스 할 수 있습니다. 여기에서 PDF의 내용에 따라 질문을하고 관련 답변을받을 수 있습니다.
cd client
pnpm i
cd server
yarn cd client
pnpm run dev
cd server
yarn start:devdocker compose up참고 : 서버 작업과 NestJS 서버를 모두 사용합니다. 때때로 Docker는 오류를 던질 수 있습니다. 문제가 발생하면 문제를 제기하십시오.
server 디렉토리 ( server/.env )에서 .env 파일을 만듭니다. # Server port
PORT = 3333
DATABASE_URL = " postgresql://neondb_owner:********/neondb?sslmode=require "
# S3
AWS_ACCESS_KEY_ID = A********P**T********VN
AWS_SECRET_ACCESS_KEY = M********U9J********aYr4********Yostzb
AWS_S3_REGION = us-east-1
AWS_S3_BUCKET_NAME = ********
# Rate Limit
UPLOAD_RATE_TTL = 60
UPLOAD_RATE_LIMIT = 3
# Pinecone
PINECONE_API_KEY = e1******-56**-43**-8f**-f**7**3**2**
# OpenAI
OPENAI_API_KEY = sk-p******j-f******og******Nr0P******FJt******JiBl******EvExEK
# Clerk
CLERK_SECRET_KEY = sk_t******rL5******BkF******7******2hF******aL
# Redis
REDIS_HOST = " redis-*****tysub*****1-8*****.a.aivencloud.com "
REDIS_PORT = *****
REDIS_USERNAME = " ***** "
REDIS_PASSWORD = " AVNS_*****Mi*****S*****a "client 디렉토리 ( client/.env.local )에서 .env.local 파일 생성 : NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY = pk_test_******reWx******M******su******b3******uZG******A
CLERK_SECRET_KEY = sk_test_SI******B******Kw******Qgdx7V******9aL
NEXT_PUBLIC_CLERK_SIGN_IN_URL = /sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL = /sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL = /
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL = /
NEXT_PUBLIC_CLERK_AFTER_SIGN_OUT_URL = /
# OpenAI
OPENAI_API_KEY = sk-p******j-f******og******Nr0P******FJt******JiBl******EvExEKNestJS는 Express (Node.js)를 최적으로 사용하여 기존 설정으로 쉽게 달성 할 수없는 성능 및 확장 성을 달성합니다.
server/src/app.module.ts 에서 다음 줄을 일시적으로 제거하거나 댓글을 달아라. providers: [
{
provide : APP_GUARD ,
useClass : ClerkAuthGuard ,
}
]에이. Prisma 명령 사용 :
npx prisma studio
npx prisma migrate dev --name init비. S3
Bucket policy - Edit이것을 붙여 넣지 만 확인하십시오 - 블록 공개 액세스 편집 - 비활성화
2.1 S3 정책 ( arn:aws:s3:::<bucket-name> ) :
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " PublicReadGetObject " ,
"Effect" : " Allow " ,
"Principal" : " * " ,
"Action" : " s3:GetObject " ,
"Resource" : " arn:aws:s3:::<bucket-name>/* "
}
]
}2.2. CORS 구성 :
CORS (Cross -Origin Resource Sharing) - 편집
[
{
"AllowedHeaders" : [ " * " ],
"AllowedMethods" : [ " PUT " , " POST " , " DELETE " , " GET " ],
"AllowedOrigins" : [ " * " ],
"ExposeHeaders" : []
}
]