
Melden Sie sich an : Melden Sie sich zunächst von der Zielseite an. Sobald Sie sich angemeldet haben, sehen Sie einen Taste Let's Start . Klicken Sie auf diese Schaltfläche, um zu beginnen.
Erstellen eines Projekts : Nach dem Klicken Let's Start können Sie ein Projekt erstellen. Geben Sie einen Titel, eine Beschreibung an und laden Sie eine PDF -Datei hoch. Das PDF wird in einen Cloud -Eimer (z. B. S3) hochgeladen und in Postgresql gespeichert.
PDF -Verarbeitung : Im Backend wird die PDF -Datei verarbeitet, um Vektoreinbettungen des Inhalts zu generieren. Diese Einbettungen werden dann für den zukünftigen Gebrauch gespeichert.
Asynchrone Verarbeitung : Die gesamte Verarbeitung wird asynchron mit BullMQ behandelt, um sicherzustellen, dass sie effizient ist und andere Vorgänge nicht blockiert, sodass Sie fortfahren können, ohne auf die Chat -Schnittstelle zu warten.
Dashboard -Überwachung : Sie können alle Ihre Projekte auf dem Frontend Dashboard anzeigen. Jedes Projekt zeigt einen Status an: "Erstellen", "fehlgeschlagen" oder "erstellt". Auf diese Weise können Sie den Fortschritt verfolgen und wissen, wann Ihr Projekt fertig ist. Wenn Probleme auftreten, können Sie den Status erkennen und geeignete Maßnahmen ergreifen.
Chat-Schnittstelle : Sobald ein Projekt fertig ist, können Sie es öffnen, um auf eine benutzerfreundliche Chat-Oberfläche zuzugreifen. Hier können Sie Fragen stellen und relevante Antworten basierend auf dem Inhalt Ihres PDF erhalten.
cd client
pnpm i
cd server
yarn cd client
pnpm run dev
cd server
yarn start:devdocker compose upHinweis: Wir verwenden sowohl Serveraktionen als auch einen NestJS -Server. Gelegentlich kann Docker einen Fehler werfen. Wenn Sie auf ein Problem stoßen, wecken Sie bitte ein Problem.
.env -Datei im server ( server/.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 ".env.local -Datei im client -Verzeichnis ( client/.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 verwendet optimal Express (Node.js), wodurch Leistung und Skalierbarkeit mit einem herkömmlichen Setup nicht leicht erreicht werden.
server/src/app.module.ts vorübergehend, um mit Postman zu testen: providers: [
{
provide : APP_GUARD ,
useClass : ClerkAuthGuard ,
}
]A. Verwenden Sie Prisma -Befehle:
npx prisma studio
npx prisma migrate dev --name initB. S3
Bucket policy - EditFügen Sie dies ein, stellen Sie jedoch sicher - Block Block Public Access bearbeiten - Deaktivieren Sie
2.1 S3-Richtlinie ( 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 -Konfiguration:
Cross -Origin -Ressourcenfreigabe (CORS) - Bearbeiten
[
{
"AllowedHeaders" : [ " * " ],
"AllowedMethods" : [ " PUT " , " POST " , " DELETE " , " GET " ],
"AllowedOrigins" : [ " * " ],
"ExposeHeaders" : []
}
]