대부분의 LLM (Large Language Model) 데모는 하나의 프롬프트와 하나의 답변으로 이루어집니다.
이 데모는 조금 더 재미있습니다. 바로 텍스트 기반의 '당신의 선택에 따라 진행되는(choose-your-own-adventure)' 게임입니다.
플레이어는 장르를 선택하고, 캐릭터 이름을 정하고, 생성된 장면을 읽은 뒤, 옵션 1, 2 또는 3 중 하나를 선택합니다. Telnyx AI Inference가 다음 장면을 생성하는 동안 앱은 게임 상태를 추적합니다.
코드: https://github.com/team-telnyx/telnyx-code-examples/tree/main/adventure-game-python
앱의 기능
Flask API는 다음을 노출합니다:
POST /game/start
POST /game/<id>/choose
GET /game/<id>
...
각 게임은 다음 항목을 추적합니다:
- 장르 (genre)
- 플레이어 이름 (player name)
- 현재 장면 (current scene)
- 선택 가능한 선택지 (available choices)
- 위치 (location)
- 체력 (health)
- 인벤토리 (inventory)
- 턴 횟수 (turn count)
- 상태 (status)
상태는 다음과 같을 수 있습니다:
ongoing (진행 중)
won (승리)
lost (패배)
...
Telnyx AI Inference 사용 방식
앱은 다음을 호출합니다:
POST /v2/ai/chat/completions
기본 모델:
AI_MODEL=moonshotai/Kimi-K2.6
시스템 프롬프트는 모델에게 게임 마스터 (game master) 역할을 수행하고 JSON만 반환하도록 요청합니다:
{
"scene": "장면 설명",
"choices": ["선택지 1", "선택지 2", "선택지 3"],
...
이러한 구조가 이 예제를 유용하게 만듭니다. 모델이 장면을 작성하지만, 앱은 여전히 결과를 파싱하고, 상태를 저장하며, 선택지를 검증하고, 게임을 계속할지 여부를 결정할 수 있습니다.
실행 방법
저장소를 클론(Clone)하세요:
git clone https://github.com/team-telnyx/telnyx-code-examples.git
cd telnyx-code-examples/adventure-game-python
.env 파일을 생성하세요:
Telnyx API 키를 추가하세요:
TELNYX_API_KEY=your_telnyx_api_key
AI_MODEL=moonshotai/Kimi-K2.6
HOST=127.0.0.1
...
설치 및 시작:
pip install -r requirements.txt
python app.py
상태 확인 (Health check):
curl http://localhost:5000/health
판타지 어드벤처 시작:
curl -X POST http://localhost:5000/game/start \
-H "Content-Type: application/json" \
-d '{
...
다음 행동을 선택하세요:
curl -X POST http://localhost:5000/game/game-<id>/choose \
-H "Content-Type: application/json" \
-d '{"choice":1}' | python3 -m json.tool
다른 장르 시도하기:
curl -X POST http://localhost:5000/game/start \
-H "Content-Type: application/json" \
-d '{"genre":"cyberpunk","player_name":"Void"}'
사용 가능한 장르:
fantasy (판타지)
sci-fi (공상과학)
mystery (미스터리)
horror (공포)
cyberpunk (사이버펑크)
post-apocalyptic (포스트 아포칼립스)
이 패턴이 유용한 이유
이 게임은 유희적이지만, 애플리케이션 패턴은 실용적입니다.
이 패턴은 다음과 같은 방법을 보여줍니다:
- 백엔드 (backend)에서 상태 (state) 유지하기
- 최근 이력 (history)을 모델 (model)로 다시 전달하기
- 구조화된 JSON 요청하기
- 사용자 선택 검증하기
- 모델 출력에 따라 세션 (session)을 계속하거나 종료하기
동일한 패턴을 훈련 시뮬레이션, 지원 흐름 (support flows), 온보딩 튜토리얼 (onboarding tutorials), 가이드형 문제 해결 (guided troubleshooting) 또는 대화형 학습 도구에 적용할 수 있습니다.
모델은 창의적인 생성 (generation)을 담당합니다. 여러분의 애플리케이션은 규칙을 소유합니다.
리소스
코드: https://github.com/team-telnyx/telnyx-code-examples/tree/main/adventure-game-python
Telnyx AI 기술 및 툴킷 (toolkits): https://github.com/team-telnyx/ai
Telnyx AI 추론 (Inference) 문서: https://developers.telnyx.com/docs/inference
Chat Completions API: https://developers.telnyx.com/api/inference/chat-completions
Telnyx 포털 (Portal): https://portal.telnyx.com/