๐Ÿ› ๏ธ Tools

[LLM Agents] Multi AI Agent System with crewAI

๋‹คํ–ˆ๋‹ค 2024. 5. 19. 19:27
728x90
 

Multi AI Agent System with crewAI

CrewAI Framework๋ฅผ ํ†ตํ•ด Multi-Agent ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์ค‘ Task๋ฅผ Agent๋“ค๊ณผ ์ƒํ˜ธ ์—ฐ๊ณ„ํ•ด ๋ชฉํ‘œ์— ๊ฐ€๊นŒ์šด ๋‹ต์„ ๊ตฌํ•œ๋‹ค. 


2. AI Agents

(1) Agents ์—ญํ•  

agent๊ฐ€ task๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ answer๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š์„ ๋•Œ agent๋Š” ๋‹ค์‹œ task๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

Agent์˜ ๊ตฌ์„ฑ์š”์†Œ๋กœ Tools๊ฐ€ ์žˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” SKU ๋˜๋Š” function์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
Tools๋Š” agent๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” task๋ฅผ ์ •์˜ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด API, data ์ ‘๊ทผ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
Langchain์—์„œ ์‚ฌ์šฉํ•˜๋Š” Tool์˜ ์—ญํ• ๊ณผ ๊ฐ™๊ณ  crewAI์—์„œ๋Š” Task ์•ˆ์— ์ˆ˜ํ–‰ ํ•  (agent)๋ฅผ ๊ฐ™์ด ํ˜ธ์ถœํ•œ๋‹ค. 
์ดํ›„ agent๊ฐ€ ๋ถ€์—ฌ ๋ฐ›์€ history์™€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœ ํ•œ๋‹ค.
 
 
                                                                                
 
 

(2) Multi-Agent Systems

                                                                      

 Multi-Agent Framework & Platform (CrewAI ๊ธฐ๋Šฅ ์ •๋ฆฌ)

  • concept(task)๋ฅผ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๋กœ ๋ถ„ํ•ด
  • system(prompt)๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ํŒจํ„ด ์ œ๊ณต
  • ์—์ด์ „ํŠธ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ / ๊ธฐ์ˆ  ์ œ๊ณต
  • ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋œ ๋„๊ตฌ / ๊ธฐ์ˆ  ์ œ๊ณต
  • ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ ์ œ๊ณต
  • ์—์ด์ „ํŠธ๋ฅผ ์ œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๋„๊ตฌ๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๋ชจ๋ธ ์ œ๊ณต
 

3. Create agents to research and write an article

L2 : ๋ฆฌ์„œ์น˜ ๋ฐ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ agent ์ƒ์„ฑ

๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์†Œ๊ฐœํ•˜๊ณ  crewAI ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

#!pip install -q crewai==0.28.8 crewai_tools==0.1.6 langchain_community==0.0.29
# Warning control
import warnings
warnings.filterwarnings('ignore')
 
# import 
from crewai import Agent, Task, Crew

 

 

LLM agents๋Š” OpenAI์˜ gpt-3.5-turbo๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. crewAI๋Š” ๋‹ค๋ฅธ ์ธ๊ธฐ ์žˆ๋Š” LLM ๋ชจ๋ธ์„ agent๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๋”๋ณด๊ธฐ
Optional Note

1. [Hugging Face (HuggingFaceHub endpoint)]
from langchain_community.llms import HuggingFaceHub

llm = HuggingFaceHub(
	repo_id="HuggingFaceH4/zephyr-7b-beta",
	huggingfacehub_api_token="<HF_TOKEN_HERE>",
	task="text-generation",
)
  1. [Mistral API]
OPENAI_API_KEY=your-mistral-api-key
OPENAI_API_BASE=https://api.mistral.ai/v1
OPENAI_MODEL_NAME="mistral-small"
  1. [Cohere]
from langchain_community.chat_models import ChatCohere
# Initialize language model
os.environ["COHERE_API_KEY"] = "your-cohere-api-key"
llm = ChatCohere()
 

