Una aplicación multiplataforma construida con .NET MAUI que se integra con AnythingLLM para proporcionar capacidades de chat inteligentes basadas en tus propios documentos gracias a la tecnología RAG (Retrieval-Augmented Generation).
- Gestión de Workspaces: Crea, edita y elimina espacios de trabajo directamente desde la aplicación para mantener tus contextos organizados.
- Modos de Chat Duales:
- 💬 Modo Chat: Mantén conversaciones prolongadas donde la IA recuerda el contexto del historial (respaldado por la API de AnythingLLM).
- 🔍 Modo Query: Realiza consultas directas a tus documentos sin mantener memoria de interacciones previas.
- Gestión de Documentos:
- Sube documentos locales al almacén global de AnythingLLM.
- Añade y quita documentos de tus workspaces dinámicamente.
- Personalización: Configura el System Prompt (instrucciones base de la IA) de cada workspace según tus necesidades.
- Interfaz Moderna e Intuitiva: UI reactiva con auto-scroll integrado y notificaciones visuales del estado de las peticiones.
Para ejecutar y compilar este proyecto necesitarás:
- Visual Studio 2022 (Windows) con la carga de trabajo de Desarrollo de la interfaz de usuario de aplicaciones multiplataforma de .NET (.NET MAUI) instalada.
- Un servidor de AnythingLLM en funcionamiento (local o en la nube).
- Una Clave de API (API Key) generada en tu instancia de AnythingLLM.
- Clona este repositorio en tu máquina local.
- Abre la solución (
Rag.sln) en Visual Studio. - Configura las credenciales de la API:
- Navega al archivo:
Services/AnythingLlmService.cs. - Asegúrate de que la URL base apunte a tu instancia de AnythingLLM (por defecto:
http://localhost:3001/api/v1/). - Actualiza el Bearer Token en los headers con tu clave de API si es necesario, o configúrala en el arranque de la app si está parametrizado.
- Navega al archivo:
- Selecciona el target deseado (por ejemplo,
Windows Machineo un emulador de Android/iOS) en la barra de ejecución. - Pulsa F5 para compilar y ejecutar la aplicación.
El proyecto sigue el patrón de arquitectura Model-View-ViewModel (MVVM):
Models/: Clases de datos comoWorkspace,ChatMessageyDocument.ViewModels/: Lógica de presentación, gestión de estado y comandos (ej.MainViewModel.cs), apoyados por CommunityToolkit.Mvvm.Views/: Interfaces de usuario escritas en XAML y su Code-Behind (MainPage.xaml).Services/: Servicios de infraestructura para comunicarse con el backend, comoAnythingLlmService.cs.
Este es un proyecto educativo / de portafolio, pero las sugerencias, correcciones de errores o mejoras ("Pull Requests") son bienvenidas.