Si vous souhaitez quelque chose à un LLM sur vos propres documents ?, vous pourriez bien que ce soit exactement ce que vous avez à faire avec cette application.
Téléchargez un PDF ou un TXT, l'application le "digère" et vous pourrez alors faire des questions comme si vous étiez un expert dans ce document.
https://github.com/Daniel-Penaloza/sinatra_rag
Exemple réel :
🧠 Composants Rag
Documents : Dans ce cas, nous utilisons des fichiers PDF ou des fichiers TXT.
Chargeurs de documents : Nous n'utilisons pas ici Langchain comme wrapper, nous utilisons le lecteur PDF Gem pour lire le texte d'un PDF et ensuite stocker ce texte.
Morceaux : J'appelle également des diviseurs de texte, pour garder les informations divisées et pour que cette manière soit la plus maniable.
Embeddings : avec ceci nous codifions le texte en représentations numériques (création de vecteurs).
Base de données vectorielles : utilisée pour protéger nos vecteurs.
| Qu'est-ce que ça fait | Technologie |
|---|---|
| Back-end | Rubis + Sinatra |
| Base de données | PostgreSQL + pgvecteur |
| Processus asynchrone | Sidekiq + Redis |
| LLM | OpenAI (intégrations + chat) |
Ruby est la technologie la plus utilisée pour la programmation et dans ce cas seulement, elle entend fonctionner comme RAG sans utiliser de frameworks comme LangChain qui est un type de wrapper pour la plupart des LLM disponibles sur le marché.
Construire de cette manière m'aide à entendre chaque morceau de casse-tête et créer de cette manière que cette leçon puisse également être entendue.
Tu PDF ──> L'application lo guarda ──> Entrer dans la tête de processusDocument │ ▼ Extrae the texto │ ▼ La partie en petits morceaux (morceaux) │ ▼ Chaque morceau est converti en vecteurs (embeddings) │ ▼ Se garde dans la base de données¿Por qué en pedazos? Il est donc plus facile de rechercher des fragments petits que dans un document de 100 pages.
¿Por qué numeros? Parce que les ordinateurs comparent les numéros plus rapidement que le texte. Et c'est cool que ces chiffres capturent le signifié, pas seulement les paroles.
Votre question │ ▼ Vous serez envoyé en vecteurs (comme les documents) │ ▼ Recherchez les articles les plus demandés dans la base de données │ ▼ Le passa ces achats à l'IA comme contexte │ ▼ L'IA vous répondra en vous informantRAG/ ├── app.rb # El cerebro de la app (rutas) ├── config/ │ └── sidekiq.rb # Config de jobs en background ├── db/ │ └── migrations/ # Structure de ...
[Courte citation de 8% de l'article original]