Agents ์ƒ์„ฑํ•˜๊ธฐยถ

  • ์—์ด์ „ํŠธ๋ฅผ ์ •์˜ํ•˜๊ณ  role, goal, backstory๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • LLMs๋Š” ์—ญํ• ์„ ํ•  ๋•Œ ๋” ์ž˜ ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Agent: Plannerยถ

Note: _multiple strings_์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ _triple quote docstring_์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์˜ ์ฐจ์ด์ ์€, whitespaces์™€ newline characters๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— LLM์— ์ „๋‹ฌํ•˜๊ธฐ์— ๋” ์ž˜ ํฌ๋งทํŒ… ๋จ.

varname = "line 1 of text"
          "line 2 of text"

versus the triple quote docstring:

varname = """line 1 of text
             line 2 of text
          """
planner = Agent(
    role="Content Planner",
    goal="{topic}์— ๋Œ€ํ•œ ์‚ฌ์‹ค์ ์ด๊ณ  ๋งค๋ ฅ์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ๊ณ„ํšํ•ฉ๋‹ˆ๋‹ค.",
    backstory="๋„ˆ๋Š” ๋ธ”๋กœ๊ทธ ๊ธ€์„ ๊ณ„ํšํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "
              "์ฃผ์ œ๋Š” {topic}์ž…๋‹ˆ๋‹ค. "
              "๊ด€๊ฐ์ด ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐฐ์šฐ๊ณ  "
              "์ •๋ณด์— ๊ธฐ๋ฐ˜ํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋„๋ก "
              "๋„์™€์ฃผ๋Š” ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. "
              "๋„ˆ์˜ ์ž‘์—…์€ ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ๊ธ€์„ ์“ฐ๋Š” "
              "์ฝ˜ํ…์ธ  ์ž‘๊ฐ€์˜ ๊ธฐ๋ฐ˜์ด ๋ฉ๋‹ˆ๋‹ค.",
    allow_delegation=False,
	verbose=True
)
In [26]:
#### Agent: Writer
writer = Agent(
    role="์ปจํ…์ธ  ์ž‘๊ฐ€",
    goal="ํ†ต์ฐฐ๋ ฅ ์žˆ๊ณ  ์‚ฌ์‹ค์ ์ธ ๊ธ€์„ ์“ฐ์„ธ์š”."
         "opinion piece {topic}์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์“ฐ์„ธ์š”. ",
    backstory="๋„ˆ๋Š” ์ž‘๊ฐ€๋กœ์„œ ๊ธ€์„ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "        
              "์ƒˆ๋กœ์šด opinion piece๋ฅผ ์ฃผ์ œ๋กœ ์“ฐ์„ธ์š”: {topic}. "
              "๋„ˆ๋Š” ์ปจํ…์ธ  ํ”Œ๋ž˜๋„ˆ์˜ ์ž‘์—…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธ€์„ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "
              "๋„ˆ๋Š” ์•„์›ƒ๋ผ์ธ์˜ ์ฃผ์š” ๋ชฉํ‘œ์™€ ๋ฐฉํ–ฅ์„ ๋”ฐ๋ฅด๋ฉฐ, "
              "์ปจํ…์ธ  ํ”Œ๋ž˜๋„ˆ๊ฐ€ ์ œ๊ณตํ•œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ "
              "๊ฐ๊ด€์ ์ด๊ณ  ์ค‘๋ฆฝ์ ์ธ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. "
              "๋„ˆ๋Š” ์ฃผ์žฅ์ด ์•„๋‹Œ ๊ฐ๊ด€์ ์ธ ์ฃผ์žฅ์„ ์ œ๊ณตํ•˜๊ณ , "
              "์ปจํ…์ธ  ํ”Œ๋ž˜๋„ˆ๊ฐ€ ์ œ๊ณตํ•œ ์ •๋ณด๋กœ ๊ทธ๊ฒƒ์„ ๋’ท๋ฐ›์นจํ•ฉ๋‹ˆ๋‹ค. "
              "๋„ˆ๋Š” ์ฃผ์žฅ์ด ๊ฐ๊ด€์ ์ธ ์ฃผ์žฅ๊ณผ ๋Œ€์กฐ๋˜๋Š” ๊ฒฝ์šฐ "
              "๋„ˆ์˜ ์˜๊ฒฌ์„ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค.",
    allow_delegation=False,
    verbose=True
)
#### Agent : Editor
editor = Agent(
    role="ํŽธ์ง‘์ž",
    goal="ํŽธ์ง‘์ž๋Š” ์ฃผ์–ด์ง„ ๋ธ”๋กœ๊ทธ ๊ธ€์„ "
         "๊ธ€์“ฐ๊ธฐ ์Šคํƒ€์ผ์— ๋งž๊ฒŒ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.",
    backstory="๋„ˆ๋Š” ์ปจํ…์ธ  ์ž‘๊ฐ€๋กœ๋ถ€ํ„ฐ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ๋ฐ›๋Š” ํŽธ์ง‘์ž์ž…๋‹ˆ๋‹ค. "
              "๋„ˆ์˜ ๋ชฉํ‘œ๋Š” ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋ฅผ ๊ฒ€ํ† ํ•˜์—ฌ "
              "์ €๋„๋ฆฌ์ฆ˜์˜ ์ตœ๊ณ ์˜ ์‹ค์ฒœ ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ฅด๊ณ , "
              "์˜๊ฒฌ์ด๋‚˜ ์ฃผ์žฅ์„ ์ œ๊ณตํ•  ๋•Œ ๊ท ํ˜•์žˆ๋Š” ๊ด€์ ์„ ์ œ๊ณตํ•˜๋ฉฐ, "
              "๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ฃผ์š” ๋…ผ๋ž€์ด๋˜๋Š” ์ฃผ์ œ๋‚˜ ์˜๊ฒฌ์„ ํ”ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.",
    allow_delegation=False,
    verbose=True
)
#### Agent : Translator
translator = Agent(
    role="๋ฒˆ์—ญ๊ฐ€",
    goal="๋ฒˆ์—ญ๊ฐ€๋Š” ์ฃผ์–ด์ง„ ๊ธ€์„ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•ฉ๋‹ˆ๋‹ค.",
    backstory="๋„ˆ๋Š” ํŽธ์ง‘์ž๋กœ๋ถ€ํ„ฐ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ๋ฐ›๋Š” ๋ฒˆ์—ญ๊ฐ€์ž…๋‹ˆ๋‹ค. "
			  "๋„ˆ์˜ ๋ชฉํ‘œ๋Š” ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋ฅผ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "
			  "๋ฒˆ์—ญ์€ ์›๋ณธ์˜ ์˜๋ฏธ๋ฅผ ์ตœ๋Œ€ํ•œ ์œ ์ง€ํ•˜๋ฉด์„œ "
			  "๋…์ž๊ฐ€ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.",
	allow_delegation=False,
	verbose=True
)
 

