ChatPDF-GPT est un projet innovant qui exploite la puissance du cadre de Langchain, un outil transformateur pour développer des applications alimentées par des modèles de langue. Cette application unique utilise Langchain pour offrir une interface de chat qui communique avec les documents PDF, motivé par les capacités des modèles de langue d'Openai.
Dans ce projet, le modèle de langue est connecté à d'autres sources de données et permet l'interaction avec son environnement, incarnant ainsi les principes du cadre de Langchain. Les utilisateurs peuvent télécharger un document PDF, qui est ensuite traité et enregistré dans PineCone, une base de données vectorielle et le stockage de supabase. Les utilisateurs peuvent ensuite discuter avec le PDF téléchargé, l'IA utilisant le contenu du document pour engager une conversation significative.
Le projet s'appuie sur le framework suivant.js, un choix de premier plan pour créer des applications Web robustes et complètes. Les composants de l'interface utilisateur sont magnifiquement conçus à l'aide de la bibliothèque d'interface utilisateur Radix et stylisés avec CSS du vent arrière, basé sur le modèle élégant fourni par Shadcn / UI.
ChatPDF-GPT est équipé d'exemples qui illustrent diverses opérations telles que:
Pour tester les fonctionnalités de ce projet à l'aide de la démo, vous devrez fournir vos propres informations d'identification pour OpenAI, Supabase et PineCone. Pour Supabase, vous pouvez suivre le guide étape par étape fourni ci-dessous pour configurer et récupérer les informations d'identification nécessaires. Pour acquérir des informations d'identification pour OpenAI et Pinecone, veuillez consulter la documentation correspondante en tant que guide étape par étape peut ne pas être disponible. Assurez-vous toujours que vous suivez les dernières instructions fournies par les services respectifs.
Openai
Création d'un nouveau projet à Supabase :
Récupération de l'URL de connexion de la base de données :
Cette chaîne de connexion sera utilisée pour la variable d'environnement DATABASE_URL dans votre application.
Cette URL sera utilisée pour la variable d'environnement DIRECT_URL dans votre application.
SUPABASE_URL et SUPABASE_KEY . Copiez ces valeurs. Le SUPABASE_URL est l'URL de votre projet, tandis que SUPABASE_KEY est la clé anonyme publique de votre projet.
Configuration du seau Supabase :
SUPABASE_BUCKET dans votre application.Configuration des variables d'environnement dans votre application :
DATABASE_URLDIRECT_URLSUPABASE_KEYSUPABASE_URLSUPABASE_BUCKETCes clés permettront à votre application d'interagir avec les services Supabase.
Veuillez noter que s'il est possible de définir une politique qui rend votre seau de stockage accessible au public, vous devez le faire avec prudence. Rendre votre seau accessible publiquement signifie que toute personne ayant l'URL vers un objet peut y accéder. Cela peut être utile pour les tests, mais pour les applications de production, vous devriez considérer des politiques plus restrictives pour assurer la sécurité de vos données. Consultez toujours la documentation Supabase ou un expert en sécurité pour comprendre les implications des différentes politiques.
Avec cela, vous devriez être en mesure de configurer Supabase pour votre projet et de gérer les politiques de stockage conformément à vos exigences.
Pignon
Pour configurer et exécuter le chatpdf-gpt sur votre machine locale, suivez les étapes ci-dessous:
Clone le référentiel du projet:
git clone https://github.com/anis-marrouchi/chatpdf-gpt.git
Naviguez dans le répertoire du projet et installez les dépendances à l'aide de PNPM:
cd chatpdf-gpt
pnpm install
Créez un fichier .env dans le répertoire racine et remplissez vos informations d'identification (Openai, Pinecone, Supabase) comme indiqué dans le fichier .env.example .
Créez le schéma de base de données à l'aide de prisma. Vous devez vous faire exécuter le prisma prisma generate le commande
npx prisma migrate dev --name init
Démarrez le serveur:
npm run dev
ChatPDF-GPT est un projet open-source et nous accueillons chaleureusement les contributions de tout le monde. Veuillez lire notre guide de contribution pour plus de détails sur la façon de commencer.
Ce projet est sur les épaules des géants. Notre travail ne serait pas possible sans la vaste gamme de bibliothèques, de cadres et d'outils que la communauté open source a produite. Plus précisément, nous aimerions exprimer notre appréciation:
L'équipe de Langchain pour son cadre révolutionnaire pour les applications propulsées par des modèles de langue.
Openai pour leurs modèles de langue de pointe, ce qui rend la fonctionnalité de chat possible.
Supabase pour leur alternative de base de feu open source que nous avons utilisée pour construire des backends sécurisés et performants.
Pinecone pour leur base de données vectorielle qui permet un stockage et une récupération faciles et efficaces des incorporations vectorielles.
Next.js et Vercel pour leur cadre complet qui nous a permis de créer cette application Web complète avec facilité.
Shadcn pour leurs composants d'interface utilisateur élégants sur lesquels nous avons construit pour créer une interface belle et conviviale.
Radix UI pour leur bibliothèque de composants robuste, accessible et personnalisable qui forme l'épine dorsale de notre interface utilisateur.
@ React-PDF-Viewer pour leur puissant composant React, qui permet aux utilisateurs de prévisualiser le document PDF réel avec lequel ils interagissent.
Et toutes les autres dépendances, énumérées et non répertoriées, qui ont contribué à la réalisation de ce projet. Notre contribution est modeste par rapport à leur effort collectif.
ChatPDF-GPT est un logiciel open-source sous licence MIT.