현존하는 최고의 LLM API인 OpenAI의 llm API들!!
이들은 함수를 호출하는 function calling 기능을 제공해서
agent로서의 가능성을 보여주었었는데요!!
2024.01.24 - [데이터&AI/LLM] - GPT API 의 Function Calling 기능 알아보기!! (feat. Python)
이런 function calling 기능을 기반으로!!
multi-agent의 새로운 방향을 제시하는
multi-agent framework "Swarm" 을 제시했습니다!
https://the-decoder.com/openai-introduces-experimental-multi-agent-framework-swarm/
그리고 git을 통해 코드를 모두 공개했는데요~!
오늘은 이 swarm 코드를 간단한 예시를 통해 알아보겠습니다!!
https://github.com/openai/swarm
1. 코드 설치
아직. pip 패키지와 되어있지 않기에, git으로부터 pip install을 진행합니다!
!pip install git+ssh://git@github.com/openai/swarm.git
2. OpenAI Key 설정
> swarm은 openAI기반으로 이루어지기에, api 키가 필요합니다!
키를 등록하는것엔 2가지 방법이있습니다.
방법1) 파이썬내에서 입력해두기
import os
os.environ['OPENAI_API_KEY'] = '{내 키 입력}'
방법2) 서버 내에 박아두기!! : 우분투 서버의 환경변수로 입력해 둡니다!!
export OPENAI_API_KEY='your_openai_api_key_here'
3. 본격 swam 시작!!
from swarm import Swarm, Agent
client = Swarm()
def transfer_to_drfirst():
return agent_drfirst
# 에이전트 A 설정
agent_a = Agent(
name="Agent A",
instructions="당신은 친절한 에이전트입니다.", # "도움이 되는 에이전트가 되세요."
functions=[transfer_to_drfirst], # 에이전트 B로 전달하는 함수 포함
)
# 에이전트 B 설정
agent_drfirst = Agent(
name="일등박사",
instructions="'일등박사 등장' 라고만 이야기하세요.", # "하이쿠로만 말하세요."
)
위 코드를 간단히 소개해보겠습니다!
swarm 내에는 2개의 agent로 구성되어있습니다!
> agent_a : 친절한 에이전트. 사용자에게 잘 답변한다!! 필요한 경우 transfer_to_drfirst 함수를 호출한다!
<agent_drfirst : 일등박사 에이전트로 무조건 "일등박사 등장" 이라고만 말한다!
이제 한번 에이젠트를 테스트해볼까요!?
질문 : 미국의 초대대통령은?
# 에이전트 A를 사용하여 대화 실행
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "미국의 초대 대통령은 누구야?!"}], # "에이전트 B와 대화하고 싶습니다."
)
response
이미 gpt에서 잘 답변하듯!!
agent_a는 친절한 에이전트로서 잘 답변해줍니다!!
이제다음 질문을 해볼까요!?
질문 : 일등박사랑 대화하고싶어!!
# 에이전트 A를 사용하여 대화 실행
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "일등박사랑 대화하고싶어!!"}], # "에이전트 B와 대화하고 싶습니다."
)
# 마지막 메시지의 내용을 출력
print(response.messages[-1]["content"]) # 마지막 대화 내용 출력
response
그럼 어떻게되어야할까요!?
우리는 agent_a에 일등박사랑 대화하고싶다고했으니!!
agent_a가 일등박사에게 연결해주고 일등박사의 답변을 듣게되어야하는데!?
잘 동작합니다!!
구조를 이해해 본다면!? 아래와 같겠죠!?^^
지금까지 swarm의 간단한 예시를 알아보았습니다.
+ tip. GPT 모델정하기!!
아래와 같은 방법으로 agent을 선언했었느데요!!
# 에이전트 A 설정
agent_a = Agent(
name="Agent A",
instructions="당신은 친절한 에이전트입니다.", # "도움이 되는 에이전트가 되세요."
functions=[transfer_to_drfirst], # 에이전트 B로 전달하는 함수 포함
)
이렇게하면 모델은 기본 모델인 gpt-4o로 정해집니다!
모델을 바꾸고싶다면?
# 에이전트 A 설정
agent_a = Agent(
name="Agent A",
model='gpt-4o-mini'
instructions="당신은 친절한 에이전트입니다.", # "도움이 되는 에이전트가 되세요."
functions=[transfer_to_drfirst], # 에이전트 B로 전달하는 함수 포함
)
이렇게! 해서 4o 보다 저렴한 4o-mini로 agent_a를 운영할 수 있겟지요!?
'데이터&AI > LLM' 카테고리의 다른 글
[realtime GPT를 쓰기위한 사전학습]pyaudio이해하기① (마이크 음성을 데이터로 전환!!!) (1) | 2024.10.22 |
---|---|
OpenAI의 멀티에이전트 framework SWARM 활용! (example. 페스트푸트 매장 상황) (1) | 2024.10.21 |
Gpt realtime Python으로 구현하기!! (0) | 2024.10.19 |
오픈소스모델(qwen2-VL)로 동영상 분석하기!! (GPU야!!!) (3) | 2024.10.16 |
gpt-4o 모델을 fine-tuning 하기!!! (python API 활용해서!) (0) | 2024.10.15 |
댓글