Task ์ƒ์„ฑ

  • Task๋ฅผ ์ •์˜ํ•˜๊ณ , description, expected_output ๊ทธ๋ฆฌ๊ณ  agent๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”.
#### Task: Plan
plan = Task(
    description=(
        "1. {topic}์— ๋Œ€ํ•œ ์ตœ์‹  ํŠธ๋ Œ๋“œ, ์ฃผ์š” ํ”Œ๋ ˆ์ด์–ด ๋ฐ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋‰ด์Šค๋ฅผ ์šฐ์„  ์ˆœ์œ„๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.\n"
        "2. ๊ด€๊ฐ์„ ์‹๋ณ„ํ•˜๊ณ , ๊ทธ๋“ค์˜ ๊ด€์‹ฌ์‚ฌ์™€ ๊ณ ํ†ต ํฌ์ธํŠธ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.\n"
        "3. ์†Œ๊ฐœ, ์ฃผ์š” ํฌ์ธํŠธ ๋ฐ ํ–‰๋™ ์š”์ฒญ์„ ํฌํ•จํ•œ ์ž์„ธํ•œ ์ฝ˜ํ…์ธ  ๊ฐœ์š”๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.\n"
        "4. SEO ํ‚ค์›Œ๋“œ ๋ฐ ๊ด€๋ จ ๋ฐ์ดํ„ฐ ๋˜๋Š” ์†Œ์Šค๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค."
    ),
    expected_output="์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ํšจ๊ณผ์ ์ธ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ณ„ํš์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. "
        "์•„์›ƒ๋ผ์ธ, ๊ด€๊ฐ ๋ถ„์„, SEO ํ‚ค์›Œ๋“œ ๋ฐ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.",
    agent=planner,
)
#### Task : Write 
write = Task(
    description=(
        "1. {topic}์— ๋Œ€ํ•œ ๋งค๋ ฅ์ ์ธ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜์„ธ์š”.\n"
        "2. SEO ํ‚ค์›Œ๋“œ๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ†ตํ•ฉํ•˜์„ธ์š”.\n"
        "3. ์„น์…˜/๋ถ€์ œ๋ชฉ์€ ๋งค๋ ฅ์ ์ธ ๋ฐฉ์‹์œผ๋กœ "
        "์ ์ ˆํ•˜๊ฒŒ ๋ช…๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.\n"
         "4. ๊ธ€์€ ๋งค๋ ฅ์ ์ธ ์†Œ๊ฐœ, ํ†ต์ฐฐ๋ ฅ์žˆ๋Š” ๋ณธ๋ฌธ, "
         "์š”์•ฝ์ ์ธ ๊ฒฐ๋ก ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.\n"
         "5. ๋งž์ถค๋ฒ• ์˜ค๋ฅ˜ ๋ฐ ๋ธŒ๋žœ๋“œ ์Œ์„ฑ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ "
         "๊ฒ€ํ† ํ•˜์„ธ์š”."
    ),
    expected_output="markdown ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ๋œ ์ž˜ ์“ฐ์—ฌ์ง„ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ",
    agent=writer,
)
#### Task : Edit
edit = Task(
    description=("์ฃผ์–ด์ง„ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ๊ต์ •ํ•˜์—ฌ "
                 "๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๊ณ  "
                 "๋ธŒ๋žœ๋“œ ์˜๊ฒฌ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”."),
    expected_output="markdown ํ˜•์‹์˜ ์ž˜ ์“ฐ์—ฌ์ง„ ๋ธ”๋กœ๊ทธ ๊ธ€, "
                    "๊ฐ ์„น์…˜์€ 2~3 ๋‹จ๋ฝ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.",
    agent=editor
)

 

 
#### Task : Translate
translate = Task(
    description=("์ฃผ์–ด์ง„ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ํ•œ๊ธ€๋กœ ๋ฒˆ์—ญํ•ฉ๋‹ˆ๋‹ค."
                 "๊ตฌ์–ด์ฒด์™€ ๊ฒฝ์–ด์ฒด๋ฅผ ์„ž์–ด์„œ ๋ฒˆ์—ญํ•˜์„ธ์š”."),
    expected_output="ํ•œ๊ตญ์–ด๋กœ ๋ฒˆ์—ญ๋œ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.",
    agent=translator
)
 

