
サインイン:ランディングページからサインインすることから始めます。サインインすると、 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 Directory( 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 ,
}
]a。 Prismaコマンドを使用してください:
npx prisma studio
npx prisma migrate dev --name initb。 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) - 編集
[
{
"AllowedHeaders" : [ " * " ],
"AllowedMethods" : [ " PUT " , " POST " , " DELETE " , " GET " ],
"AllowedOrigins" : [ " * " ],
"ExposeHeaders" : []
}
]