๐ค 53. HF Agents Course ๋ณธํธ 1 - Unit 1 ํต์ฌ ๊ฐ๋ ๊ณผ ์ฒซ ๋๊ตฌํ ์์ด์ ํธ ์ฌํํ๊ธฐ
๋ชฉํ: HF Agents Course์ ์ถ๋ฐ์ ์ ์ง๊ณ ,
smolagents๋ก ๋๊ตฌ 1๊ฐ๊ฐ ๋ถ์ ์ฒซ ์์ด์ ํธ๋ฅผ ์ง์ ์คํํด ๋ณธ๋ค.
Hugging Face Agents Course ๊ณต์ ์๊ฐ๋ ํ์ต ํ๋ฆ์ ๊ธฐ์ด ๊ฐ๋ โ ํ๋ ์์ํฌ โ ์ ์ค์ผ์ด์ค โ ์ต์ข ๊ณผ์ ๋ก ์ก๊ณ ์๋ค. ๊ทธ๋์ ๋ณธํธ 1์์ ๊ฐ์ฅ ์ค์ํ ์ผ์ ๋ณต์กํ ๋ฉํฐ์์ด์ ํธ๋ฅผ ์์ฌ๋ด๋ ๊ฒ์ด ์๋๋ผ, ์์ด์ ํธ๊ฐ ๋ชฉํ๋ฅผ ๋ฐ๊ณ ์๊ฐํ๊ณ ๋๊ตฌ๋ฅผ ์ฐ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๊ธฐ๋ณธ ๋ฃจํ๋ฅผ ๋ชธ์ผ๋ก ์ตํ๋ ๊ฒ์ด๋ค.
ํนํ ๊ณต์ ์ฝ์ค์ smolagents ๋ฌธ์๋ฅผ ํจ๊ป ๋ณด๋ฉด ์ด๋ณด์๊ฐ ์ฒ์ ์ดํดํด์ผ ํ ํฌ์ธํธ๋ ๋ช
ํํ๋ค.
- ์์ด์ ํธ๋ ๋จ์ ์ฑํ ์ด ์๋๋ผ ๋ชฉํ ํด๊ฒฐ ํ๋ฆ์ด๋ค.
- ๋๊ตฌ๋ ๊ณ์ฐยท์กฐํยท๊ฒ์ ๊ฐ์ ๊ฒ์ฆ ๊ฐ๋ฅํ ํ๋์ ๋งก๋๋ค.
- ํต์ฌ ๋ฃจํ๋ Think โ Act โ Observe๋ก ์ดํดํ๋ฉด ๋๋ค.
- ์ฒซ ์ค์ต์ ์๊ณ ์ฌํ ๊ฐ๋ฅํด์ผ ํ๋ค.
์ฝ์ค ์ ์ฒด์์ Unit 1์ด ๋งก๋ ์ญํ
flowchart TD A[HF Agents Course ์์] --> B[Unit 0 ์จ๋ณด๋ฉ] B --> C[Unit 1 ์์ด์ ํธ ๊ธฐ์ด] C --> D[์๊ฐ Thought] C --> E[ํ๋ Action] C --> F[๊ด์ฐฐ Observation] C --> G[๋๊ตฌ Tool] C --> H[smolagents ์ฒซ ์คํ] H --> I[Unit 2 ํ๋ ์์ํฌ ํ์ต] I --> J[Unit 3 ์ ์ค์ผ์ด์ค] J --> K[Unit 4 ๊ณผ์ ยทํ๊ฐ]
์ด ๊ทธ๋ฆผ์์ ํต์ฌ์ ๊ฐ๋จํ๋ค. Unit 1์ ์ ๋๋ก ์ดํดํด์ผ ์ดํ ํ๋ ์์ํฌ ๋ฌธ๋ฒ์ด ์ ๊ทธ๋ฐ์ง ๋ณด์ธ๋ค.
๊ณต์ ์๋ฃ ๊ธฐ์ค ํต์ฌ ์์ฝ
1) HF Agents Course๋ ๋จ๊ณํ ํ์ต ๊ตฌ์กฐ๋ค
๊ณต์ GitHub ์ ์ฅ์์ ์ฝ์ค ํ์ด์ง ๊ธฐ์ค ์ฃผ์ ๊ตฌ์ฑ์ ์๋์ ๊ฐ๋ค.
- Unit 0: ์จ๋ณด๋ฉ
- Unit 1: Agent Fundamentals
- Unit 2: Frameworks (
smolagents, LlamaIndex, LangGraph) - Unit 3: Use Cases
- Unit 4: Final Assignment
- Bonus Units: ํจ์ํธ์ถ ํ์ธํ๋, ๊ด์ธก์ฑ/ํ๊ฐ, ๊ฒ์ ์์ด์ ํธ ๋ฑ
์ฆ ์ง๊ธ ๋จ๊ณ์์๋ โ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ต๊ณ ์ธ๊ฐ?โ๋ณด๋ค ์์ด์ ํธ์ ๊ณตํต ์๋ฆฌ๋ฅผ ๋จผ์ ์ก๋ ํธ์ด ๋ง๋ค.
2) ์์ด์ ํธ๋ ๋ต๋ณ๊ธฐ๊ฐ ์๋๋ผ ์์ ํ๋ฆ์ด๋ค
Unit 1 ์ค๋ช ์ ํต์ฌ ํค์๋๋ Tools, Thoughts, Actions, Observations๋ค. ์ด ๋ง์ ๊ณง ์๋ ์์๋ฅผ ๋ปํ๋ค.
- ๋ชฉํ๋ฅผ ์ดํดํ๋ค.
- ๋ฐ๋ก ๋ตํ ์ง, ๋๊ตฌ๊ฐ ํ์ํ์ง ํ๋จํ๋ค.
- ๋๊ตฌ๋ฅผ ์คํํ๋ค.
- ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ๋ถ์กฑํ๋ฉด ๋ค์ ์๋ํ๋ค.
- ์ต์ข ๋ต๋ณ์ ๋ง๋ ๋ค.
3) smolagents๋ ์ฒซ ์ค์ต์ฉ์ผ๋ก ๋งค์ฐ ๊ฐ๋ณ๋ค
๊ณต์ smolagents ๋ฌธ์๋ ๋ช ์ค ์ฝ๋๋ก CodeAgent๋ฅผ ์คํํ๋ Quickstart๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ณด์์๊ฒ๋ ์ด ๊ฐ๋ฒผ์์ด ์ค์ํ๋ค. ๋ณต์กํ ์ค์ ๋ณด๋ค ์ฒซ ์ฑ๊ณต ๊ฒฝํ์ด ๋จผ์ ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฒ ๊ธ์์ ์ฌํํ ๊ฒ
์ด๋ฒ ๊ธ์ ์ค์ต ๋ชฉํ๋ ๋ฑ 3๊ฐ์ง๋ค.
- Python ๊ฐ์ํ๊ฒฝ๊ณผ
smolagents๋ฅผ ์ค์นํ๋ค. - ๊ณ์ฐ ๋๊ตฌ 1๊ฐ๋ฅผ ๋ถ์ธ ์ฒซ ์์ด์ ํธ๋ฅผ ๋ง๋ ๋ค.
- ์คํ ๊ฒฐ๊ณผ๋ก ๋๊ตฌ ๊ธฐ๋ฐ ์๋ต์ด ์ ์์ ์ ์ธ์ง ํ์ธํ๋ค.
์ค๋น๋ฌผ
- Python 3.10 ์ด์
- ํฐ๋ฏธ๋
- ์ธํฐ๋ท ์ฐ๊ฒฐ
- ํ์ ์ Hugging Face ํ ํฐ (
HF_TOKEN)
์ค์ต 1) ์์ ํด๋ ๋ง๋ค๊ธฐ
๋๊ตฌ
- ํฐ๋ฏธ๋
์ ๋ ฅ
mkdir -p ~/hf-agents-course-unit1-first-agent
cd ~/hf-agents-course-unit1-first-agent์คํ ๋ช ๋ น
pwd์ฑ๊ณต ํ์
- ์ถ๋ ฅ ๊ฒฝ๋ก ๋์ด
hf-agents-course-unit1-first-agent์ด๋ฉด ์ฑ๊ณต.
์ค์ต 2) ๊ฐ์ํ๊ฒฝ๊ณผ ํจํค์ง ์ค์น
๋๊ตฌ
- ํฐ๋ฏธ๋
์ ๋ ฅ
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
pip install "smolagents[toolkit]"์คํ ๋ช ๋ น
python -c "import smolagents; print(smolagents.__version__)"์ฑ๊ณต ํ์
smolagents๋ฒ์ ๋ฌธ์์ด์ด ์ถ๋ ฅ๋๋ฉด ์ฑ๊ณต.
์ค์ต 3) ์ฒซ ๋๊ตฌํ ์์ด์ ํธ ํ์ผ ์์ฑ
์ด๋ฒ ์์ ๋ โ๊ฐ๋จํ ๋งค์ถ ๊ณ์ฐ์ ์ ํํ ์ฒ๋ฆฌํ๊ณ ํ ์ค ์ค๋ช ๊น์ง ๋ถ์ด๋ ์์ด์ ํธโ๋ค. ๊ณ์ฐ๊ธฐ์ฒ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ถ๋ช ํ ๋ฌธ์ ๋ถํฐ ์์ํด์ผ ์ด๋ณด์๋ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ์ฝ๊ฒ ํ๋จํ ์ ์๋ค.
ํ์ผ๋ช
first_tool_agent.py
์ ๋ ฅ
from smolagents import CodeAgent, InferenceClientModel, tool
@tool
def calculator(expression: str) -> str:
"""Evaluate a simple arithmetic expression.
Args:
expression: A math expression using numbers and + - * / ( )
"""
allowed = set("0123456789+-*/(). ")
if any(ch not in allowed for ch in expression):
return "Only simple arithmetic is allowed."
try:
result = eval(expression, {"__builtins__": {}}, {})
return str(result)
except Exception as e:
return f"calculation-error: {e}"
model = InferenceClientModel()
agent = CodeAgent(
tools=[calculator],
model=model,
max_steps=5,
)
question = "์ 39๋ฌ๋ฌ ์ํ์ 24๋ช
์ด ๊ตฌ๋
ํ๋ฉด ์ ๋งค์ถ์ด ์ผ๋ง์ธ์ง ๊ณ์ฐํ๊ณ ์งง๊ฒ ์ค๋ช
ํด์ค."
result = agent.run(question)
print(result)์ฝ๋ ์ดํด ํฌ์ธํธ
@tool์ ์ผ๋ฐ ํ์ด์ฌ ํจ์๋ฅผ ์์ด์ ํธ ๋๊ตฌ๋ก ๋ฑ๋กํ๋ค.InferenceClientModel()์ Hugging Face ์ถ๋ก ๋ชจ๋ธ์ ๊ฐ๋จํ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ณธ ์ง์ ์ ์ด๋ค.CodeAgent๋ ํ์ํ ๋ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋จ๊ณ๋ฅผ ๊ตฌ์ฑํ๋ค.max_steps=5๋ ์ด๋ณด์ ์ค์ต์์ ๊ณผ๋ํ ๋ฐ๋ณต์ ์ค์ด๋ ์์ ์ฅ์น๋ค.
์ค์ต 4) ์์ด์ ํธ ์คํ
๋๊ตฌ
- ํฐ๋ฏธ๋
์คํ ๋ช ๋ น
python first_tool_agent.py์ฑ๊ณต ํ์
์๋ 3๊ฐ์ง๋ฅผ ๋ง์กฑํ๋ฉด ์ฑ๊ณต์ด๋ค.
- ํ๋ก๊ทธ๋จ์ด ์์ธ ์์ด ์ข ๋ฃ๋๋ค.
- ๊ฒฐ๊ณผ์
936์ด ํฌํจ๋๋ค. - ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ค๋ช ํ๋ ์งง์ ๋ฌธ์ฅ์ด ํจ๊ป ์ถ๋ ฅ๋๋ค.
์ค์ต 5) ๋๊ตฌ๊ฐ ์ ์ค์ํ์ง ๋น๊ตํ๊ธฐ
์ด๋ฒ์๋ ๊ฐ์ ํ์ผ์์ ๋๊ตฌ๋ฅผ ์ ๊น ์ ๊ฑฐํด ๋ณธ๋ค.
์์ ํฌ์ธํธ
๊ธฐ์กด:
tools=[calculator]๋ณ๊ฒฝ:
tools=[]์คํ ๋ช ๋ น
python first_tool_agent.py์ฑ๊ณต ํ์
- ์คํ ์์ฒด๋ ๋ ์ ์๋ค.
- ํ์ง๋ง ๊ณ์ฐ ๊ฒฐ๊ณผ์ ์์ ์ฑ๊ณผ ์ฌํ์ฑ์ด ๋๊ตฌ ์ฌ์ฉ ๋ฒ์ ๋ณด๋ค ํ๋ค๋ฆด ์ ์๋ค.
- ์ด ์ฐจ์ด๋ฅผ ํ์ธํ๋ฉด Unit 1์์ ์ ๋๊ตฌ๋ฅผ ๊ฐ์กฐํ๋์ง ๋ฐ๋ก ์ดํด๋๋ค.
์ด๋ณด์์ฉ ์ฌ์ด ํด์ค
์ ๊ณ์ฐ๊ธฐ ๋๊ตฌ๋ถํฐ ์์ํ๋?
๊ฒ์์ด๋ ์ธ๋ถ API๋ ๋ณ์๊ฐ ๋ง๋ค. ๋ฐ๋ฉด ๊ณ์ฐ ๋ฌธ์ ๋ ์ ๋ ฅ๊ณผ ์ ๋ต์ด ๋ช ํํ๋ค. ๊ทธ๋์ ์์ด์ ํธ๊ฐ ์ค์ ๋ก ๋๊ตฌ๋ฅผ ํ์ฉํ๋์ง ํ์ธํ๊ธฐ ์ข๋ค.
์ CodeAgent๋ฅผ ๋จผ์ ๋ณด๋?
smolagents ๋ฌธ์๊ฐ ๊ฐ์กฐํ๋ฏ CodeAgent๋ ํ๋์ ์ฝ๋์ฒ๋ผ ์กฐํฉํ ์ ์๋ค. ์
๋ฌธ์ ์
์ฅ์์๋ โ์๊ฐ๋ง ํ๋ ๋ชจ๋ธโ์ด ์๋๋ผ โํ๋์ ์กฐ์งํ๋ ์์ด์ ํธโ๋ผ๋ ์ฐจ์ด๋ฅผ ์ดํดํ๊ธฐ ์ฝ๋ค.
์ ์ฑ๊ณต ํ์ ์ ๋ฐ๋ก ์ ๋?
์ค์ต ๋ฌธ์๋ ์คํ ๋ช ๋ น๋ง ์์ผ๋ฉด ๋ถ์กฑํ๋ค. ์ฑ๊ณต ํ์ ์ด ์์ด์ผ ์ด๋ณด์๋ ๋งํ์ง ์๋๋ค. ๊ทธ๋์ ์ด ๊ธ์ ๊ฐ ๋จ๊ณ๋ง๋ค ๋๊ตฌ, ์ ๋ ฅ, ์คํ ๋ช ๋ น, ์ฑ๊ณต ํ์ ์ ๋ถ๋ฆฌํ๋ค.
์ค๋ฌด ์ ์ฉ ํฌ์ธํธ
1) ๋ง์ผํ ์ซ์ ๊ฒ์ฐ
CTR, CPC, ๊ตฌ๋ ๋งค์ถ, ํ ์ธ์จ ๊ณ์ฐ์ฒ๋ผ ์ ๋ต์ด ๋ถ๋ช ํ ๋ฐ๋ณต ์์ ์ ๋ฐ๋ก ๋ถ์ผ ์ ์๋ค.
2) ์ด์ํ FAQ ์๋ํ
โ์ด ๊ฐ๊ฒฉ์ 3๊ฐ์ ๋งค์ถ์ด ์ผ๋ง์ผ?โ ๊ฐ์ ์ง๋ฌธ์ ์์ ๋๊ตฌํ ์์ด์ ํธ๋ก ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
3) ๋ค์ ํ์ฅ ์์
์ค๋ฌด์์๋ ๋ณดํต ์๋ ์์๊ฐ ์์ ์ ์ด๋ค.
- ๊ณ์ฐ๊ธฐ ๋๊ตฌ
- CSV ์ฝ๊ธฐ ๋๊ตฌ
- ์น ๊ฒ์ ๋๊ตฌ
- ์ธ๋ถ API ๋๊ตฌ
- ๋ฉํฐ์คํ ์ํฌํ๋ก
์์ฃผ ๋งํ๋ ๋ฌธ์
ModuleNotFoundError: smolagents
source .venv/bin/activate
pip install "smolagents[toolkit]"์ธ์ฆ ๋๋ ํธ์ถ ์ค๋ฅ
ํ๊ฒฝ์ ๋ฐ๋ผ Hugging Face ํ ํฐ์ด ํ์ํ ์ ์๋ค.
export HF_TOKEN=hf_your_token_here
python first_tool_agent.py์๋ต์ด ๋๋ฌด ๊ธธ๊ฑฐ๋ ๋ถ์์ ํ ๋
- ์ง๋ฌธ์ ๋ ์งง๊ฒ ์ด๋ค.
max_steps๋ฅผ 4~5 ์ ๋๋ก ์ ํํ๋ค.- ์ฒ์์๋ ๊ณ์ฐ์ฒ๋ผ ์ ๋ต์ด ๋๋ ทํ ํ์คํฌ๋ก ๊ฒ์ฆํ๋ค.
eval์ด ๋ถ์ํ ๋
๊ทธ ์ฐ๋ ค๋ ํ๋นํ๋ค. ์ด์ ํ๊ฒฝ์์๋ ์์ ํ ์์ ํ์๋ ๊ฒ์ฆ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ๊พธ๋ ํธ์ด ์ข๋ค. ์ฌ๊ธฐ์๋ ์์ด์ ํธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ธฐ ์ํ ์ต์ ์์ ๋ก๋ง ์ฌ์ฉํ๋ค.
์ถ์ฒ ํ์ต ์์
- ๊ณต์ ์ฝ์ค ์๊ฐ ํ์ด์ง์์ ์ ์ฒด ๋ก๋๋งต ํ์ธ
- Unit 1์ Tools / Thoughts / Actions / Observations ๊ฐ๋ ์ฝ๊ธฐ
smolagentsQuickstart ํ์ธ- ์ด ๊ธ ์ค์ต์ผ๋ก ์ฒซ ๋๊ตฌํ ์์ด์ ํธ ์คํ
- ๋ค์ ๊ธ์์ ์ค์ตํธ ๋๋ Unit 2 ํ๋ ์์ํฌ ํ์ต์ผ๋ก ํ์ฅ
ํ ์ค ์์ฝ
HF Agents Course ๋ณธํธ 1์ ์ฒซ ์ฑ๊ณต์ ์์ด์ ํธ์ ๊ธฐ๋ณธ ๋ฃจํ๋ฅผ ์ดํดํ๊ณ , ์์ ๋๊ตฌ ํ๋๋ฅผ ๋ถ์ฌ ์ค์ ๋ก ์คํํด ๋ณด๋ ๊ฒ์ด๋ค.
์์ฑํ AI ํ์ฉ ๊ณ ์ง
์ด ๋ฌธ์๋ ์์ฑํ AI๋ก ์ด์์ ์์ฑํ ๋ค, Hugging Face Agents Course GitHub ์ ์ฅ์, ๊ณต์ ์ฝ์ค ํ์ด์ง, smolagents ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฌ๋์ด ์ฌํ ๋จ๊ณ, ๋ช
๋ น์ด, ์ฑ๊ณต ํ์ , ๋งํฌ ๊ตฌ์กฐ๋ฅผ ๊ฒํ ํด ํธ์งํ์ต๋๋ค.