Crew ์ƒ์„ฑํ•˜๊ธฐ

  • crew Agents ์ƒ์„ฑํ•˜๊ธฐ
  • ์—์ด์ „ํŠธ๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
    • ์ฐธ๊ณ : ์ด ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ์—์„œ, ์ž‘์—…์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค(์ฆ‰, ์„œ๋กœ ์˜์กด์ ์ด๋ฏ€๋กœ ์ž‘์—… ๋ชฉ๋ก์˜ _order_๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค).
  • verbose=2๋Š” ์‹คํ–‰์˜ ๋ชจ๋“  ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 
crew = Crew(
    agents=[planner, writer, editor, translator],
    tasks=[plan, write, edit, translate],
    verbose=2
)
 
2024-05-19 18:01:32,762 - 8642773568 - __init__.py-__init__:518 - WARNING: Overriding of current TracerProvider is not allowed
 

Crew ์‹คํ–‰ํ•˜๊ธฐยถ

Note: LLMs์€ ๋™์ผํ•œ ์ž…๋ ฅ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์ถœ๋ ฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‹ต๋ณ€์€ ์ผ๊ด€์ ์ด์ง€ ์•Š์Œ)

 

result = crew.kickoff(inputs={"topic": "Artificial Intelligence"})
 
 [DEBUG]: == Working Agent: Content Planner
 [INFO]: == Starting Task: 1. Apple stock์— ๋Œ€ํ•œ ์ตœ์‹  ํŠธ๋ Œ๋“œ, ์ฃผ์š” ํ”Œ๋ ˆ์ด์–ด ๋ฐ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋‰ด์Šค๋ฅผ ์šฐ์„  ์ˆœ์œ„๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
