Tiger ๐Ÿ…, LLM Agent๋ฅผ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ (feat. Upsonic)

:pytorch:PyTorchKR:kr:

LLM๋“ค์ด ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ ์ž๋™ํ™”๋œ Agent์— ๋Œ€ํ•œ ๊ด€์‹ฌ๋“ค์ด ๋†’์•„์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์— ์†Œ๊ฐœํ•˜๋Š” Tiger ํ”„๋กœ์ ํŠธ๋Š” ์ปดํ“จํ„ฐ๋ฅผ '์ƒ๊ฐ๋งŒ์œผ๋กœ' ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. :brain::arrow_right::robot: LLM์— ์—ฌ๋Ÿฌ ๋„๊ตฌ๋“ค์„ ์ œ๊ณตํ•˜๊ณ , ์‚ฌ์šฉ์ž์˜ ์งˆ์˜์— ๋งž์ถฐ ์ž˜ ๋™์ž‘ํ•˜๋„๋ก ํ•˜๋Š” Tiger ํ”„๋กœ์ ํŠธ๋ฅผ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์‹œ์ฃ .

Tiger ๐Ÿ…, LLM Agent๋ฅผ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ (feat. Upsonic)


Tiger :tiger2:, LLM Agent๋ฅผ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ (feat. Upsonic)

์†Œ๊ฐœ

Tiger๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฃผ๋„์˜ ํ”„๋กœ์ ํŠธ๋กœ, LLM(๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ) ์—์ด์ „ํŠธ ํ˜๋ช…์„ ์œ„ํ•œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ํ†ตํ•ฉ๋œ ๋„๊ตฌ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Tiger๋Š” Neuralink๋กœ๋ถ€ํ„ฐ ์˜๊ฐ์„ ๋ฐ›์•„ ์‹œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ๋กœ, AI๊ฐ€ ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๊ณ , ์บ˜๋ฆฐ๋”๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ '์ƒ๊ฐ๋งŒ์œผ๋กœ' ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” AI์˜ ์ง€๋Šฅ์„ ์‹ค์ œ ํ–‰๋™์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ํ‘œ์ค€ ์ธํ”„๋ผ๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ์ฒ ํ•™์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Tiger๋Š” LLM(๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ) ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•ด ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ํ†ตํ•ฉ๋œ ๋„๊ตฌ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฃผ๋„์˜ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์€ Upsonic์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„๊ตฌ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์ž๋™์œผ๋กœ ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๊ณต๊ฐœ์ ์œผ๋กœ ์œ ์ง€๋˜๋Š” Tiger๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์ž์‹ ๋งŒ์˜ Tiger ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜์—ฌ ์—์ด์ „ํŠธ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Tiger๊ฐ€ ์ง€ํ–ฅํ•˜๋Š” ๋ชฉํ‘œ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ์—์ด์ „ํŠธ ๋„๊ตฌ์— ๋Œ€ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ง€์ (Utility Point) ์ œ๊ณต
  • ๊ธฐ์ˆ ๊ณผ ์›์ฒœ ๊ธฐ์ˆ ์„ ์ง€์›ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ(Community of tool support) ๊ตฌ์ถ•
  • AI ์—์ด์ „ํŠธ ์ƒํƒœ๊ณ„๋ฅผ ์œ„ํ•œ ๋ฌด๋ฃŒ, ์˜คํ”ˆ์†Œ์Šค, MIT ๋ผ์ด์„ ์Šค (Free, Open and MIT) ๋„๊ตฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ณต

์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ ๋ชฉ๋ก

  • Interpreter - python: Python ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • check_package - execute: ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • install_package - sh: ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • Search - google: Google์„ ํ†ตํ•ด ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • Search - duckduckgo: DuckDuckGo๋ฅผ ํ†ตํ•ด ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • read_website: ์ง€์ •๋œ ์›น์‚ฌ์ดํŠธ์˜ ๋‚ด์šฉ์„ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.
  • System - os_name: ์‚ฌ์šฉ ์ค‘์ธ ์šด์˜ ์ฒด์ œ์˜ ์ด๋ฆ„์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • System - architecture: ์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • System - python_version: ์„ค์น˜๋œ Python์˜ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • Knowledge - put: ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • Knowledge - pull: ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  • Knowledge - delete: ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • Knowledge - index: ๋ฐ์ดํ„ฐ ์ธ๋ฑ์Šค๋ฅผ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Communication - telegram: Telegram์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋Œ€ํ™”๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • Communication - as_user: ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ํ†ตํ•œ ๋ฉ”์‹œ์ง€ ๋ฐœ์†ก์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • Communication - delete_message: ๋ณด๋‚ธ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • Communication - get_last_dialogs: ์ตœ๊ทผ ๋Œ€ํ™” ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • Communication - get_last_messages: ํŠน์ • ๋Œ€ํ™”์˜ ์ตœ๊ทผ ๋ฉ”์‹œ์ง€๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • Communication - send_message: ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  • Communication - signin: Telegram ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋กœ๊ทธ์ธ์„ ๋„์™€์ค๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Tiger๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„  Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ upsonic์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„, Tiger ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์—ฌ๋Ÿฌ๋ถ„์˜ ์—์ด์ „ํŠธ์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Tiger().crewai()๋ฅผ ํ†ตํ•ด CrewAI ์—์ด์ „ํŠธ์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ๊ฐ€ Tiger์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

