Gaia Web3 Voting Starter
Một ứng dụng bỏ phiếu phi tập trung được xây dựng bằng Next.js, Hardhat và Gaia . Bạn có thể tạo tình huống bỏ phiếu và chọn các lựa chọn bạn muốn bỏ phiếu và bỏ phiếu bằng AI Agent.
Về Gaia
Gaia là một cơ sở hạ tầng điện toán phi tập trung cho phép mọi người tạo, triển khai, mở rộng quy mô và kiếm tiền từ các tác nhân AI của riêng họ. Dự án này sử dụng khả năng AI của Gaia để cung cấp một tác nhân thông minh cho các tương tác bỏ phiếu blockchain.
Cấu trúc dự án
gaia-web3-voting-starter/
├── gói/
│ ├── blockchain/ # Hợp đồng thông minh và mã blockchain
│ │ ├── hợp đồng/ # Hợp đồng thông minh Solidity
│ │ ├── ignition/ # Các tập lệnh triển khai Hardhat Ignition
│ │ ├── scripts/ # Hardhat scripts
│ │ ├── test/ # Kiểm tra hợp đồng
│ │ └── hardhat.config.ts # Cấu hình Hardhat
│ │
│ └── site/ # Ứng dụng frontend Next.js
│ ├── app/ # Bộ định tuyến ứng dụng Next.js
│ │ ├── api/ # Tuyến API
│ │ ├── chat/ # Trang trò chuyện
│ │ └── page.tsx # Trang chủ
│ ├── components/ # Các thành phần phản ứng
│ │ ├── chat/ # Các thành phần liên quan đến trò chuyện
│ │ └── ui/ # Các thành phần UI (nút, thẻ, v.v.)
│ ├── ai/ # Tích hợp AI
│ │ └── tools.ts # Công cụ AI cho tương tác blockchain
│ └── public/ # Tài sản tĩnh
Đặc trưng
- Biểu quyết do AI-Agent hỗ trợ : Tương tác với blockchain thông qua các lệnh ngôn ngữ tự nhiên
- Nhà máy hợp đồng thông minh : Tạo các trường hợp bỏ phiếu mới với các tùy chọn và thời lượng có thể tùy chỉnh
- Biểu quyết trên chuỗi : Bỏ phiếu an toàn trên chuỗi khối với kết quả minh bạch
- Quản lý bỏ phiếu : Xem các phiếu bầu đang hoạt động và lịch sử với thông tin trạng thái chi tiết
- Khả năng tương thích chuỗi chéo : Triển khai trên Linea Sepolia hoặc bất kỳ chuỗi nào khác tương thích với EVM
Thiết lập nút Gaia của bạn
Để sử dụng nút Gaia của riêng bạn với ứng dụng này, hãy làm theo các bước sau:
Tùy chọn 1: Chạy nút của riêng bạn
-
Cài đặt Gaia Node :
cuộn tròn -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | Bash
-
Khởi tạo với Model :
# Dành cho mô hình Llama-3-Groq-8B (khuyến nghị cho dự án này)
gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/llama-3-groq-8b-tool/config.json
# Hoặc chọn một mô hình khác từ các cấu hình có sẵn
# Duyệt các tùy chọn tại: https://github.com/GaiaNet-AI/node-configs -
Bắt đầu Node :
Gaianet bắt đầu
-
Cập nhật đơn đăng ký của bạn :
- Biến đổi
gói/trang web/ứng dụng/api/trò chuyện/route.ts
để trỏ đến nút cục bộ của bạn:
hằng số ĐIỂM KẾT THÚC GAIA_API = 'http://gaiaURL/v1' ;
hằng số MÔ HÌNH GAIA = 'Llama-3-Groq-8B-Công cụ' ; - Biến đổi
Tùy chọn 2: Nhận Khóa API
-
Tạo tài khoản :
- Truy cập https://gaianet.ai và nhấp vào Khởi chạy ứng dụng
- Kết nối ví MetaMask của bạn
-
Tạo khóa API :
- Nhấp vào menu thả xuống hồ sơ của bạn và chọn Cài đặt
- Điều hướng đến Gaia API Keys và nhấp vào Create API Key
- Đặt tên cho khóa của bạn và lưu nó một cách an toàn
-
Cập nhật đơn đăng ký của bạn :
- Biến đổi
gói/trang web/ứng dụng/api/trò chuyện/route.ts
để sử dụng khóa API của bạn:
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
}); - Biến đổi
-
Thêm vào Biến môi trường :
- Tạo hoặc cập nhật
.env.local
tronggói/trang web
thư mục:
GAIA_API_KEY=khóa_api_của_bạn_ở_đây
- Tạo hoặc cập nhật
Yêu cầu hệ thống
Nếu chạy nút của riêng bạn, hãy đảm bảo hệ thống của bạn đáp ứng các yêu cầu sau hoặc bắt đầu với một mô hình LLM nhỏ:
Hệ thống | Yêu cầu tối thiểu |
---|---|
OSX với Apple Silicon (chip M1-M4) | RAM 16GB (khuyến nghị 32GB) |
Ubuntu Linux 20.04 với Nvidia CUDA 12 SDK | VRAM 8GB trên GPU |
Azure/AWS | Phiên bản GPU Nvidia T4 |
Lệnh của tác nhân AI
Ứng dụng này bao gồm một tác nhân AI giúp người dùng tương tác với hệ thống bỏ phiếu thông qua các lệnh ngôn ngữ tự nhiên:
1. Tạo một phiếu bầu mới
create voting "Your voting description" options: option1, option2, option3 duration: <number>
Tùy chọn thời lượng:
- 1 - 1 giờ
- 2 - 1 Ngày
- 3 - 1 tuần
2. Xem phiếu bầu
Hiển thị tất cả các phiếu bầu (bao gồm cả phiếu đã kết thúc):
Hiển thị tất cả các phiếu bầu
nhận được tất cả các phiếu bầu
danh sách bỏ phiếu
Chỉ hiển thị các phiếu bầu đang hoạt động:
hiển thị các phiếu bầu đang hoạt động
liệt kê các phiếu bầu đang hoạt động
nhận được phiếu bầu tích cực
3. Bỏ phiếu
bỏ phiếu cho tùy chọn [địa chỉ hợp đồng] [số]
Ví dụ:
bỏ phiếu cho 0x1234...5678 tùy chọn 2
4. Các lệnh bổ sung
Trợ giúp
hoặclệnh
- Hiển thị tất cả các lệnh có sẵntình trạng bỏ phiếu
- Nhận tóm tắt về các cuộc bỏ phiếu đang diễn ra và đã kết thúcphiếu bầu của tôi
- Xem lịch sử bỏ phiếu của bạn
Nâng cao AI Agent với Cơ sở kiến thức
Để làm cho tác nhân AI của ứng dụng bỏ phiếu của bạn mạnh mẽ hơn và có khả năng nhận biết ngữ cảnh hơn, bạn có thể tích hợp hệ thống cơ sở kiến thức của Gaia:
-
Tạo Cơ sở kiến thức dành riêng cho việc bỏ phiếu :
- Tài liệu về các mẫu bỏ phiếu phổ biến và các trường hợp sử dụng
- Bao gồm các giải thích về khái niệm bỏ phiếu blockchain
- Thêm các câu hỏi thường gặp về quá trình bỏ phiếu
- Bao gồm các ví dụ về chiến dịch bỏ phiếu thành công
-
Cấu trúc cơ sở kiến thức của bạn :
- Sắp xếp thông tin theo danh mục (ví dụ: "Tạo phiếu bầu", "Bỏ phiếu", "Xem kết quả")
- Bao gồm siêu dữ liệu như dấu thời gian và thẻ để tìm kiếm tốt hơn
- Sử dụng markdown hoặc tệp văn bản thuần túy để bảo trì dễ dàng
-
Nhập vào Gaia :
- Sử dụng các công cụ của Gaia để nhập cơ sở kiến thức của bạn
- Hệ thống sẽ tự động chuyển đổi nội dung của bạn thành nội dung nhúng bằng Qdrant
- Cấu hình tác nhân AI của bạn để tham chiếu cơ sở kiến thức này
-
Lợi ích của việc tích hợp cơ sở kiến thức :
- Độ chính xác được cải thiện : Tác nhân sẽ cung cấp phản hồi chính xác hơn và phù hợp với ngữ cảnh hơn
- Trải nghiệm người dùng được cải thiện : Người dùng sẽ nhận được hướng dẫn hữu ích hơn về quy trình bỏ phiếu
- Khả năng mở rộng : Khi cơ sở kiến thức của bạn phát triển, khả năng của tác nhân sẽ mở rộng mà không cần đào tạo lại
- Hiệu quả : Tác nhân có thể nhanh chóng truy cập thông tin được sắp xếp trước thay vì xử lý dữ liệu theo thời gian thực
Cơ sở kiến thức được cấu hình sẵn
Chúng tôi đã tạo ra một cơ sở kiến thức được cấu hình sẵn dành riêng cho DApp bỏ phiếu Web3. Bạn có thể sử dụng nó với nút Gaia của mình:
-
Các tập tin cơ sở kiến thức :
-
Cấu hình nút Gaia của bạn : Chạy lệnh sau để cấu hình nút Gaia của bạn với cơ sở kiến thức bỏ phiếu:
cấu hình gaianet
--ảnh chụp https://huggingface.co/datasets/meowy-ai/web3-knowledge-base/resolve/main/default-8461598741381726-2025-04-29-07-50-41.snapshot.tar.gz
--system-prompt "Bạn là một giảng viên web3 hữu ích, vui lòng trả lời các câu hỏi"
Để biết thêm thông tin về cơ sở kiến thức trong Gaia, hãy truy cập [Tài liệu cơ sở kiến thức Gaia](https://docs.gaianet.ai/knowledge-bases/intro).
## Bắt đầu
### Điều kiện tiên quyết
- Đã cài đặt Node.js
- Ví có một số ETH thử nghiệm trên Sepolia (Bạn có thể sử dụng bất kỳ L1/L2 nào bạn muốn)
- [Alchemy](https://www.alchemy.com/) hoặc khóa API Infura
### Cài đặt
1. Sao chép kho lưu trữ:
```búa
git clone git@github.com:meowyx/gaia-web3-voting-starter.git
cd gaia-web3-voting-starter
- Cài đặt các phụ thuộc:
cài đặt pnpm
- Cấu hình biến môi trường:
# Trong các gói/chuỗi khối
cp .env.ví dụ .env
# Thêm khóa API Alchemy và khóa riêng tư của ví
- Biên soạn và triển khai hợp đồng:
gói cd/blockchain
npx hardhat biên dịch
npx hardhat ignition triển khai ignition/modules/votingFactory.ts --network linea-testnet
- Bắt đầu giao diện:
gói cd/trang web
pnpm phát triển
Kiến trúc
- Hợp đồng thông minh : Mô hình nhà máy để triển khai các trường hợp bỏ phiếu
- Frontend : Next.js với giao diện trò chuyện hỗ trợ AI
- Blockchain : Mạng thử nghiệm Linea Sepolia để triển khai
- Tích hợp AI : Công cụ tùy chỉnh cho tương tác blockchain