티스토리 뷰

openai swarm

Swarm Note Github
https://github.com/lee-lou2/swarm

 

많은 사람들이 OpenAI의 Swarm을 사용할 때, OpenAI에서 제공하는 모델만 사용할 수 있다고 생각하기 쉽습니다. 하지만, 이는 사실이 아닙니다! Swarm은 OpenAI의 멀티 에이전트 오케스트레이션 프레임워크로, 다양한 외부 모델을 지원할 수 있습니다. Groq, Ollama와 같은 OpenAI API를 지원하는 모델을 활용하여 Swarm의 기능을 확장할 수 있죠. 이 글에서는 OpenAI Swarm에서 OpenAI 모델 외의 외부 모델을 사용하는 방법을 소개합니다.

 

기본 OpenAI 모델 사용 예시

우선, Swarm을 사용하여 OpenAI의 기본 모델을 사용하는 코드 예제를 살펴보겠습니다:

from swarm import Swarm, Agent

swarm_client = Swarm()

agent = Agent(
    name="Agent",
    instructions="You are a helpful agent.",
    model="gpt-4o-mini",
    tool_choice="auto",
)

messages = [{"role": "user", "content": "Hi!"}]
response = swarm_client.run(agent=agent, messages=messages)

print(response.messages[-1]["content"])

위 코드에서는 OpenAI의 gpt-4o-mini 모델을 사용하는 방법을 보여줍니다. Swarm 클라이언트를 초기화하고, 에이전트를 설정한 뒤, 사용자의 메시지에 대해 모델이 응답을 생성하게 합니다.

 

Groq 모델 사용 방법

Swarm은 OpenAI 모델에 한정되지 않고, Groq와 같은 외부 모델과도 연동할 수 있습니다. 아래는 Groq 모델을 사용하는 코드 예시입니다:

import os
import openai
from swarm import Swarm, Agent

# Groq 모델 설정
model = "llama3-groq-70b-8192-tool-use-preview"

llm_client = openai.OpenAI(
    base_url="https://api.groq.com/openai/v1",
    api_key=os.environ.get("GROQ_API_KEY"),
)

swarm_client = Swarm(client=llm_client)

agent = Agent(
    name="Agent",
    instructions="You are a helpful agent.",
    model=model,
    tool_choice="auto",
)

messages = [{"role": "user", "content": "Hi!"}]
response = swarm_client.run(agent=agent, messages=messages)

print(response.messages[-1]["content"])

위 예제에서는 Groq의 Llama 모델을 Swarm과 함께 사용하고 있습니다. openai.OpenAI 클래스에 Groq API의 base_url과 API 키를 설정하고, 이를 통해 Groq 모델과 상호작용하는 Swarm 클라이언트를 생성합니다. 이렇게 하면 OpenAI의 모델이 아닌 Groq 모델로도 Swarm을 실행할 수 있습니다.

 

Ollama 모델 사용 방법

비슷하게, Ollama와 같은 로컬 호스트 기반의 모델도 Swarm과 연동할 수 있습니다:

import os
import openai
from swarm import Swarm, Agent

# Ollama 모델 설정
model = "llama3.2"

llm_client = openai.OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama",
)

swarm_client = Swarm(client=llm_client)

agent = Agent(
    name="Agent",
    instructions="You are a helpful agent.",
    model=model,
    tool_choice="auto",
)

messages = [{"role": "user", "content": "Hi!"}]
response = swarm_client.run(agent=agent, messages=messages)

print(response.messages[-1]["content"])

위 코드에서는 Ollama 모델을 사용하여 Swarm 클라이언트를 설정하고 있습니다. base_url을 로컬 서버로 설정해 로컬에서 호스팅 중인 Ollama 모델을 사용하며, API 키로 "ollama"를 사용합니다. 이를 통해 로컬 서버의 모델과도 Swarm을 손쉽게 통합할 수 있습니다.

 

마무리

Swarm은 OpenAI의 모델만 사용하는 것이 아니라, GroqOllama와 같은 외부 모델도 사용할 수 있습니다. 이는 Swarm이 다양한 AI 모델과의 연동을 지원하며, 멀티 에이전트 시스템 구축에 있어 유연성을 제공한다는 점에서 큰 장점입니다.

이러한 유연성 덕분에 사용자는 특정 애플리케이션에 적합한 모델을 선택해 Swarm의 멀티 에이전트 구조를 활용할 수 있습니다. Swarm을 사용해 보고 다양한 모델로 에이전트를 확장하여 더욱 풍부한 AI 애플리케이션을 개발해 보세요!