1. Tiger ์„ค์น˜ ๋ฐ ์„ค์ •

Tiger๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ๋จผ์ € Python ํ™˜๊ฒฝ์—์„œ upsonic ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Python 3.8 ์ด์ƒ ๋ฒ„์ „์—์„œ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„, Tiger ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์—ฌ๋Ÿฌ๋ถ„์˜ AI ์—์ด์ „ํŠธ์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

from upsonic import Tiger
tiger = Tiger()

2. ๊ธฐ๋Šฅ ํ†ตํ•ฉ ์˜ˆ์‹œ

  • CrewAI ํ†ตํ•ฉ: CrewAI์™€ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, Tiger๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์—์ด์ „ํŠธ์™€ ๋„๊ตฌ๋ฅผ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
from upsonic import Tiger
tiger_tools = Tiger().crewai()
  • LangChain ํ†ตํ•ฉ: LangChain ์—์ด์ „ํŠธ์™€์˜ ํ†ตํ•ฉ์„ ํ†ตํ•ด, Tiger ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
from upsonic import Tiger
from langchain_openai import ChatOpenAI
from langchain import hub, agents

llm = ChatOpenAI(model="gpt-4-0125-preview", api_key="YOUR_API_KEY")
prompt = hub.pull("hwchase17/openai-functions-agent")
agent = agents.create_openai_functions_agent(llm, Tiger().langchain(), prompt)
  • AutoGen ํ†ตํ•ฉ: AutoGen ์—์ด์ „ํŠธ์— Tiger๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ, Python ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
from upsonic import Tiger
from autogen import AssistantAgent, UserProxyAgent

chatbot = AssistantAgent(name="chatbot", ...)
user_proxy = UserProxyAgent(name="user_proxy", ...)
Tiger().autogen(chatbot, user_proxy)

3. ๋„๊ตฌ ์‚ฌ์šฉ ์˜ˆ์‹œ

Tiger๋Š” ๋‹ค์–‘ํ•œ ์ผ์ƒ์  ๋„๊ตฌ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, search.google๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Google ๊ฒ€์ƒ‰์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, system.os_name์„ ํ†ตํ•ด ์šด์˜ ์ฒด์ œ์˜ ์ด๋ฆ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# Google์—์„œ ๊ฒ€์ƒ‰ ์‹คํ–‰
tiger.search.google("Python ๊ธฐ์ดˆ")

# ์šด์˜ ์ฒด์ œ ์ด๋ฆ„ ํ™•์ธ
os_name = tiger.system.os_name()

Tiger ๋Œ€์‹œ๋ณด๋“œ ๋ฐ๋ชจ

Tiger์˜ ๊ณต๊ฐœ ๋Œ€์‹œ๋ณด๋“œ์—์„œ๋Š” ๊ฐ ๋„๊ตฌ์˜ ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Tiger ๋Œ€์‹œ๋ณด๋“œ ๋ฐ๋ชจ

์ด๋ ‡๊ฒŒ Tiger๋ฅผ ํ†ตํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ํ†ตํ•ฉ ๋ฐฉ๋ฒ•์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. Tiger์˜ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋“ค์„ ํ™œ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๋ถ„์˜ AI ์—์ด์ „ํŠธ๋ฅผ ๋”์šฑ ์ง€๋Šฅ์ ์œผ๋กœ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”.

๋” ์ฝ์–ด๋ณด๊ธฐ

Tiger GitHub ์ €์žฅ์†Œ

Tiger ๋ฌธ์„œ

Tiger ๋Œ€์‹œ๋ณด๋“œ ๋ฐ๋ชจ

ID/PW: tiger / tiger

https://tiger.upsonic.co




์ด ๊ธ€์€ GPT ๋ชจ๋ธ๋กœ ์ •๋ฆฌํ•œ ๊ธ€์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ๊ฒƒ์œผ๋กœ, ์›๋ฌธ์˜ ๋‚ด์šฉ ๋˜๋Š” ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ์ •๋ฆฌ๋œ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ์žˆ๋Š” ๋‚ด์šฉ์ด์‹œ๋ผ๋ฉด ์›๋ฌธ๋„ ํ•จ๊ป˜ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”! ์ฝ์œผ์‹œ๋ฉด์„œ ์–ด์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๋‚ด์šฉ์„ ๋ฐœ๊ฒฌํ•˜์‹œ๋ฉด ๋ง๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๊ธฐ๋ฅผ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. :hugs:

:pytorch:ํŒŒ์ดํ† ์น˜ ํ•œ๊ตญ ์‚ฌ์šฉ์ž ๋ชจ์ž„:kr:์ด ์ •๋ฆฌํ•œ ์ด ๊ธ€์ด ์œ ์šฉํ•˜์…จ๋‚˜์š”? ํšŒ์›์œผ๋กœ ๊ฐ€์ž…ํ•˜์‹œ๋ฉด ์ฃผ์š” ๊ธ€๋“ค์„ ์ด๋ฉ”์ผ:love_letter:๋กœ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค! (๊ธฐ๋ณธ์€ Weekly์ง€๋งŒ Daily๋กœ ๋ณ€๊ฒฝ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.)

:gift: ์•„๋ž˜:arrow_lower_right:์ชฝ์— ์ข‹์•„์š”:heart:๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๋ฉด ์ƒˆ๋กœ์šด ์†Œ์‹๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š”๋ฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค~ :star_struck:

1๊ฐœ์˜ ์ข‹์•„์š”