2. ๊ด€๊ฐ์„ ์‹๋ณ„ํ•˜๊ณ , ๊ทธ๋“ค์˜ ๊ด€์‹ฌ์‚ฌ์™€ ๊ณ ํ†ต ํฌ์ธํŠธ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
3. ์†Œ๊ฐœ, ์ฃผ์š” ํฌ์ธํŠธ ๋ฐ ํ–‰๋™ ์š”์ฒญ์„ ํฌํ•จํ•œ ์ž์„ธํ•œ ์ฝ˜ํ…์ธ  ๊ฐœ์š”๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
4. SEO ํ‚ค์›Œ๋“œ ๋ฐ ๊ด€๋ จ ๋ฐ์ดํ„ฐ ๋˜๋Š” ์†Œ์Šค๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
.
.
.
.
from IPython.display import Markdown
Markdown(result)
 
๋”๋ณด๊ธฐ

AI์˜ ํŒŒ๋„๋ฅผ ํƒ€๋ฉฐ: ํ˜„์žฌ์˜ ์ถ”์„ธ์™€ ์ฃผ์š” ํ”Œ๋ ˆ์ด์–ด๋“คยถ

AI๋Š” ๊ฑด๊ฐ•๊ด€๋ฆฌ, ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ, ๊ธˆ์œต ๋“ฑ์—์„œ ์ฃผ์š” ์ˆ˜ํ˜œ์ž๊ฐ€ ๋˜๋ฉฐ ์ค‘์š”ํ•œ ๋ฐœ์ „์„ ์ด๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑด๊ฐ•๊ด€๋ฆฌ ๋ถ„์•ผ์—์„œ AI๋Š” ์ง„๋‹จ๊ณผ ํ™˜์ž ๊ด€๋ฆฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธˆ์œต ๋ถ„์•ผ์—์„œ๋Š” AI ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฑฐ๋ž˜ ์ „๋žต๊ณผ ์œ„ํ—˜ ๊ด€๋ฆฌ๋ฅผ ์žฌ์กฐ์งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ๋ถ„์•ผ์—์„œ๋Š” AI๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์œ„ํ˜‘์„ ๊ฐ์ง€ํ•˜๊ณ  ์™„ํ™”ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ํž˜์ด ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

AI ํ˜๋ช…์„ ์ฃผ๋„ํ•˜๊ณ  ์žˆ๋Š” ์ฃผ์š” ํ”Œ๋ ˆ์ด์–ด๋“ค๋กœ๋Š” Google, IBM, Microsoft, Amazon์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ๊ด‘๋ฒ”์œ„ํ•œ ์—ฐ๊ตฌ์™€ AI์˜ ํ˜์‹ ์ ์ธ ์‘์šฉ์€ ๊ฒฝ๊ณ„๋ฅผ ๋›ฐ์–ด๋„˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ฃผ๋ชฉํ•  ๋งŒํ•œ ์‚ฌ๋ก€๋กœ๋Š” ๊ตฌ๊ธ€์˜ AI ํ”„๋กœ๊ทธ๋žจ์ธ AlphaGo๊ฐ€ ๋ฐ”๋‘‘์—์„œ ์ธ๊ฐ„์„ ๋Šฅ๊ฐ€ํ•œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด์ „์—๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์—ฌ๊ฒจ์กŒ๋˜ ์ผ์ž…๋‹ˆ๋‹ค.

