웹과 LLM을 결합한 축구 베팅 계약 개발을 위한 실전 템플릿
경기 결과를 웹에서 가져와 인공지능으로 점수를 추출하는 축구 베팅 게임을 예제로 삼아, 계약 작성부터 배포까지의 흐름을 보여줍니다. 이 저장소는 GenLayer 플랫폼 위에서 지능형 계약을 만들 때 필요한 코드 구조와 테스트 방법을 한데 모은 시작점입니다. 복잡한 설정 없이 바로 실행해 보며 플랫폼의 작동 방식을 체득할 수 있습니다.
웹과 LLM을 결합한 계약 구조
사용자가 경기 날짜와 팀, 승자를 입력해 베팅을 생성하는 로직이 핵심입니다. 경기가 끝나면 계약이 BBC Sport에서 결과를 가져오고, LLM을 이용해 점수를 추출한 뒤 동등성 원칙으로 검증합니다. 예측이 맞으면 포인트가 적립되며, 개인 점수나 리더보드를 조회할 수 있습니다. 이 예제는 웹 접근과 LLM 통합이 필요한 실제 사용 사례를 단순화해 보여줍니다.
속도 있는 피드백을 위한 테스트 전략
개발 단계에서 빠른 피드백을 받기 위해 두 가지 테스트 방식을 제공합니다. Direct mode 테스트는 GenLayer Studio 없이 메모리 내에서 계약을 실행하며, 웹 요청과 LLM 호출을 모킹해 테스트당 약 몇 밀리초 만에 결과를 확인합니다. Integration 테스트는 실제 GenLayer Studio에 계약을 배포해 컨센서스 동작을 검증하는 끝에서 끝까지의 테스트입니다. 이 두 방식은 개발 속도와 배포 안정성 사이의 균형을 잡도록 설계되었습니다.
배포 전 문제를 잡아내는 정적 분석
GenVM linter는 배포 전에 계약의 일반적인 문제를 잡아줍니다. 금지된 import나 비결정적 호출, 잘못된 저장소 타입, 누락된 데코레이터와 반환 타입 주석 등을 검사합니다. 동등성 원칙 블록 밖에서의 비결정적 연산도 포착하며, 20개 이상의 규칙을 적용합니다. 이 과정을 거치면 배포 단계에서 발생할 수 있는 오류를 사전에 줄일 수 있습니다.
실행 환경과 시작 방법
Python 3.12 이상과 GenLayer CLI가 필요합니다. npm install -g genlayer 명령으로 CLI를 전역 설치하고, Python 가상 환경을 설정한 뒤 pip install -r requirements.txt로 의존성을 설치합니다. 통합 테스트와 배포를 위해서는 GenLayer Studio가 필요하며, 로컬 설치 또는 호스팅된 Studio를 사용할 수 있습니다.
이 템플릿을 선택해야 하는 경우
GenLayer 플랫폼에서 지능형 계약을 처음 개발하거나, LLM과 웹 데이터를 결합하는 계약을 만들려는 개발자에게 적합합니다. AI 코딩 에이전트를 사용한다면, linter와 direct mode 테스트가 제공하는 빠른 피드백 루프가 반복 개발에 유리합니다. MIT 라이선스로 제공되며, GenLayer Studio가 없는 환경에서는 direct mode 테스트와 linter만으로도 상당 부분의 개발을 진행할 수 있습니다.