가이아 웹3 투표 스타터
Next.js, 하드햇, 가이아로 구축된 탈중앙화 투표 애플리케이션입니다. 투표 상황을 생성하고 투표할 항목을 선택해 AI 에이전트를 통해 투표할 수 있습니다.
가이아 소개
Gaia는 누구나 자신만의 AI 에이전트를 생성, 배포, 확장, 수익화할 수 있는 탈중앙화된 컴퓨팅 인프라입니다. 이 프로젝트는 Gaia의 AI 기능을 사용하여 블록체인 투표 상호작용을 위한 지능형 에이전트를 제공합니다.
프로젝트 구조
가이아-웹3-투표-스타터/
├── 패키징/
│ ├── 블록체인/ # 스마트 컨트랙트 및 블록체인 코드
│ │ ├── 컨트랙트/ # 솔리디티 스마트 컨트랙트
│ │ ├── 이그니션/ # 하드햇 이그니션 배포 스크립트
│ │ ├── 스크립트/ # 하드햇 스크립트
│ │ ├── 테스트/ # 컨트랙트 테스트
│ │ └── hardhat.config.ts # 하드햇 구성
│ │
│ └── site/ # Next.js 프론트엔드 애플리케이션
│ ├── app/ # Next.js 앱 라우터
│ │ ├── api/ # API 경로
│ │ ├── 채팅/ # 채팅 페이지
│ │ └── page.tsx # 홈 페이지
│ ├── 컴포넌트/ # 리액트 컴포넌트
│ │ ├── 채팅/ # 채팅 관련 컴포넌트
│ │ └── ui/ # UI 컴포넌트(버튼, 카드 등)
│ ├── AI/ # AI 통합
│ │ └── tools.ts # 블록체인 상호작용을 위한 AI 도구
│ └── public/ # 정적 자산
특징
- AI 에이전트 기반 투표: 자연어 명령을 통해 블록체인과 상호작용하기
- 스마트 컨트랙트 팩토리: 사용자 지정 가능한 옵션과 기간으로 새로운 투표 인스턴스 생성
- 온체인 투표: 투명한 결과와 함께 블록체인에서 안전하게 투표를 진행하세요.
- 투표 관리: 자세한 상태 정보와 함께 활성 투표 및 과거 투표 보기
- 크로스 체인 호환성: 리네아 세폴리아 또는 기타 EVM 호환 체인에 배포하세요.
Gaia 노드 설정
이 애플리케이션에서 자체 Gaia 노드를 사용하려면 다음 단계를 따르세요:
옵션 1: 자체 노드 실행
-
Gaia 노드를 설치합니다:
curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash
-
모델로 초기화합니다:
# Llama-3-Groq-8B 모델의 경우(이 프로젝트에 권장)
gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/llama-3-groq-8b-tool/config.json
# 또는 사용 가능한 구성에서 다른 모델을 선택합니다.
# 옵션 찾아보기: https://github.com/GaiaNet-AI/node-configs -
노드를 시작합니다:
가이아넷 시작
-
애플리케이션 업데이트:
- 수정
패키징/사이트/앱/api/chat/route.ts
를 로컬 노드를 가리키도록 설정합니다:
const GAIA_API_ENDPOINT = 'http://gaiaURL/v1';
const GAIA_MODEL = 'Llama-3-Groq-8B-Tool'; - 수정
옵션 2: API 키 가져오기
-
계정을 만듭니다:
- https://gaianet.ai 로 이동하여 앱 실행을 클릭합니다.
- 메타마스크 지갑 연결
-
API 키를 생성합니다:
- 프로필 드롭다운을 클릭하고 설정을 선택합니다.
- Gaia API 키 로 이동하여 API 키 만들기를 클릭합니다.
- 키에 이름을 지정하고 안전하게 저장하기
-
애플리케이션 업데이트:
- 수정
패키징/사이트/앱/api/chat/route.ts
를 클릭하여 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
}); - 수정
-
환경 변수에 추가합니다:
- 생성 또는 업데이트
.env.local
에서패키지/사이트
디렉터리로 이동합니다:
GAIA_API_KEY=your_api_key_here
- 생성 또는 업데이트
시스템 요구 사항
자체 노드를 실행하는 경우 시스템이 이러한 요구 사항을 충족하는지 확인하거나 소규모 LLM 모델부터 시작하세요:
시스템 | 최소 요구 사항 |
---|---|
Apple 실리콘(M1-M4 칩)이 탑재된 OSX | 16GB RAM(32GB 권장) |
우분투 리눅스 20.04와 엔비디아 CUDA 12 SDK | GPU의 8GB VRAM |
Azure/AWS | Nvidia T4 GPU 인스턴스 |
AI 에이전트 명령
이 애플리케이션에는 자연어 명령을 통해 사용자가 투표 시스템과 상호 작용할 수 있도록 도와주는 AI 에이전트가 포함되어 있습니다:
1. 새 투표 만들기
create voting "Your voting description" options: option1, option2, option3 duration: <number>
기간 옵션:
- 1시간 - 1시간
- 2일 - 1일
- 3 - 1주
2. 투표 보기
모든 투표(종료된 투표 포함)를 표시합니다:
모든 투표 보기
모든 투표 보기
투표 목록 보기
활성 투표만 표시합니다:
활성 투표 표시
활성 투표 목록
활성 투표 받기
3. 투표하기
계약 주소] 옵션 [번호]에 투표하세요.
예시:
0x1234...5678 옵션 2에 투표하세요.
4. 추가 명령
도움말
또는명령
- 사용 가능한 모든 명령어 표시투표 상태
- 활성 및 종료된 투표 요약 보기내 투표
- 투표 내역 보기
지식 베이스로 AI 에이전트 강화하기
투표 애플리케이션의 AI 에이전트를 더욱 강력하고 상황 인식적으로 만들려면 Gaia의 지식 기반 시스템을 통합하면 됩니다:
-
투표 관련 지식창고를 만듭니다:
- 일반적인 투표 패턴 및 사용 사례 문서화
- 블록체인 투표 개념에 대한 설명 포함
- 투표 과정에 대한 자주 묻는 질문 추가
- 성공적인 투표 캠페인 사례 포함
-
지식창고를 구성하세요:
- 카테고리별로 정보를 정리합니다(예: '투표 만들기', '투표하기', '결과 보기').
- 타임스탬프 및 태그와 같은 메타데이터를 포함시켜 검색 가능성을 높이세요.
- 마크다운 또는 일반 텍스트 파일을 사용하여 손쉬운 유지 관리
-
가이아로 가져오기:
- Gaia의 도구를 사용하여 지식창고 가져오기
- 시스템은 Qdrant를 사용하여 콘텐츠를 자동으로 임베딩으로 변환합니다.
- 이 지식창고를 참조하도록 AI 상담원을 구성하세요.
-
지식창고 통합의 이점:
- 정확성 향상: 상담원이 보다 정확하고 상황에 맞는 응답을 제공합니다.
- 향상된 사용자 경험: 사용자에게 투표 절차에 대한 보다 유용한 안내가 제공됩니다.
- 확장성: 지식창고가 성장함에 따라 재교육 없이도 상담원의 역량이 확장됩니다.
- 효율성: 상담원은 실시간으로 데이터를 처리하는 대신 미리 정리된 정보에 빠르게 액세스할 수 있습니다.
사전 구성된 기술 자료
웹3.0 투표 디앱을 위해 특별히 사전 구성된 지식 베이스를 만들었습니다. 가이아 노드와 함께 사용할 수 있습니다:
-
지식창고 파일:
-
가이아 노드 구성하기: 다음 명령을 실행하여 투표 지식 베이스로 Gaia 노드를 구성하세요:
가이아넷 구성
--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 "당신은 유용한 웹3 강사입니다, 질문에 답해 주세요"
Gaia의 지식창고에 대한 자세한 내용은 [Gaia 지식창고 문서](https://docs.gaianet.ai/knowledge-bases/intro)를 참조하세요.
## 시작하기
### 전제 조건
- Node.js 설치
- 세폴리아에 테스트용 이더리움이 있는 지갑(원하는 L1/L2 사용 가능)
- 연금술](https://www.alchemy.com/) 또는 Infura API 키
### 설정
1. 리포지토리를 복제합니다:
'''bash
git clone git@github.com:meowyx/gaia-web3-voting-starter.git
cd 가이아-웹3-투표-스타터
- 종속성을 설치합니다:
pnpm 설치
- 환경 변수를 구성합니다:
# 패키지/블록체인에서
cp .env.example .env
# 알케미 API 키와 지갑 개인키를 추가합니다.
- 컨트랙트를 컴파일하고 배포합니다:
CD 패키지/블록체인
npx 하드햇 컴파일
npx 하드햇 점화 점화/모듈/투표팩토리.ts 배포 --네트워크 리네아-테스트넷
- 프런트엔드를 시작합니다:
CD 패키지/사이트
pnpm dev
아키텍처
- 스마트 컨트랙트: 투표 인스턴스 배포를 위한 팩토리 패턴
- 프론트엔드: AI 기반 채팅 인터페이스가 포함된 Next.js
- 블록체인 리네아 세폴리아 테스트넷 배포
- AI 통합: 블록체인 상호작용을 위한 맞춤형 도구