https://github.com/luismisanve/geminipostsql_chatbot
Blazor AI ChatBot that translates natural language into PostgreSQL queries then turns the result into natural language again
https://github.com/luismisanve/geminipostsql_chatbot
ai asp-net-core blazor database gemini gemini-api newtonsoft-json npgsql pgadmin4 postgresql visual-studio
Last synced: 6 months ago
JSON representation
Blazor AI ChatBot that translates natural language into PostgreSQL queries then turns the result into natural language again
- Host: GitHub
- URL: https://github.com/luismisanve/geminipostsql_chatbot
- Owner: LuisMiSanVe
- License: apache-2.0
- Created: 2025-03-13T16:24:00.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-06-12T10:39:29.000Z (7 months ago)
- Last Synced: 2025-06-12T11:48:23.200Z (7 months ago)
- Topics: ai, asp-net-core, blazor, database, gemini, gemini-api, newtonsoft-json, npgsql, pgadmin4, postgresql, visual-studio
- Language: C#
- Homepage:
- Size: 409 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.es.md
- License: LICENSE
Awesome Lists containing this project
README
> [Ver en ingles/See in english](https://github.com/LuisMiSanVe/GeminiPostSQL_ChatBot/tree/main)

#
GeminiPostSQL ChatBot | ChatBot de Blazor Asistido por IA para PostgreSQL
[](https://dotnet.microsoft.com/en-us/languages/csharp)
[](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet)
[](https://www.postgresql.org/)
[](https://dotnet.microsoft.com/es-es/apps/aspnet/web-apps/blazor)
[](https://www.newtonsoft.com/json)
[](https://aistudio.google.com/app/apikey)
[](https://visualstudio.microsoft.com/)
>[!NOTE]
> Esta es la versión de ChatBot en Blazor pensada para ser usada como cliente web. Hay una versión de [REST API](https://github.com/LuisMiSanVe/GeminiPostSQL_API/blob/main/README.es.md) pensada para su uso en servidores con Swagger, otra en [WinForms](https://github.com/LuisMiSanVe/GeminiPostSQL/tree/main) para su uso en Escritorio de Windows y un paquete [NuGet](https://github.com/LuisMiSanVe/GeminiPostSQL_NuGet/tree/main) para desarrolladores.
Este ChatBot usa la IA de Google 'Gemini 2.0 Flash' para generar consultas a bases de datos PostgreSQL.
La IA convierte lenguaje natural a consultas SQL, estas se ejecutan y los resultados son transformados a lenguaje natural de nuevo.
## 📋 Prerequisitos
Para que el programa funcione, necesiatarás un servidor PostgreSQL y una clave de la API de Gemini.
> [!NOTE]
> Yo usaré pgAdmin para montar el servidor PostgreSQL.
## 🛠️ Instalación
Si no lo tienes, descarga [pgAdmin 4 desde su página ofical](https://www.pgadmin.org/download/).
Ahora, crea el servidor y monta la base de datos con algunas tablas y valores.
Después, obten tu clave de la API de Gemini yendo aqui: [Google AI Studio](https://aistudio.google.com/app/apikey). Asegurate de tener tu sesión de Google abierta, y encontes dale al botón que dice 'Crear clave de API' y sigue los pasos para crear tu proyecto de Google Cloud y conseguir tu clave de API. **Guardala en algún sitio seguro**.
Google permite el uso gratuito de esta API sin añadir ninguna forma de pago, pero con algunas limitaciones.
En Google AI Studio, puedes monitorizar el uso de la IA haciendo clic en 'Ver datos de uso' en la columna de 'Plan' en la tabla con todos tus proyectos. Recomiendo monitorizarla desde la pestaña de 'Cuota y límites del sistema' y ordenando por 'Porcentaje de uso actual', ya que es donde más información obtienes.
Ya tienes todo lo que necesitas para hacer funcionar el programa.
Simplemente pon los datos que acabas de conseguir en los strings de parámetros del código.
## 📖 Sobre el ChatBot en Blazor
El método que hace el proceso natural-sql-natural funciona así:
Este [método](https://gist.github.com/LuisMiSanVe/2da8e2d932a06ef408b3ee8468d0d820) mapea la estructura de la base de datos en un JSON que Gemini analiza para crear una consulta SQL, la cual es ejecutada por el servidor PostgreSQL directamente.
Entonces, esos datos son procesados por Gemini de nuevo para resumir los resultados en lenguaje natural.
Ya que la IA necesita procesar **dos solicitudes** ([texto a sentencia SQL y tabla de resultados a texto](https://gist.github.com/LuisMiSanVe/b189c8920d2dcedf5fd46485f3403d51)) el uso de tokens es bastante alto, es por eso que la **capacidad de recordar** del ChatBot está limitada a los últimos 5 mensajes, ya que no está pensado que un chat se mantenga por demasiado tiempo.
Los chats no se guardan, por lo que el ChatBot consiste en un chat de una sola sesión volatil. Presiona `F5` para borrar los mensajes del chat actual.
## 💻 Tecnologías usadas
- Lenguaje de programación: [C#](https://dotnet.microsoft.com/en-us/languages/csharp)
- Framework: [Blazor](https://dotnet.microsoft.com/es-es/apps/aspnet/web-apps/blazor), [.Net](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet) 8.0 Framework
- Otros:
- [PostgreSQL](https://www.postgresql.org/) (16.3)
- [pgAdmin 4](https://www.pgadmin.org/) (8.9)
- Gemini API Key (2.0 Flash)
- IDE Recomendado: [Visual Studio](https://visualstudio.microsoft.com/) 2022