ํ์ฑ๋ํ๊ต ํด๋ผ์ฐ๋ ์ปดํจํ ์ฐํํ๋ ฅ ํ๋ก์ ํธ
Team ํ ๊นฝ์คํฐ | ๊นํ์ง, ์ํ์ , ๊น์ํฌ
Steam์ ์ฝ 70,000๊ฐ์ ๋ฌํ๋ ๋ฐฉ๋ํ ๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฌ์ฉ์์๊ฒ ์ต์ ํ๋ ๊ฒ์์ ์ถ์ฒํ๋ AI Agent ๊ธฐ๋ฐ ์์คํ ์ ๋๋ค. ์์ฐ์ด ์ง์๋ฅผ ํตํด ์ฌ์ฉ์์ ์ทจํฅ, ์์ฐ, ์ํฉ์ ์ข ํฉ์ ์ผ๋ก ๋ถ์ํ์ฌ ์ ํ๋ ๋์ ๊ฒ์ ์ถ์ฒ์ ์ ๊ณตํฉ๋๋ค.
๋ฐฐํฌ URL: https://game-picker.netlify.app
GitHub Repository: https://github.com/AI-GAME-AGENT
-
๊ฒ์ ์ ํ์ ์ด๋ ค์
- Steam์ ์ฝ 70,000๊ฐ ๋ฐฉ๋ํ ๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋๋ฌด ๋ง์ ์ ํ์ง๋ก ์ธํ ์์ฌ๊ฒฐ์ ํผ๋ก
- ๋ ๋น์ทํ ์ธ๊ธฐ ๊ฒ์๋ง ์ถ์ฒ๋๋ ๋ฌธ์
-
์ปค๋ฎค๋ํฐ ํ๊ธฐ์ ํ๊ณ
- ๊ฐ์ธํ๋ ์ถ์ฒ ๋ถ๊ฐ๋ฅ
- ์ผ๋ฐ์ ์ธ ๋ฆฌ๋ทฐ๋ง ์ ๊ณต
-
์ ๋ณด ์ ๋ขฐ์ฑ ๋ฌธ์
- ๊ด๊ณ ์ฑ ๋ฆฌ๋ทฐ ๊ตฌ๋ถ์ ์ด๋ ค์
- ์ค๋๋ ์ ๋ณด ํผ์ฌ
์์ฐ์ด๋ก ์ง๋ฌธํ๋ฉด AI Agent๊ฐ ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ์กฐํฉํด ๊ฐ์ฅ ์ ์ ํ ๊ฒ์์ ์ถ์ฒํ๋ ์์คํ ์ ๊ฐ๋ฐํ์ต๋๋ค. ์ง๊ด์ ์ธ ์ธํฐํ์ด์ค์ ๋ค์ค Agent ํ์ ์ ํตํด ์ฌ์ฉ์์๊ฒ ์ ํ๋ ๋์ ๋ง์ถค ๊ฒ์์ ์ ๊ณตํฉ๋๋ค.
AI Agent์ ์ ์: ์ฌ์ฉ์์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ์์จ์ ์ผ๋ก ์ถ๋ก ํ๊ณ , ๊ณํํ๋ฉฐ, ํ๋ํ๋ ์ง๋ฅํ ์ํํธ์จ์ด ์์คํ
-
LLM
- AWS Bedrock์ Claude 3 Haiku
- Strands Agent SDK ํ์ฉ
-
Retrieval
- Bedrock Knowledge Base
- ๋ฒกํฐ ๊ธฐ๋ฐ ์๋ฏธ ๊ฒ์ ๊ตฌ์ถ
-
Tools
- DynamoDB ์กฐ๊ฑด ํํฐ
- ์์ธ ๊ฒ์ ์ ๋ณด ์กฐํ
- ์น ๊ฒ์ (์ต์ ๋ฆฌ๋ทฐ ๋ฐ ์ ๋ฐ์ดํธ ์ ๋ณด)
-
Memory
- DynamoDB ๊ธฐ๋ฐ
- ์ธ์ ๋ณ ๋ํ ํ์คํ ๋ฆฌ ์ ์ง
๋จ์ํ ์ฑ๋ด์ด ์๋ ๋ณต์์ ๋๊ตฌ๋ฅผ ํ์ฉํด ์ค์ค๋ก ๊ณํํ๊ณ ํ๋ํ๋๋ก ์ค๊ณํ์ต๋๋ค.
- Thought (์ฌ๊ณ ): ๋ชจ๋ธ์ด ํ์ฌ ์ํฉ์ ๋ถ์ํ๊ณ ๋ค์ ๋จ๊ณ๋ฅผ ๊ณํ
- Action (ํ๋): ๊ณํ์ ๋ฐ๋ผ ๊ตฌ์ฒด์ ์ธ ํ๋ ์ํ (์ ๋ณด ๊ฒ์, ๊ณ์ฐ, ๋๊ตฌ ์ฌ์ฉ ๋ฑ)
- Observation (๊ด์ฐฐ): ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ด์ฐฐํ๊ณ ํ๊ฐํ์ฌ ๊ฒฐ๋ก ๋๋ฌ
์ถ์ฒ: Yao et al., 2023 - ReAct: Synergizing Reasoning and Acting in Language Models
์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์๊ณผ ์กฐ๊ฑด ๊ธฐ๋ฐ ๊ฒ์์ ๊ฒฐํฉํ์ฌ ๊ฒ์ ์ ํ๋๋ฅผ ๊ทน๋ํํ์ต๋๋ค.
Vector Only vs Filter Only
| Vector Only | Filter Only | Hybrid (๋ณธ ์์คํ ) |
|---|---|---|
| ์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์๋ง ์ฌ์ฉ | ์กฐ๊ฑด ํํฐ๋ง ์ฌ์ฉ | ๋ ๋ฐฉ์ ๊ฒฐํฉ |
| ์์ฐ์ด ์ดํด ์ฐ์, ์ทจํฅ/๋ถ์๊ธฐ ๋ฐ์ | ์ ํํ ์กฐ๊ฑด ํํฐ, ๊ฐ๊ฒฉ/์ฅ๋ฅด ๋ฐ์ | ์๋ฏธ ์ดํด + ์ ํํ ์กฐ๊ฑด ๋ฐ์ |
| ์ ํํ ์กฐ๊ฑด ๋ฐ์ ์คํจ | ์๋ฏธ ์ดํด ๋ถ๊ฐ, ์ทจํฅ/์ํฉ ๋ฐ์ ์คํจ | ์์ชฝ ์ฅ์ ํ์ฉ |
- Bedrock Knowledge Base: ๋ฒกํฐ ๊ฒ์์ฉ
- DynamoDB: ๋ฉํ๋ฐ์ดํฐ ํํฐ๋ง์ฉ
์ถ์ฒ: AWS - Hybrid search with Amazon OpenSearch
Steam API๋ฅผ ํตํด 110,000๊ฐ์ ๊ฒ์ ๋ฐ์ดํฐ ์์ง
๋ชฉ์ : Semantic Search (์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์)์ฉ ๊ฒ์ ๋ฌธ์ ๋ฒกํฐ ์ ์ฅ์
์ ์ฅ ๋ฐ์ดํฐ:
- ๊ฒ์๋ช (name)
- ๊ฒ์ ์ค๋ช ์์ฝ ํ ์คํธ (short_description)
- ๊ฒ์ ์นดํ ๊ณ ๋ฆฌ (categories)
- ๊ฒ์ ์ฅ๋ฅด (genres)
์ ์ ์ด์ : ์์ฐ์ด ์ง์์ ๋ํ ์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์์ผ๋ก ์ทจํฅ ๋ฐ ์ํฉ ๊ธฐ๋ฐ ์ ์ฌ ๊ฒ์์ ๊ณ ์ ํ๋๋ก ์ฐพ์ ์ ์์
์ ์ฅ ๋ฐ์ดํฐ:
- app_id (Primary Key)
- name
- genres
- price (USD)
- is_multiplayer
- positive/negative_review
- tags
- description
- ์ธ Kaggle Steam ๋ฐ์ดํฐ ์ ์ฒด ํ๋
์ ์ ์ด์ : ๋์ฉ๋ JSON์ ์คํค๋ง ์์ด ๋น ๋ฅด๊ฒ ์กฐํ ๋ฐ ํ์ฅ ๊ฐ๋ฅ
Steam ์๋ณธ ๋ฐ์ดํฐ๋ ์์ญ ๊ฐ์ ํ๋์ ๊ธด ํ ์คํธ๋ก ๊ตฌ์ฑ๋์ด Bedrock Knowledge Base ์ ๋ก๋ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
์ ์ฒ๋ฆฌ ์์ :
- ํต์ฌ ์ ๋ณด(๊ฒ์๋ช , ์์ฝ ์ค๋ช , ์ฅ๋ฅด, ์นดํ ๊ณ ๋ฆฌ, ํ๊ทธ)๋ฅผ ์ ๋ณํ์ฌ ๋จ์ผ ๋ฌธ์ ํํ๋ก ์ฌ๊ตฌ์ฑ
- ๊ณผ๋ํ๊ฒ ๊ธด ํ๋(detailed_description, screenshots ๋ฑ) ์ ๊ฑฐ๋ก ๋ฌธ์ ํฌ๊ธฐ ์ต์ ํ
- ์นดํ ๊ณ ๋ฆฌ ์ ๋ณด ๊ธฐ๋ฐ ๋ฉํฐํ๋ ์ด ์ฌ๋ถ ์ถ๊ฐ ์์ฑ์ผ๋ก ๊ฒ์ยท์ถ์ฒ ํ์ง ํฅ์
- ๋ชจ๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฐ์ด ๊ธฐ๋ฐ JSONL ๋ฌธ์๋ก ๋ณํํ์ฌ Bedrock์ด ์์ ์ ์ผ๋ก ์๋ฒ ๋ฉํ ์ ์๋๋ก ์ ์
์ฌ์ฉ์๊ฐ ์์ฐ์ด๋ก ๊ฒ์ ์ถ์ฒ ์์ฒญ
- ์์: "2๋ง์ ์ดํ ์ปคํ ํผ์ฆ ๊ฒ์ ์ถ์ฒํด์ค"
- ํค์๋, ์กฐ๊ฑด, ์ํฉ ์์ ์ถ์ถ
- ์ฅ๋ฅด (Puzzle)
- ๊ฐ๊ฒฉ (โค2๋ง์)
- ์ํฉ (์ปคํ)
- ๋ชจ๋ (ํ๋)
- ์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ง "๊ณํ(Plan)" ์๋ฆฝ
- ์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์ + ์กฐ๊ฑด ๊ธฐ๋ฐ ํํฐ๋ง ํ์ ์ฌ๋ถ ํ๋จ
- AWS Bedrock Knowledge Base (Vector DB)์ ์ฟผ๋ฆฌ ์ ๋ฌ
- ์์ฐ์ด ์๋ฏธ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฌ ๊ฒ์ ํ๋ณด๊ตฐ ๊ฒ์
- Top-N ํ๋ณด ๊ฒฐ๊ณผ๋ฅผ Agent๋ก ๋ฐํ
- DynamoDB ๋ฉํ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ ๋ฐ ์กฐ๊ฑด ํํฐ๋ง
- max_price, genres, ๋ฉํฐํ๋ ์ด ์ฌ๋ถ ๋ฑ
- ์ต์ ๋ฆฌ๋ทฐ, ํจ์น, ์ ๋ฐ์ดํธ ์ ๋ณด๊ฐ ํ์ํ ๊ฒฝ์ฐ
- Strands์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์น ๊ฒ์ ํด ์ฌ์ฉํ์ฌ ์ต์ ๋ฐ์ดํฐ ๋ณด๊ฐ
- ํน์ ํ๋ณด์ ์์ธ ์ ๋ณด๊ฐ ํ์ํ ๋ ID ๊ธฐ๋ฐ ์กฐํ
- Steam ๋ฆฌ๋ทฐ ์, ํ์ ๋ฑ ๋ฐ์ดํฐ ํ๋ณด
- Tools๋ฅผ ์ฌ์ฉํ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉ ํ๊ฐ ๋ฐ ์ ๋ ฌ
- 3~5๊ฐ์ Top ์ถ์ฒ ๊ฒ์ ์ ์
- ๊ฐ ์ถ์ฒ์ ์ค๋ช (reasoning) ์์ฑ
- ์ถ์ฒ ๊ฒ์ ๋ชฉ๋ก
- ๊ฐ๊ฒฉ, ์ฅ๋ฅด, ํ๋ ์ด ๋ฐฉ์ ๋ฑ ํต์ฌ ์ ๋ณด
- ์ฌ์ฉ์์ ์๊ตฌ์ ์ด๋ป๊ฒ ๋ง๋์ง ์ด์ ์ค๋ช ๋ฐ ๋ถ์
- ํ์์ ์ถ๊ฐ ์ ๋ณด ์์ฒญ (์์ฐ, ๋ถ์๊ธฐ, ๋์ด๋ ๋ฑ)
๋ก์ปฌ Python ์คํ ํ๊ฒฝ
- Agent Framework: Strands Agent SDK
- LLM: AWS Bedrock Claude 3 Haiku
- Vector DB: Bedrock Knowledge Base
- Metadata DB: AWS DynamoDB
- Web Search: Strands ์ ๊ณต ์น ๊ฒ์ ํด
๊ฐ๋ฐ
- Server: FastAPI
๋ฐฐํฌ
- Render ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ์ฌ REST API ํํ๋ก ์ ๊ณต
๊ฐ๋ฐ
- Main Library: React, react-router-dom
- Styling: SCSS, Keyframe
- Data Fetching: Axios
- Build/Bundler: Vite
๋ฐฐํฌ
- API ์ฐ๋ ํ Netlify์ ๋ฐฐํฌ
๋ก์ปฌ Python ๊ธฐ๋ฐ Agent๋ฅผ ์น์์ ํธ์ถ ๊ฐ๋ฅํ ์๋น์ค ๊ตฌ์กฐ (API + Web UI)๋ก ํ์ฅ
๋ก์ปฌ CLI ๊ธฐ๋ฐ ์คํ์ผ๋ก ์์ฐ์ด ์ง์์ ๋ํ ์ ํํ ๊ฒ์ ์ถ์ฒ ์ ๊ณต
์ฌ์ฉ์์ ๊ฐ์ฑ์ ์๊ตฌ์ฌํญ์ ๋ถ์ํ์ฌ ์ ํฉํ ๊ฒ์ ์ถ์ฒ
์ง๊ด์ ์ธ ์น ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋๊ตฌ๋ ์ฝ๊ฒ ์ ๊ทผ ๊ฐ๋ฅ
๊นํ์ง (2271340) - ๋ชจ๋ฐ์ผ์ํํธ์จ์ดํธ๋/์น๊ณตํํธ๋
- AI Agent ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
- ๋ฉํ๋ฐ์ดํฐ DB (DynamoDB) ๊ตฌ์ถ
- ๋ฐฑ์๋ API ๊ฐ๋ฐ
๊น์ํฌ (2171186) - ์น๊ณตํํธ๋/๋ชจ๋ฐ์ผ์ํํธ์จ์ดํธ๋
- ๋ฐ์ดํฐ ์์ง ๋ฐ ์ ์ฒ๋ฆฌ
- Vector DB (Bedrock Knowledge Base) ๊ตฌ์ถ
- AWS ํ๊ฒฝ ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌ
์ํ์ (2191233) - ์น๊ณตํํธ๋/๋ชจ๋ฐ์ผ์ํํธ์จ์ดํธ๋
- UI ๋์์ธ ๋ฐ ํ๋ก ํธ์๋ ๊ฐ๋ฐ
- API ์ฐ๋ ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ํ๋ก ํธ ์๋ฒ ๋ฐฐํฌ
- ๊น์ํฌ: 2171186@hansung.ac.kr
- ๊นํ์ง: hjnee222@gmail.com
- ์ํ์ : 2191233@hansung.ac.kr
- AWS - What is AI Agents
- Yao et al., 2023 - ReAct: Synergizing Reasoning and Acting in Language Models
- AWS - Hybrid search with Amazon OpenSearch
ํ์ฑ๋ํ๊ต ํด๋ผ์ฐ๋ ์ปดํจํ
์์
| 7๋ฐ
์ง๋๊ต์: ๊น์ฑ๋ ๊ต์๋ | ๋ฉํ : ์์งํ ๋ฉํ ๋