주요 콘텐츠로 건너뛰기
버전: 2.0.0

가이아 웹3 투표 스타터

가이아 AI 투표

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: 자체 노드 실행

  1. Gaia 노드를 설치합니다:

    curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash
  2. 모델로 초기화합니다:

    # 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
  3. 노드를 시작합니다:

    가이아넷 시작
  4. 애플리케이션 업데이트:

    • 수정 패키징/사이트/앱/api/chat/route.ts 를 로컬 노드를 가리키도록 설정합니다:
    const GAIA_API_ENDPOINT = 'http://gaiaURL/v1';
    const GAIA_MODEL = 'Llama-3-Groq-8B-Tool';

옵션 2: API 키 가져오기

  1. 계정을 만듭니다:

    • https://gaianet.ai 로 이동하여 앱 실행을 클릭합니다.
    • 메타마스크 지갑 연결
  2. API 키를 생성합니다:

    • 프로필 드롭다운을 클릭하고 설정을 선택합니다.
    • Gaia API 키 로 이동하여 API 키 만들기를 클릭합니다.
    • 키에 이름을 지정하고 안전하게 저장하기
  3. 애플리케이션 업데이트:

    • 수정 패키징/사이트/앱/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
    });

  4. 환경 변수에 추가합니다:

    • 생성 또는 업데이트 .env.local 에서 패키지/사이트 디렉터리로 이동합니다:
    GAIA_API_KEY=your_api_key_here

시스템 요구 사항

자체 노드를 실행하는 경우 시스템이 이러한 요구 사항을 충족하는지 확인하거나 소규모 LLM 모델부터 시작하세요:

시스템최소 요구 사항
Apple 실리콘(M1-M4 칩)이 탑재된 OSX16GB RAM(32GB 권장)
우분투 리눅스 20.04와 엔비디아 CUDA 12 SDKGPU의 8GB VRAM
Azure/AWSNvidia 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의 지식 기반 시스템을 통합하면 됩니다:

  1. 투표 관련 지식창고를 만듭니다:

    • 일반적인 투표 패턴 및 사용 사례 문서화
    • 블록체인 투표 개념에 대한 설명 포함
    • 투표 과정에 대한 자주 묻는 질문 추가
    • 성공적인 투표 캠페인 사례 포함
  2. 지식창고를 구성하세요:

    • 카테고리별로 정보를 정리합니다(예: '투표 만들기', '투표하기', '결과 보기').
    • 타임스탬프 및 태그와 같은 메타데이터를 포함시켜 검색 가능성을 높이세요.
    • 마크다운 또는 일반 텍스트 파일을 사용하여 손쉬운 유지 관리
  3. 가이아로 가져오기:

    • Gaia의 도구를 사용하여 지식창고 가져오기
    • 시스템은 Qdrant를 사용하여 콘텐츠를 자동으로 임베딩으로 변환합니다.
    • 이 지식창고를 참조하도록 AI 상담원을 구성하세요.
  4. 지식창고 통합의 이점:

    • 정확성 향상: 상담원이 보다 정확하고 상황에 맞는 응답을 제공합니다.
    • 향상된 사용자 경험: 사용자에게 투표 절차에 대한 보다 유용한 안내가 제공됩니다.
    • 확장성: 지식창고가 성장함에 따라 재교육 없이도 상담원의 역량이 확장됩니다.
    • 효율성: 상담원은 실시간으로 데이터를 처리하는 대신 미리 정리된 정보에 빠르게 액세스할 수 있습니다.

사전 구성된 기술 자료

웹3.0 투표 디앱을 위해 특별히 사전 구성된 지식 베이스를 만들었습니다. 가이아 노드와 함께 사용할 수 있습니다:

  1. 지식창고 파일:

  2. 가이아 노드 구성하기: 다음 명령을 실행하여 투표 지식 베이스로 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-투표-스타터
  1. 종속성을 설치합니다:
pnpm 설치
  1. 환경 변수를 구성합니다:
# 패키지/블록체인에서
cp .env.example .env
# 알케미 API 키와 지갑 개인키를 추가합니다.
  1. 컨트랙트를 컴파일하고 배포합니다:
CD 패키지/블록체인
npx 하드햇 컴파일
npx 하드햇 점화 점화/모듈/투표팩토리.ts 배포 --네트워크 리네아-테스트넷
  1. 프런트엔드를 시작합니다:
CD 패키지/사이트
pnpm dev

아키텍처

  • 스마트 컨트랙트: 투표 인스턴스 배포를 위한 팩토리 패턴
  • 프론트엔드: AI 기반 채팅 인터페이스가 포함된 Next.js
  • 블록체인 리네아 세폴리아 테스트넷 배포
  • AI 통합: 블록체인 상호작용을 위한 맞춤형 도구