O Chatpdf-GPT é um projeto inovador que aproveita o poder da estrutura Langchain, uma ferramenta transformadora para o desenvolvimento de aplicativos alimentados por modelos de idiomas. Este aplicativo exclusivo usa o Langchain para oferecer uma interface de bate -papo que se comunique com documentos em PDF, impulsionados pelos recursos dos modelos de idiomas da OpenAI.
Neste projeto, o modelo de idioma está conectado a outras fontes de dados e permite a interação com seu ambiente, incorporando assim os princípios da estrutura de Langchain. Os usuários podem fazer upload de um documento PDF, que é processado e salvo no Pinecone, um banco de dados vetorial e armazenamento supabase. Os usuários podem conversar com o PDF carregado, com a IA utilizando o conteúdo do documento para se envolver em uma conversa significativa.
O projeto depende da estrutura Next.JS, uma escolha líder para criar aplicativos da Web robustos e de pilha completa. Os componentes da interface do usuário são lindamente criados usando a biblioteca da interface do usuário do Radix e estilizados com o Tailwind CSS, com base no modelo elegante fornecido pela Shadcn/UI.
O chatpdf-GPT está equipado com exemplos que ilustram várias operações, como:
Para testar a funcionalidade deste projeto usando a demonstração, você precisará fornecer suas próprias credenciais para o OpenAI, Supabase e Pinecone. Para o Supabase, você pode seguir o guia passo a passo fornecido abaixo para configurar e recuperar as credenciais necessárias. Para adquirir credenciais para o OpenAI e Pinecone, consulte a documentação correspondente como um guia passo a passo pode não estar disponível. Sempre certifique -se de seguir as instruções mais recentes fornecidas pelos respectivos serviços.
Openai
Criando um novo projeto em supabase :
Recuperando o URL de conexão com o banco de dados :
Esta string de conexão será usada para a variável de ambiente DATABASE_URL em seu aplicativo.
Este URL será usado para a variável de ambiente DIRECT_URL em seu aplicativo.
SUPABASE_URL e SUPABASE_KEY . Copie esses valores. O SUPABASE_URL é o URL do seu projeto, enquanto SUPABASE_KEY é a chave anônima pública para o seu projeto.
Configurando o balde supabase :
SUPABASE_BUCKET em seu aplicativo.Configurando variáveis de ambiente em seu aplicativo :
DATABASE_URLDIRECT_URLSUPABASE_KEYSUPABASE_URLSUPABASE_BUCKETEssas chaves permitirão que seu aplicativo interaja com os Serviços Supabase.
Observe que, embora seja possível definir uma política que torne seu balde de armazenamento acessível publicamente, você deve fazer isso com cautela. Tornar seu balde acessível publicamente significa que qualquer pessoa com o URL para um objeto pode acessá -lo. Isso pode ser útil para o teste, mas para aplicativos de produção, você deve considerar políticas mais restritivas para garantir a segurança de seus dados. Sempre consulte a documentação do supabase ou um especialista em segurança para entender as implicações de diferentes políticas.
Com isso, você poderá configurar o Supabase para o seu projeto e gerenciar políticas de armazenamento conforme seus requisitos.
Pinecone
Para configurar e executar o chatpdf-GPT em sua máquina local, siga as etapas abaixo:
Clone o repositório do projeto:
git clone https://github.com/anis-marrouchi/chatpdf-gpt.git
Navegue no diretório do projeto e instale as dependências usando o PNPM:
cd chatpdf-gpt
pnpm install
Crie um arquivo .env no diretório raiz e preencha suas credenciais (OpenAI, Pinecone, Supabase), conforme indicado no arquivo .env.example .
Crie o esquema de banco de dados usando o Prisma. Você deve fazer você executar o prisma gerar o comando prisma generate
npx prisma migrate dev --name init
Inicie o servidor:
npm run dev
O Chatpdf-GPT é um projeto de código aberto e recebemos calorosamente contribuições de todos. Leia nosso guia contribuinte para obter mais detalhes sobre como começar.
Este projeto fica sobre os ombros dos gigantes. Nosso trabalho não seria possível sem a vasta gama de bibliotecas, estruturas e ferramentas que a comunidade de código aberto produziu. Especificamente, gostaríamos de expressar nosso apreço a:
A equipe Langchain para sua estrutura inovadora para aplicativos alimentados por modelos de idiomas.
O OpenAI para seus modelos de idiomas de última geração, que tornam possível a funcionalidade de bate-papo.
O Supabase para a alternativa de Firebase Firebase de código aberto, que usamos para criar back-ends seguros e com desempenho.
O Pinecone para o banco de dados vetorial que permite armazenamento e recuperação fáceis e eficientes das incorporações de vetores.
Next.js e Vercel para sua estrutura abrangente, o que nos permitiu criar este aplicativo da Web de pilha completa com facilidade.
Shadcn para seus elegantes componentes da interface do usuário, criamos para criar uma interface bonita e amigável.
O Radix UI para sua biblioteca de componentes robustos, acessíveis e personalizáveis que forma a espinha dorsal da nossa interface do usuário.
@React-PDF-Viewer para seu poderoso componente React, que permite que os usuários visualizem o documento PDF real com o qual estão interagindo.
E todas as outras dependências, listadas e não listadas, que contribuíram para a realização deste projeto. Nossa contribuição é modesta em comparação com seu esforço coletivo.
O Chatpdf-GPT é um software de código aberto licenciado sob a licença do MIT.