Gaia Web3 Voting Starter
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ó
-
Instalar o Nó Gaia:
curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash
-
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 -
Iniciar o Nó:
início da gaianet
-
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'; - Modificar
Opção 2: Obter uma chave de API
-
Criar uma conta:
- Aceder a https://gaianet.ai e clicar em Launch App
- Ligar a sua carteira MetaMask
-
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
-
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
}); - Modificar
-
Adicionar às variáveis de ambiente:
- Criar ou atualizar
.env.local
nopacotes/site
diretório:
GAIA_API_KEY=a sua chave_api_aqui
- Criar ou atualizar
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:
Sistema | Requisitos 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 SDK | 8 GB de VRAM na GPU |
Azure/AWS | Instâ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
oucomandos
- Mostrar todos os comandos disponíveisestatuto de voto
- Obter um resumo das votações activas e encerradasos 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:
-
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
-
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
-
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
-
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:
-
Ficheiros da base de dados de conhecimento:
-
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
- Instalar dependências:
instalação pnpm
- Configurar variáveis de ambiente:
# Em packages/blockchain
cp .env.example .env
# Adicione a sua chave Alchemy API e a chave privada da carteira
- Compilar e aplicar contratos:
cd packages/blockchain
npx hardhat compilar
npx hardhat ignition deploy ignition/modules/votingFactory.ts --network linea-testnet
- 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