Saltar para o conteúdo principal
Versão: 2.0.0

Gaia Web3 Voting Starter

Votação Gaia AI

Uma aplicação de votação descentralizada construída com Next.js, Hardhat e Gaia. Pode criar uma situação de votação e selecionar as escolhas que pretende votar e votá-las com o AI Agent.

Sobre Gaia

Gaia é uma infraestrutura de computação descentralizada que permite a todos criar, implementar, escalar e rentabilizar os seus próprios agentes de IA. Este projeto utiliza as capacidades de IA do Gaia para fornecer um agente inteligente para interações de votação em blockchain.

Estrutura do projeto

gaia-web3-voting-starter/
├── pacotes/
│ ├─── blockchain/ # Contratos inteligentes e código blockchain
│ │ ├── contratos/ # Contratos inteligentes Solidity
│ │ ├── ignição/ # Scripts de implementação do Hardhat Ignition
│ │ ├─── scripts/ # Scripts do Hardhat
│ │ ├─── teste/ # Testes de contrato
│ │ └─── hardhat.config.ts # Configuração do Hardhat
│ │
│ └─── site/ # Aplicação frontend Next.js
│ ├─── app/ # Roteador de aplicativo Next.js
│ │ ├─── api/ # Rotas da API
│ │ ├─── chat/ # Página de chat
│ │ └─── page.tsx # Página inicial
│ ├─── componentes/ # Componentes React
│ │ ├─── chat/ # Componentes relacionados a chat
│ │ └─── ui/ # Componentes UI (botão, cartão, etc.)
│ ├─── ai/ # Integração de IA
│ │ └─── tools.ts # Ferramentas de IA para interação com blockchain
│ └─── public/ # Ativos estáticos

Caraterísticas

  • Votação baseada em agentes de IA: Interagir com a cadeia de blocos através de comandos de linguagem natural
  • Fábrica de contratos inteligentes: Criar novas instâncias de votação com opções e durações personalizáveis
  • Votação na cadeia: Votar de forma segura na blockchain com resultados transparentes
  • Gestão de votações: Visualizar votações activas e históricas com informações de estado detalhadas
  • Compatibilidade entre cadeias: Implementação na Linea Sepolia ou em qualquer outra cadeia compatível com EVM

Configuração do nó Gaia

Para utilizar o seu próprio nó Gaia com esta aplicação, siga estes passos:

Opção 1: Executar seu próprio nó

  1. Instalar o Nó Gaia:

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

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

    # Ou escolha outro modelo entre as configurações disponíveis
    # Procurar opções em: https://github.com/GaiaNet-AI/node-configs
  3. Iniciar o Nó:

    início da gaianet
  4. Atualizar a sua aplicação:

    • Modificar packages/site/app/api/chat/route.ts para apontar para o seu nó local:
    const GAIA_API_ENDPOINT = 'http://gaiaURL/v1';
    const GAIA_MODEL = 'Llama-3-Groq-8B-Tool';

Opção 2: Obter uma chave de API

  1. Criar uma conta:

  2. Gerar uma chave de API:

    • Clique na lista pendente do seu perfil e selecione Definições
    • Navegue até Chaves da API Gaia e clique em Criar chave da API
    • Dê um nome à sua chave e guarde-a de forma segura
  3. Atualizar a sua aplicação:

    • Modificar packages/site/app/api/chat/route.ts para utilizar a sua chave 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. Adicionar às variáveis de ambiente:

    • Criar ou atualizar .env.local no pacotes/site diretório:
    GAIA_API_KEY=a sua chave_api_aqui

Requisitos do sistema

Se estiver a executar o seu próprio nó, certifique-se de que o seu sistema cumpre estes requisitos ou comece com um pequeno modelo de LLM:

SistemaRequisitos mínimos
OSX com Apple Silicon (chip M1-M4)16 GB de RAM (recomenda-se 32 GB)
Ubuntu Linux 20.04 com Nvidia CUDA 12 SDK8 GB de VRAM na GPU
Azure/AWSInstância de GPU Nvidia T4

Comandos de agentes de IA

A aplicação inclui um agente de IA que ajuda os utilizadores a interagir com o sistema de votação através de comandos em linguagem natural:

