Gaia Web3 Oylama Başlatıcısı
Next.js, Hardhat ve Gaia ile oluşturulmuş merkezi olmayan bir oylama uygulaması. Oylama durumu oluşturabilir ve oylamak istediğiniz seçenekleri seçebilir ve AI Agent ile oylayabilirsiniz.
Gaia Hakkında
Gaia, herkesin kendi yapay zeka aracılarını oluşturmasına, dağıtmasına, ölçeklendirmesine ve bunlardan para kazanmasına olanak tanıyan merkezi olmayan bir bilgi işlem altyapısıdır. Bu proje, blok zinciri oylama etkileşimleri için akıllı bir aracı sağlamak üzere Gaia'nın yapay zeka yeteneklerini kullanmaktadır.
Proje Yapısı
gaia-web3-voting-starter/
├── paketler/
│ ├── blockchain/ # Akıllı sözleşmeler ve blockchain kodu
│ │ ├── sözleşmeler/ # Solidity akıllı sözleşmeler
│ │ ├── ateşleme/ # Baret Ateşleme dağıtım komut dosyaları
│ │ ├── scripts/ # Hardhat scripts
│ │ ├── test/ # Sözleşme testleri
│ │ └── hardhat.config.ts # Hardhat yapılandırması
│ │
│ └── site/ # Next.js ön uç uygulaması
│ ├── app/ # Next.js uygulama yönlendiricisi
│ │ ├── api/ # API rotaları
│ │ ├── sohbet/ # Sohbet sayfası
│ │ └── page.tsx # Ana sayfa
│ ├── bileşenler/ # React bileşenleri
│ │ ├── chat/ # Sohbetle ilgili bileşenler
│ │ └── ui/ # UI bileşenleri (düğme, kart, vb.)
│ ├── ai/ # Yapay zeka entegrasyonu
│ │ └─ tools.ts # Blok zinciri etkileşimi için yapay zeka araçları
│ └── kamu/ # Statik varlıklar
Özellikler
- AI-Agent Destekli Oylama: Doğal dil komutları aracılığıyla blok zinciri ile etkileşim
- Akıllı Sözleşme Fabrikası: Özelleştirilebilir seçenekler ve sürelerle yeni oylama örnekleri oluşturun
- Zincir Üzerinde Oylama: Şeffaf sonuçlarla blok zincirinde güvenli bir şekilde oy kullanın
- Oylama Yönetimi: Aktif ve geçmiş oylamaları ayrıntılı durum bilgileriyle görüntüleyin
- Çapraz Zincir Uyumluluğu: Linea Sepolia veya diğer EVM uyumlu zincirlere dağıtın
Gaia Düğümünüzü Kurma
Bu uygulama ile kendi Gaia düğümünüzü kullanmak için aşağıdaki adımları izleyin:
Seçenek 1: Kendi Düğümünüzü Çalıştırın
-
Gaia Node'u yükleyin:
curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash
-
Bir Model ile başlatın:
# Llama-3-Groq-8B modeli için (bu proje için önerilir)
gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/llama-3-groq-8b-tool/config.json
# Veya mevcut konfigürasyonlardan başka bir model seçin
# Seçeneklere şu adresten göz atın: https://github.com/GaiaNet-AI/node-configs -
Düğümü başlatın:
gaianet başlangıç
-
Başvurunuzu Güncelleyin:
- Değiştirmek
packages/site/app/api/chat/route.ts
yerel düğümünüzü işaret etmek için:
const GAIA_API_ENDPOINT = 'http://gaiaURL/v1';
const GAIA_MODELİ = 'Llama-3-Groq-8B-Tool'; - Değiştirmek
Seçenek 2: Bir API Anahtarı Alın
-
Bir Hesap Oluşturun:
- https://gaianet.ai adresine gidin ve Uygulamayı Başlat'a tıklayın
- MetaMask cüzdanınızı bağlayın
-
Bir API Anahtarı oluşturun:
- Profilinizin açılır menüsüne tıklayın ve Ayarlar'ı seçin
- Gaia API Anahtarları 'na gidin ve API Anahtarı Oluştur'a tıklayın
- Anahtarınıza bir isim verin ve güvenli bir şekilde kaydedin
-
Başvurunuzu Güncelleyin:
- Değiştirmek
packages/site/app/api/chat/route.ts
API anahtarınızı kullanmak için:
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
}); - Değiştirmek
-
Ortam Değişkenlerine Ekle:
- Oluşturun veya güncelleyin
.env.local
içindepaketler/site
dizin:
GAIA_API_KEY=your_api_key_here
- Oluşturun veya güncelleyin
Sistem Gereksinimleri
Kendi düğümünüzü çalıştırıyorsanız, sisteminizin bu gereksinimleri karşıladığından emin olun veya küçük bir LLM modeli ile başlayın:
Sistem | Minimum Gereksinimler |
---|---|
Apple Silicon ile OSX (M1-M4 çip) | 16GB RAM (32GB önerilir) |
Nvidia CUDA 12 SDK ile Ubuntu Linux 20.04 | GPU üzerinde 8GB VRAM |
Azure/AWS | Nvidia T4 GPU Örneği |
Yapay Zeka Ajan Komutları
Uygulama, kullanıcıların doğal dil komutları aracılığıyla oylama sistemiyle etkileşime girmesine yardımcı olan bir yapay zeka aracısı içermektedir:
1. Yeni Bir Oylama Oluşturun
create voting "Your voting description" options: option1, option2, option3 duration: <number>
Süre seçenekleri:
- 1 - 1 Saat
- 2 - 1 Gün
- 3 - 1 Hafta
2. Oylamaları Görüntüle
Tüm oylamaları gösterin (sona erenler dahil):
tüm oylamaları göster
tüm oylamaları al
liste oylamaları
Sadece aktif oylamaları göster:
aktif oylamaları göster
aktif oylamaları listele
aktif oylama alın
3. Oy Kullanın
sözleşme-adresi] seçeneği için oy [sayı]
Örnek:
0x1234...5678 seçenek 2 için oy verin
4. Ek Komutlar
Yardım
veyakomutlar
- Mevcut tüm komutları gösteroy verme durumu
- Aktif ve sona eren oylamaların bir özetini alınbenim oylarım
- Oylama geçmişinizi görüntüleyin
Yapay Zeka Ajanının Bilgi Tabanları ile Geliştirilmesi
Oylama uygulamanızın yapay zeka aracısını daha güçlü ve bağlama duyarlı hale getirmek için Gaia'nın bilgi tabanı sistemini entegre edebilirsiniz:
-
Oylamaya Özel Bilgi Tabanı Oluşturun:
- Yaygın oylama modellerini ve kullanım durumlarını belgeleyin
- Blok zinciri oylama kavramlarının açıklamalarını ekleyin
- Oylama süreci hakkında sıkça sorulan soruları ekleyin
- Başarılı oylama kampanyalarından örnekler ekleyin
-
Bilgi Tabanınızı Yapılandırın:
- Bilgileri kategorilere göre düzenleyin (örneğin, "Oy Oluşturma", "Oy Verme", "Sonuçları Görüntüleme")
- Daha iyi aranabilirlik için zaman damgaları ve etiketler gibi meta verileri ekleyin
- Kolay bakım için markdown veya düz metin dosyaları kullanın
-
Gaia'ya aktarın:
- Bilgi tabanınızı içe aktarmak için Gaia'nın araçlarını kullanın
- Sistem, Qdrant'ı kullanarak içeriğinizi otomatik olarak yerleştirmelere dönüştürecektir
- Yapay zeka aracınızı bu bilgi tabanına başvuracak şekilde yapılandırın
-
Bilgi Tabanı Entegrasyonunun Faydaları:
- Geliştirilmiş Doğruluk: Temsilci daha doğru ve bağlamla ilgili yanıtlar verecektir
- Geliştirilmiş Kullanıcı Deneyimi: Kullanıcılar oylama süreçleri hakkında daha fazla yardımcı rehberlik alacaklar
- Ölçeklenebilirlik: Bilgi tabanınız büyüdükçe, aracının yetenekleri yeniden eğitime gerek kalmadan genişler
- Verimlilik: Temsilci, verileri gerçek zamanlı olarak işlemek yerine önceden düzenlenmiş bilgilere hızlı bir şekilde erişebilir
Önceden Yapılandırılmış Bilgi Tabanı
Özellikle Web3 oylama DApp'leri için önceden yapılandırılmış bir bilgi tabanı oluşturduk. Gaia düğümünüz ile kullanabilirsiniz:
-
Bilgi Bankası Dosyaları:
-
Gaia Düğümünüzü Yapılandırın: Gaia düğümünüzü oylama bilgi tabanı ile yapılandırmak için aşağıdaki komutu çalıştırın:
gaianet yapılandırması
--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 "Siz yardımcı bir web3 eğitmenisiniz, lütfen soruları yanıtlayın"
Gaia'daki bilgi tabanları hakkında daha fazla bilgi için [Gaia Knowledge Bases Documentation] (https://docs.gaianet.ai/knowledge-bases/intro) adresini ziyaret edin.
## Başlarken
### Önkoşullar
- Node.js yüklü
- Sepolia üzerinde bir miktar test ETH'si olan bir cüzdan (İstediğiniz herhangi bir L1/L2'yi kullanabilirsiniz)
- [Alchemy](https://www.alchemy.com/) veya Infura API anahtarı
### Kurulum
1. Depoyu klonlayın:
```bash
git clone git@github.com:meowyx/gaia-web3-voting-starter.git
cd gaia-web3-voting-starter
- Bağımlılıkları yükleyin:
pnpm kurulumu
- Ortam değişkenlerini yapılandırın:
# packages/blockchain içinde
cp .env.example .env
# Alchemy API anahtarınızı ve cüzdan özel anahtarınızı ekleyin
- Sözleşmeleri derleyin ve dağıtın:
cd packages/blockchain
npx hardhat derleme
npx hardhat ignition deploy ignition/modules/votingFactory.ts --network linea-testnet
- Ön ucu başlatın:
cd packages/site
pnpm dev
Mimarlık
- Akıllı Sözleşmeler: Oylama örneklerini dağıtmak için fabrika modeli
- Ön uç: Yapay zeka destekli sohbet arayüzü ile Next.js
- Blockchain: Linea Sepolia dağıtım için test ağı
- Yapay Zeka Entegrasyonu: Blockchain etkileşimi için özel araçlar