AI์™€ ํ•จ๊ป˜ ๋ฏธ๋ž˜๋ฅผ ํ’€์–ด๋‚˜๊ฐˆ ๊ฒƒยถ

AI์˜ ํ˜„์žฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ธ์ƒ์ ์ด์ง€๋งŒ, ๊ทธ ๋ฏธ๋ž˜์˜ ๊ฐ€๋Šฅ์„ฑ์€ ๋” ๋†€๋ผ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. AI์˜ ๋น ๋ฅธ ๋ฐœ์ „์€ ๊ธฐ๊ณ„๊ฐ€ ์Šค์Šค๋กœ ํ•™์Šตํ•˜๊ณ , ์ ์‘ํ•˜๋ฉฐ, ๋…์ž์ ์œผ๋กœ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋ž˜๋ฅผ ์•ฝ์†ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, AI์˜ ๋ณต์žก์„ฑ๊ณผ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ์™€ ๋ณด์•ˆ๊ณผ ๊ด€๋ จ๋œ ์šฐ๋ ค๋Š” ์—ฌ์ „ํžˆ ์œ ํšจํ•œ ๋ฌธ์ œ์ ์ž…๋‹ˆ๋‹ค. AI ํ™˜๊ฒฝ์„ ํƒ์ƒ‰ํ•˜๋ฉด์„œ, AI์˜ ์ž ์žฌ๋ ฅ์„ ํ™œ์šฉํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๋„์ „์„ ๊ทน๋ณตํ•˜๋Š” ์‚ฌ์ด์˜ ๊ท ํ˜•์„ ์žก๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ–‰๋™์„ ์ด‰๊ตฌํ•˜๋‹คยถ

๊ณ„์†ํ•ด์„œ ์ง„ํ™”ํ•˜๋Š” AI ๋ถ„์•ผ์— ๋Œ€ํ•ด ์•Œ์•„๊ฐ€์„ธ์š”. AI์˜ ๋ฏธ๋ž˜๋Š” ์ƒˆ๋กœ์šด ์ถ”์„ธ, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ๋ŒํŒŒ๊ตฌ๊ฐ€ ์ •๊ธฐ์ ์œผ๋กœ ๋“ฑ์žฅํ•˜๋ฉฐ, ์—„์ฒญ๋‚œ ๊ฐ€๋Šฅ์„ฑ์„ ์•ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ์• ํ˜ธ๊ฐ€, AI ์—ฐ๊ตฌ์›, ๋น„์ฆˆ๋‹ˆ์Šค ์ „๋ฌธ๊ฐ€๋กœ์„œ, ์—ฌ๋Ÿฌ๋ถ„์˜ ํ†ต์ฐฐ๋ ฅ๊ณผ ๊ฒฝํ—˜์€ AI ๋Œ€ํ™”๋ฅผ ํ’์š”๋กญ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์–ตํ•˜์„ธ์š”, ์ธ๊ณต์ง€๋Šฅ์€ ๋‹จ์ˆœํ•œ ์ถ”์„ธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ˜๋ช…์ž…๋‹ˆ๋‹ค. ๊ทธ ์ผ๋ถ€๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ์ค€๋น„๊ฐ€ ๋˜์…จ๋‚˜์š”?

์‚ฌ์šฉ๋œ ํ‚ค์›Œ๋“œ: ์ธ๊ณต์ง€๋Šฅ, AI ์ถ”์„ธ, ๊ฑด๊ฐ•๊ด€๋ฆฌ์—์„œ์˜ AI, ๊ธˆ์œต์—์„œ์˜ AI, ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ์—์„œ์˜ AI, Google์˜ AlphaGo, AI์˜ ์ฃผ์š” ํ”Œ๋ ˆ์ด์–ด๋“ค.

์ถœ์ฒ˜: AI ์—ฐ๊ตฌ ๋…ผ๋ฌธ, ๊ธฐ์ˆ  ๋‰ด์Šค ์›น์‚ฌ์ดํŠธ, AI ์ €๋„, Google, IBM, Microsoft, Amazon์˜ ๊ณต์‹ AI ์›น์‚ฌ์ดํŠธ.

๋ฐ˜์‘ํ˜•