1. Criar uma nova votação

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

Opções de duração:

  • 1 - 1 hora
  • 2 - 1 dia
  • 3 - 1 semana

2. Ver votações

Mostrar todas as votações (incluindo as encerradas):

mostrar todas as votações
obter todas as votações
listar votações

Mostrar apenas as votações activas:

mostrar votações activas
listar votações activas
obter votações activas

3. Votar

voto para [endereço do contrato] opção [número]

Exemplo:

voto para 0x1234...5678 opção 2

4. Comandos adicionais

  • ajuda ou comandos - Mostrar todos os comandos disponíveis
  • estatuto de voto - Obter um resumo das votações activas e encerradas
  • os meus votos - Ver o seu histórico de votações

Melhorar o agente de IA com bases de conhecimentos

Para tornar o agente de IA da sua aplicação de votação mais potente e consciente do contexto, pode integrar o sistema de base de conhecimentos do Gaia:

  1. Criar uma base de conhecimentos específica para votação:

    • Documentar padrões de votação e casos de utilização comuns
    • Incluir explicações sobre os conceitos de votação em cadeia de blocos
    • Adicionar perguntas frequentes sobre o processo de votação
    • Incluir exemplos de campanhas de votação bem sucedidas
  2. Estruture a sua base de conhecimentos:

    • Organizar a informação por categorias (por exemplo, "Criar votos", "Votar", "Ver resultados")
    • Incluir metadados como carimbos de data/hora e etiquetas para uma melhor pesquisabilidade
    • Utilize ficheiros markdown ou de texto simples para facilitar a manutenção
  3. Importar para Gaia:

    • Utilize as ferramentas do Gaia para importar a sua base de conhecimentos
    • O sistema converterá automaticamente o seu conteúdo em incorporações utilizando Qdrant
    • Configure o seu agente de IA para fazer referência a esta base de conhecimentos
  4. Vantagens da integração da base de conhecimentos:

    • Precisão melhorada: O agente fornecerá respostas mais exactas e contextualmente relevantes
    • Melhoria da experiência do utilizador: Os utilizadores receberão orientações mais úteis sobre os processos de votação
    • Escalabilidade: À medida que a sua base de conhecimentos cresce, as capacidades do agente expandem-se sem necessidade de reciclagem
    • Eficiência: O agente pode aceder rapidamente a informações pré-organizadas em vez de processar dados em tempo real

Base de conhecimentos pré-configurada

Criámos uma base de conhecimento pré-configurada especificamente para DApps de votação Web3. Podes usá-la com o teu nó Gaia:

  1. Ficheiros da base de dados de conhecimento:

  2. Configure seu nó Gaia: Execute o seguinte comando para configurar o seu nó Gaia com a base de conhecimentos de votação:

configuração da gaianet
--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 "Você é um instrutor web3 útil, por favor responda as perguntas"


Para obter mais informações sobre as bases de conhecimento em Gaia, visite a [Documentação das bases de conhecimento Gaia](https://docs.gaianet.ai/knowledge-bases/intro).

## Primeiros passos

### Pré-requisitos

- Node.js instalado
- Uma carteira com algum ETH de teste no Sepolia (Podes usar qualquer L1/L2 que queiras)
- [Alchemy](https://www.alchemy.com/) ou chave API Infura
### Configuração

1. Clonar o repositório:
```bash
git clone git@github.com:meowyx/gaia-web3-voting-starter.git
cd gaia-web3-voting-starter
  1. Instalar dependências:
instalação pnpm
  1. Configurar variáveis de ambiente:
# Em packages/blockchain
cp .env.example .env
# Adicione a sua chave Alchemy API e a chave privada da carteira
  1. Compilar e aplicar contratos:
cd packages/blockchain
npx hardhat compilar
npx hardhat ignition deploy ignition/modules/votingFactory.ts --network linea-testnet
  1. Iniciar o frontend:
cd packages/site
pnpm dev

Arquitetura

  • Contratos inteligentes: Padrão de fábrica para a implementação de instâncias de votação
  • Frontend: Next.js com interface de conversação alimentada por IA
  • Blockchain: Linea Sepolia testnet para implantação
  • Integração de IA: Ferramentas personalizadas para interação com a cadeia de blocos