๐ค 40. HF Agents Course ์ค์ตํธ 1 - ์ฝ์ค ๋ฌธ์ ๊ธฐ๋ฐ ํ์ต ํ๋๋ ์์ด์ ํธ ๋ง๋ค๊ธฐ
๋ชฉํ: HF Agents Course ์๊ฐ ํ์ด์ง์
smolagents๋ฅผ ์ฐ๊ฒฐํด, ์ฝ์ค ๊ฐ์๋ฅผ ์ฝ๊ณ 1์ฃผ ํ์ต ๊ณํ์ผ๋ก ์ ๋ฆฌํ๋ ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ์ง์ ์ฌํํ๋ค.
์ด๋ฒ ์ค์ต์ โ๊ฒ์/์ฝ๊ธฐ โ ๊ตฌ์กฐํ โ ์ต์ข ๋ต๋ณโ ํ๋ฆ์ ๋์ผ๋ก ํ์ธํ๋ ํธ์ฆ์จ์ ๋๋ค. Unit 0~2 ์ด๋ฐ์ ๋ง ๋ณด๊ธฐ ์์ํ ์ฌ๋์๊ฒ ํนํ ์ ๋ง์ต๋๋ค.
๋ฌด์์ ๋ง๋ค๊น
์ฌ์ฉ์ ์ ๋ ฅ:
HF Agents Course๋ฅผ 1์ฃผ ์์ ์ ๋ฌธํ๊ณ ์ถ์ด. ํ๋ฃจ 45๋ถ ๊ธฐ์ค์ผ๋ก ๊ณํ์ ์ง์ค.
์์ด์ ํธ ์ถ๋ ฅ:
- ์ฝ์ค ๋ชฉ์ ์์ฝ
- 5์ผ ํ์ต ๊ณํ
- ๊ฐ ์ผ์๋ณ ์ถ์ฒ ์ฃผ์
- ๋ง์ง๋ง ์ ๊ฒ ์ฒดํฌ๋ฆฌ์คํธ
์ ์ด ์ค์ต์ด ์ข์๊ฐ
- ๊ณต์ ์ฝ์ค ์๊ฐ ํ์ด์ง์ ์ค์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๋ตํ๋ค.
CodeAgent๊ฐ ํ์ ์ ๊ฒ์ ๋๊ตฌ๋ฅผ ์จ์ ์ ๋ณด๋ฅผ ๋ชจ์๋ค.- ์ต์ข ์ฐ์ถ๋ฌผ์ด ๋จ์ ์์ฝ์ด ์๋๋ผ ์คํ ๊ฐ๋ฅํ ํ์ต ํ๋์ด๋ค.
์ ์ฒด ํ๋ฆ
flowchart TD U[์ฌ์ฉ์ ์์ฒญ] --> A[CodeAgent] A --> S[DuckDuckGoSearchTool๋ก ์ฝ์ค ์ ๋ณด ํ์] S --> O[๊ฒ์ ๊ฒฐ๊ณผ/๊ณต์ ๋ฌธ์ ํ์ธ] O --> P[ํ์ต์ผ์ยท์๊ฐ ๊ธฐ์ค์ผ๋ก ๊ณํ ๊ตฌ์ฑ] P --> R[์ต์ข ํ์ต ํ๋๋ ์ถ๋ ฅ]
์ค๋น๋ฌผ
- Python 3.10+
- ํฐ๋ฏธ๋
- ์ธํฐ๋ท ์ฐ๊ฒฐ
- ๊ฐ์ํ๊ฒฝ(
venv) - ์ ํ: Hugging Face ํ ํฐ (
HF_TOKEN)
Step 1) ์์ ํด๋ ๋ง๋ค๊ธฐ
์ ๋ ฅ
mkdir -p ~/hf-agents-course-lab01
cd ~/hf-agents-course-lab01์ฑ๊ณต ํ์
pwd๊ฒฐ๊ณผ๊ฐ~/hf-agents-course-lab01์ด์ด์ผ ํ๋ค.
Step 2) ๊ฐ์ํ๊ฒฝ๊ณผ ํจํค์ง ์ค์น
์ ๋ ฅ
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
pip install "smolagents[toolkit]"์ฑ๊ณต ํ์
python -c "import smolagents; print('ok')"ok๊ฐ ์ถ๋ ฅ๋๋ฉด ํต๊ณผ.
Step 3) ์ค์ต ์ฝ๋ ์์ฑ
app.py๋ฅผ ๋ง๋ค๊ณ ์๋ ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ๋๋ค.
from smolagents import CodeAgent, DuckDuckGoSearchTool, InferenceClientModel
model = InferenceClientModel()
agent = CodeAgent(
tools=[DuckDuckGoSearchTool()],
model=model,
)
prompt = """
Hugging Face Agents Course์ ๊ณต์ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก,
์
๋ฌธ์์ฉ 5์ผ ํ์ต ๊ณํ์ ํ๊ตญ์ด๋ก ์์ฑํด์ค.
์กฐ๊ฑด:
1) ํ๋ฃจ 45๋ถ ๊ธฐ์ค
2) ๋จผ์ ์ฝ์ค ๋ชฉ์ ์ 3์ค ์ด๋ด๋ก ์์ฝ
3) Day 1~Day 5 ํ์์ผ๋ก ์์ฑ
4) ๋ง์ง๋ง์ ์ฒดํฌ๋ฆฌ์คํธ 4๊ฐ ์ถ๊ฐ
5) ์ ๋ณด๊ฐ ๋ถ์ถฉ๋ถํ๋ฉด ์ถ์ ์ด๋ผ๊ณ ๋ช
์
"""
result = agent.run(prompt)
print(result)์ฝ๋ ์ค๋ช
InferenceClientModel(): Hugging Face Inference ๊ธฐ๋ฐ ๊ธฐ๋ณธ ๋ชจ๋ธ ์ฌ์ฉDuckDuckGoSearchTool(): ์ฝ์ค ํ์ด์ง/์ ์ฅ์ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ ์ํ ๊ฒ์ ๋๊ตฌCodeAgent(...): ํ์ํ ๊ฒฝ์ฐ ๊ฒ์ ํ ๋ต๋ณ์ ์ฌ๊ตฌ์ฑagent.run(prompt): ์ค์ ์คํ
Step 4) ์คํ
์คํ ๋ช ๋ น
python app.py์ฑ๊ณต ํ์
์๋ 4๊ฐ๋ฅผ ๋ง์กฑํ๋ฉด ์ฑ๊ณต์ด๋ค.
- ์คํ์ด ์๋ฌ ์์ด ๋๋๋ค.
- ์ถ๋ ฅ์ ์ฝ์ค ๋ชฉ์ ์์ฝ์ด ํฌํจ๋๋ค.
Day 1~Day 5๊ฐ ๋ชจ๋ ๋์จ๋ค.- ๋ง์ง๋ง์ ์ฒดํฌ๋ฆฌ์คํธ๊ฐ ๋ถ๋๋ค.
Step 5) ์ ๋ ฅ ๋ฐ๊ฟ์ ํ ๋ฒ ๋ ๊ฒ์ฆ
๊ฐ์ ์ฝ๋์์ prompt๋ฅผ ์๋์ฒ๋ผ ๋ฐ๊ฟ ์ฌ์คํํ๋ค.
๊ฒ์ฆ ์ ๋ ฅ
HF Agents Course๋ฅผ ๋น ๋ฅด๊ฒ ํ๊ณ ๋ฐ๋ก smolagents ์ค์ต๊น์ง ๊ฐ๊ณ ์ถ์ด.
3์ผ ํ์ต ๊ณํ์ผ๋ก ์ค์ฌ์, ์ด๋ก /์ค์ต ๋น์ค๋ ํจ๊ป ์ ์ด์ค.์ฑ๊ณต ํ์
- 3์ผ ๊ณํ์ผ๋ก ์ฌ๊ตฌ์ฑ๋๋ค.
- ์ค์ต ์ค์ฌ์ด๋ผ๋ ์์ฒญ์ด ๋ต๋ณ์ ๋ฐ์๋๋ค.
- ๋จ์ ๋ณต๋ถ์ด ์๋๋ผ ์ผ์ ๊ณผ ์ฐ์ ์์๊ฐ ๋ฐ๋๋ค.
์ถ๋ ฅ ์์ ํํ
์ฝ์ค ๋ชฉ์ ์์ฝ
- ์์ด์ ํธ์ ๊ฐ๋
, ๋๊ตฌ ์ฌ์ฉ, ํ๋ ์์ํฌ ํ์ฉ์ ๋ฐฐ์ด๋ค.
- smolagents, LangGraph, LlamaIndex ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์ตํ๋ค.
- ๊ณผ์ /์ฑ๋ฆฐ์ง ๊ธฐ๋ฐ์ผ๋ก ์์ด์ ํธ๋ฅผ ํ๊ฐํ๊ณ ๊ฐ์ ํ๋ค.
Day 1
- Unit 0 ๊ฐ์ ์ฝ๊ธฐ
- Unit 1 ํต์ฌ ๊ฐ๋
์ ๋ฆฌ
...ํธ๋ฌ๋ธ์ํ
1) ModuleNotFoundError: smolagents
์์ธ:
- ๊ฐ์ํ๊ฒฝ์ด ํ์ฑํ๋์ง ์์๊ฑฐ๋ ์ค์น๊ฐ ์ค๊ฐ์ ์คํจํจ
ํด๊ฒฐ:
source .venv/bin/activate
pip install "smolagents[toolkit]"2) ๋ชจ๋ธ ํธ์ถ ์ ์ธ์ฆ/๊ถํ ์ค๋ฅ
์์ธ:
- ํ๊ฒฝ์ ๋ฐ๋ผ Hugging Face ํ ํฐ์ด ์์ผ๋ฉด ๊ธฐ๋ณธ ํธ์ถ์ด ๋งํ ์ ์์
ํด๊ฒฐ:
export HF_TOKEN=hf_your_token
python app.py3) ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋ถ์ ํํ๊ฑฐ๋ ๋๋ฌด ๋์
์์ธ:
- ํ๋กฌํํธ๊ฐ ์ถ์์ ์ด๋ผ ์ฝ์ค ์ธ๋ถ ์๋ฃ๊น์ง ์์ผ ์ ์์
ํด๊ฒฐ:
- ํ๋กฌํํธ์
๊ณต์ ๊ณต๊ฐ ์ ๋ณด ๊ธฐ์ค,Hugging Face Agents Course,smolagents๋ฅผ ๋ช ์ํ๋ค. - ํ์ํ๋ฉด
Unit 0,Unit 1,smolagents๊ฐ์ ํค์๋๋ฅผ ์ง์ ๋ฃ๋๋ค.
4) ๋ต๋ณ์ด ์ฅํฉํ๊ณ ๊ณํ์ฒ๋ผ ๋ณด์ด์ง ์์
์์ธ:
- ์ถ๋ ฅ ํ์ ์ ์ฝ์ด ๋ถ์กฑํจ
ํด๊ฒฐ:
Day 1~Day 5 ํ์,์ฒดํฌ๋ฆฌ์คํธ 4๊ฐ,3์ค ์์ฝ๊ฐ์ ํ์ ์ ์ฝ์ ํ๋กฌํํธ์ ๋ฃ๋๋ค.
5) ์คํ์ ๋์ง๋ง ๋๊ตฌ ํธ์ถ์ด ๊ฑฐ์ ์ ๋ณด์
์์ธ:
- ๋ชจ๋ธ์ด ๋ด๋ถ ์ง์๋ง์ผ๋ก ๋ตํ๋ ค๊ณ ํ ์ ์์
ํด๊ฒฐ:
- ์ง๋ฌธ์ ์ต์ ์ฑ/๊ทผ๊ฑฐ ์ค์ฌ์ผ๋ก ๋ฐ๊พผ๋ค.
- ์:
๊ณต์ ์ฝ์ค ์๊ฐ ํ์ด์ง ๊ธฐ์ค์ผ๋ก๋๋ํ์ฌ ๊ณต๊ฐ๋ Unit ๊ตฌ์ฑ ๊ธฐ์ค์ผ๋ก๋ฅผ ์ถ๊ฐํ๋ค.
์ค์ต ์ฒดํฌ๋ฆฌ์คํธ
- ์์ ํด๋ ์์ฑ ์๋ฃ
- ๊ฐ์ํ๊ฒฝ ํ์ฑํ ์๋ฃ
-
smolagents[toolkit]์ค์น ์๋ฃ - ๊ธฐ๋ณธ 5์ผ ํ์ต ๊ณํ ์คํ ์ฑ๊ณต
- 3์ผ ๋ณํ ์ ๋ ฅ ์ฌ์คํ ์ฑ๊ณต
- ํธ๋ฌ๋ธ์ํ ์ต์ 1๊ฐ ์ง์ ๋ณต๊ตฌ
์ฌ๊ธฐ์ ๋ฐฐ์์ผ ํ ํต์ฌ
์ด๋ฒ ์ค์ต์ ํต์ฌ์ ์ ๋ต ๊ทธ ์์ฒด๋ณด๋ค ์์ด์ ํธ๊ฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํด ๊ตฌ์กฐํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ ๋ค๋ ์ ์ ๋๋ค. ์ด ํ๋ฆ์ ์ดํดํ๋ฉด ๋ค์ ๋จ๊ณ์์ ๊ณ์ฐ๊ธฐ, ์ปค์คํ ํด, ๋ฌธ์ ๊ฒ์ํ ์์ด์ ํธ๋ก ํ์ฅํ๊ธฐ ์ฌ์์ง๋๋ค.
๋ค์ ํ์ฅ ์์ด๋์ด
DuckDuckGoSearchTool๋์ ์ฌ๋ด ์ํค ๊ฒ์ ๋๊ตฌ ๋ถ์ด๊ธฐ- ๊ฒฐ๊ณผ๋ฅผ Markdown ํ์ผ๋ก ์ ์ฅํ๋ ์ปค์คํ ํด ์ถ๊ฐ
ํ์ต ๊ณํ ์์ฑ๋ค์ํด์ฆ 3๊ฐ ์์ฑ๋จ๊ณ๊น์ง ์ด์ด ๋ถ์ด๊ธฐ
์์ฑํ AI ํ์ฉ ๊ณ ์ง
์ด ๋ฌธ์๋ ์์ฑํ AI๋ฅผ ํ์ฉํด ์ด์ ๊ตฌ์กฐ์ ์์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ๊ณต๊ฐ๋ Hugging Face Agents Course ์ ์ฅ์/์ฝ์ค ํ์ด์ง/smolagents ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฌ๋์ด ์ฌํ ๋จ๊ณ, ๋ช ๋ น, ์ฑ๊ณต ํ์ , ํธ๋ฌ๋ธ์ํ ์ ๊ฒํ ํด ํธ์งํ์ต๋๋ค.