
Faça login : comece fazendo login na página de destino. Depois de fazer login, você verá um botão Let's Start . Clique neste botão para começar.
Crie um projeto : depois de clicar Let's Start , você pode criar um projeto. Forneça um título, descrição e faça o upload de um arquivo PDF. O PDF será carregado em um balde de nuvem (como S3) e armazenado no PostgreSQL.
Processamento em PDF : No back -end, o arquivo PDF é processado para gerar incorporações vetoriais do conteúdo. Essas incorporações são então armazenadas para uso futuro.
Processamento assíncrono : todo o processamento é tratado de maneira assíncrona, garantindo que seja eficiente e não bloqueie outras operações, permitindo que você prossiga sem esperar que a interface de bate -papo esteja pronta.
Monitoramento do painel : você pode visualizar todos os seus projetos no painel front -end. Cada projeto exibirá um status: 'Criando', 'falhou' ou 'criado'. Isso permite que você acompanhe o progresso e saiba quando seu projeto está pronto. Se ocorrer algum problema, você poderá ver o status e tomar as medidas apropriadas.
Interface de bate-papo : Depois que um projeto estiver pronto, você pode abri-lo para acessar uma interface de bate-papo fácil de usar. Aqui, você pode fazer perguntas e receber respostas relevantes com base no conteúdo do seu PDF.
cd client
pnpm i
cd server
yarn cd client
pnpm run dev
cd server
yarn start:devdocker compose upNota: Usamos as ações do servidor e um servidor NestJS. Ocasionalmente, o Docker pode causar um erro. Se você encontrar um problema, por favor levante um problema.
.env no diretório 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 no diretório client ( 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******EvExEKO NESTJS utiliza otimentalmente o Express (Node.js), alcançando desempenho e escalabilidade, não são facilmente atingidos com uma configuração convencional.
server/src/app.module.ts : providers: [
{
provide : APP_GUARD ,
useClass : ClerkAuthGuard ,
}
]um. Use comandos prisma:
npx prisma studio
npx prisma migrate dev --name initb. S3
Bucket policy - EditCole isso, mas certifique -se de - editar o bloco de acesso público - desativar
2.1 Política 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. Configuração do CORS:
Compartilhamento de Recursos Cross -Origin (CORS) - Editar
[
{
"AllowedHeaders" : [ " * " ],
"AllowedMethods" : [ " PUT " , " POST " , " DELETE " , " GET " ],
"AllowedOrigins" : [ " * " ],
"ExposeHeaders" : []
}
]