Ir al contenido principal
Versión: 2.0.0

Gaia Web3 Voting Starter

Votación de Gaia AI

Una aplicación de votación descentralizada construida con Next.js, Hardhat y Gaia. Puede crear una situación de votación y seleccionar las opciones que desea votar y votar con el agente de IA.

Acerca de Gaia

Gaia es una infraestructura informática descentralizada que permite a todo el mundo crear, desplegar, escalar y monetizar sus propios agentes de IA. Este proyecto utiliza las capacidades de IA de Gaia para proporcionar un agente inteligente para las interacciones de votación en blockchain.

Estructura del proyecto

gaia-web3-voting-starter/
├── paquetes/
│ ├── blockchain/ # Contratos inteligentes y código blockchain
│ │ ├── contratos/ # Contratos inteligentes Solidity
│ │ ├── ignition/ # Scripts de despliegue de Hardhat Ignition.
│ │ ├── scripts/ # Scripts de Hardhat.
│ │ ├── test/ # Pruebas de contrato.
│ │ └── hardhat.config.ts # Configuración de Hardhat
│ │
│ └── site/ # Aplicación frontend Next.js
│ ├── app/ # Enrutador de la aplicación Next.js
│ │ ├── api/ # Rutas API
│ │ ├── chat/ # Página de chat
│ │ └── page.tsx # Página de inicio
│ ├── components/ # Componentes de React
│ │ ├── chat/ # Componentes relacionados con el chat
│ │ └── ui/ # Componentes de interfaz de usuario (botón, tarjeta, etc.)
│ ├── ai/ # integración de IA
│ │ └── tools.ts # Herramientas de IA para la interacción con blockchain
│ └── public/ # Activos estáticos

Características

  • Votación impulsada por un agente de inteligencia artificial: Interactuar con la blockchain mediante comandos de lenguaje natural.
  • Fábrica de contratos inteligentes: Crear nuevas instancias de votación con opciones y duraciones personalizables.
  • Votación en cadena: Emite votos de forma segura en la blockchain con resultados transparentes.
  • Gestión de votaciones: Visualización de votaciones activas e históricas con información detallada del estado
  • Compatibilidad entre cadenas: Despliegue en Linea Sepolia o en cualquier otra cadena compatible con EVM.

Configuración del nodo Gaia

Para utilizar tu propio nodo Gaia con esta aplicación, sigue estos pasos:

Opción 1: Ejecute su propio nodo

  1. Instala el Nodo Gaia:

    curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash
  2. Inicializar con un Modelo:

    # Para el modelo Llama-3-Groq-8B (recomendado para este proyecto)
    gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/llama-3-groq-8b-tool/config.json

    # O elija otro modelo de las configuraciones disponibles
    # Examine las opciones en: https://github.com/GaiaNet-AI/node-configs
  3. Inicie el Nodo:

    inicio de gaianet
  4. Actualice su solicitud:

    • Modifique packages/site/app/api/chat/route.ts para que apunte a su nodo local:
    const GAIA_API_ENDPOINT = 'http://gaiaURL/v1';
    const GAIA_MODEL = 'Llama-3-Groq-8B-Herramienta';

Opción 2: Obtener una clave API

  1. Crear una cuenta:

  2. Generar una clave API:

    • Haz clic en el menú desplegable de tu perfil y selecciona Configuración
    • Vaya a Gaia API Keys y haga clic en Create API Key.
    • Dale un nombre a tu clave y guárdala de forma segura
  3. Actualice su solicitud:

    • Modifique packages/site/app/api/chat/route.ts para utilizar su clave API:
    const GAIA_API_ENDPOINT = 'https://api.gaianet.ai/v1';
    const GAIA_MODEL = 'Llama';

    // Add your API key here
    const openai = createOpenAI({
    baseURL: GAIA_API_ENDPOINT,
    apiKey: "" // API key Here
    });

  4. Añadir a variables de entorno:

    • Crear o actualizar .env.local en el paquetes/sitio directorio:
    GAIA_API_KEY=su_clave_api_aquí

Requisitos del sistema

Si ejecuta su propio nodo, asegúrese de que su sistema cumple estos requisitos o empiece con un modelo pequeño de LLM:

SistemaRequisitos mínimos
OSX con Apple Silicon (chip M1-M4)16 GB de RAM (se recomiendan 32 GB)
Ubuntu Linux 20.04 con Nvidia CUDA 12 SDK8 GB de VRAM en la GPU
Azure/AWSInstancia de GPU Nvidia T4

Comandos del agente de IA

La aplicación incluye un agente de IA que ayuda a los usuarios a interactuar con el sistema de votación mediante comandos en lenguaje natural:

1. Crear una nueva votación

create voting "Your voting description" options: option1, option2, option3 duration: <number>

Opciones de duración:

  • 1 - 1 hora
  • 2 - 1 día
  • 3 - 1 semana

2. Ver votaciones

Mostrar todas las votaciones (incluidas las finalizadas):

mostrar todas las votaciones
obtener todas las votaciones
listar votaciones

Mostrar sólo las votaciones activas:

mostrar votaciones activas
listar votaciones activas
obtener votaciones activas

3. Emitir un voto

vote por [dirección del contrato] opción [número].

Por ejemplo:

vote por 0x1234...5678 opción 2

4. Comandos adicionales

  • ayuda o comandos - Mostrar todos los comandos disponibles
  • condición de votante - Obtenga un resumen de las votaciones activas y finalizadas
  • mis votos - Consulta tu historial de voto

Mejora del agente de IA con bases de conocimiento

Para que el agente de IA de su aplicación de votación sea más potente y consciente del contexto, puede integrar el sistema de base de conocimientos de Gaia:

  1. Crear una base de conocimientos específica para las votaciones:

    • Documentar las pautas de votación y los casos de uso comunes
    • Incluir explicaciones sobre los conceptos de votación de blockchain
    • Añadir preguntas frecuentes sobre el proceso de votación
    • Incluir ejemplos de campañas electorales que hayan tenido éxito
  2. Estructure su base de conocimientos:

    • Organizar la información por categorías (por ejemplo, "Crear votos", "Emitir votos", "Ver resultados").
    • Incluye metadatos como marcas de tiempo y etiquetas para mejorar las búsquedas.
    • Utilice archivos markdown o de texto sin formato para facilitar el mantenimiento
  3. Importar a Gaia:

    • Utiliza las herramientas de Gaia para importar tu base de conocimientos
    • El sistema convertirá automáticamente tus contenidos en incrustaciones utilizando Qdrant
    • Configure su agente de IA para que haga referencia a esta base de conocimientos
  4. Ventajas de la integración de la base de conocimientos:

    • Mayor precisión: El agente proporcionará respuestas más precisas y contextualmente relevantes
    • Experiencia de usuario mejorada: Los usuarios recibirán orientaciones más útiles sobre los procesos de votación
    • Escalabilidad: A medida que crece su base de conocimientos, se amplían las capacidades del agente sin necesidad de volver a formarlo.
    • Eficacia: El agente puede acceder rápidamente a información preorganizada en lugar de procesar los datos en tiempo real

Base de conocimientos preconfigurada

Hemos creado una base de conocimientos preconfigurada específicamente para DApps de votación Web3. Puedes usarla con tu nodo Gaia:

  1. Archivos de la base de conocimientos:

  2. Configure su Nodo Gaia: Ejecute el siguiente comando para configurar su nodo Gaia con la base de conocimientos de votación:

gaianet config
--snapshot https://huggingface.co/datasets/meowy-ai/web3-knowledge-base/resolve/main/default-8461598741381726-2025-04-29-07-50-41.snapshot.tar.gz
--system-prompt "Usted es un útil instructor web3, por favor responda a las preguntas"


Para más información sobre bases de conocimiento en Gaia, visite la [Documentación de Bases de Conocimiento de Gaia](https://docs.gaianet.ai/knowledge-bases/intro).

## Comenzando

### Prerrequisitos

- Node.js instalado
- Un monedero con algo de ETH de prueba en Sepolia (Puedes usar cualquier L1/L2 que quieras)
- Clave API [Alchemy](https://www.alchemy.com/) o Infura
### Configuración

1. Clona el repositorio:
```bash
git clone git@github.com:meowyx/gaia-web3-voting-starter.git
cd gaia-web3-voting-starter
  1. Instalar dependencias:
instalación pnpm
  1. Configurar variables de entorno:
# En packages/blockchain
cp .env.ejemplo .env
# Añade tu clave API de Alchemy y la clave privada del monedero
  1. Recopilar y desplegar contratos:
cd paquetes/blockchain
npx hardhat compilar
npx hardhat ignition deploy ignition/modules/votingFactory.ts --network linea-testnet
  1. Inicie el frontend:
cd paquetes/sitio
pnpm dev

Arquitectura

  • Contratos inteligentes: Patrón de fábrica para desplegar instancias de votación
  • Frontend: Next.js con interfaz de chat basada en IA
  • Blockchain: Linea Sepolia testnet para el despliegue
  • Integración de IA: Herramientas personalizadas para la interacción con blockchain