AutoGen Studio 자주 묻는 질문
AutoGen Studio 자주 묻는 질문 (FAQ)
AutoGen Studio를 쓰면서 흔히 만나는 질문들을 정리했어요.
Q: 파일(예: 데이터베이스)을 저장할 디렉토리를 어떻게 지정하나요?
A: 애플리케이션을 실행할 때 --appdir 인자로 파일 저장 디렉토리를 지정할 수 있어요. 예를 들어 autogenstudio ui --appdir /path/to/folder처럼 쓰면, 기본 데이터베이스와 다른 파일들이 지정한 디렉토리(예: /path/to/folder/database.sqlite)에 저장돼요.
Q: AutoGen Studio에서 다른 모델을 쓸 수 있나요?
네. AutoGen은 openai 모델 API 형식에 표준화돼 있어서, OpenAI 호환 엔드포인트를 제공하는 어떤 API 서버든 쓸 수 있어요.
AutoGen Studio는 모델에도 적용되는 선언적 명세(declarative specification) 기반이에요. 에이전트는 model_client 필드를 가질 수 있고, 여기에 model, api_key, base_url, 모델 타입 등의 모델 엔드포인트 세부 정보를 지정해요. 모델 클라이언트를 파이썬으로 정의하고 JSON 파일로 덤프해 AutoGen Studio에서 쓰는 것도 가능해요.
아래 예시에서는 OpenAI, AzureOpenAI, 로컬 모델 클라이언트를 파이썬으로 정의하고 JSON으로 덤프해 볼게요.
from autogen_ext.models.openai import AzureOpenAIChatCompletionClient, OpenAIChatCompletionClient
from autogen_ext.models.anthropic import AnthropicChatCompletionClient
from autogen_core.models import ModelInfo
model_client=OpenAIChatCompletionClient(
model="gpt-4o-mini",
)
print(model_client.dump_component().model_dump_json())
az_model_client = AzureOpenAIChatCompletionClient(
azure_deployment="{your-azure-deployment}",
model="gpt-4o",
api_version="2024-06-01",
azure_endpoint="https://{your-custom-endpoint}.openai.azure.com/",
api_key="sk-...",
)
print(az_model_client.dump_component().model_dump_json())
anthropic_client = AnthropicChatCompletionClient(
model="claude-3-sonnet-20240229",
api_key="your-api-key", # Optional if ANTHROPIC_API_KEY is set in environment
)
print(anthropic_client.dump_component().model_dump_json())
mistral_vllm_model = OpenAIChatCompletionClient(
model="TheBloke/Mistral-7B-Instruct-v0.2-GGUF",
base_url="http://localhost:1234/v1",
model_info=ModelInfo(vision=False, function_calling=True, json_output=False, family="unknown", structured_output=True),
)
print(mistral_vllm_model.dump_component().model_dump_json())
OpenAI
{
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
"component_type": "model",
"version": 1,
"component_version": 1,
"description": "Chat completion client for OpenAI hosted models.",
"label": "OpenAIChatCompletionClient",
"config": { "model": "gpt-4o-mini" }
}
Azure OpenAI
{
"provider": "autogen_ext.models.openai.AzureOpenAIChatCompletionClient",
"component_type": "model",
"version": 1,
"component_version": 1,
"description": "Chat completion client for Azure OpenAI hosted models.",
"label": "AzureOpenAIChatCompletionClient",
"config": {
"model": "gpt-4o",
"api_key": "sk-...",
"azure_endpoint": "https://{your-custom-endpoint}.openai.azure.com/",
"azure_deployment": "{your-azure-deployment}",
"api_version": "2024-06-01"
}
}
Anthropic
{
"provider": "autogen_ext.models.anthropic.AnthropicChatCompletionClient",
"component_type": "model",
"version": 1,
"component_version": 1,
"description": "Chat completion client for Anthropic's Claude models.",
"label": "AnthropicChatCompletionClient",
"config": {
"model": "claude-3-sonnet-20240229",
"max_tokens": 4096,
"temperature": 1.0,
"api_key": "your-api-key"
}
}
Ollama, vLLM, LMStudio 같은 로컬 모델 서버가 OpenAI 호환 엔드포인트를 제공한다면 그걸 쓸 수도 있어요.
{
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
"component_type": "model",
"version": 1,
"component_version": 1,
"description": "Chat completion client for OpenAI hosted models.",
"label": "OpenAIChatCompletionClient",
"config": {
"model": "TheBloke/Mistral-7B-Instruct-v0.2-GGUF",
"model_info": {
"vision": false,
"function_calling": true,
"json_output": false,
"family": "unknown",
"structured_output": true
},
"base_url": "http://localhost:1234/v1"
}
}
커스텀 모델에 대해
model_info필드를 모델 클라이언트 명세에 반드시 추가해야 해요. 프레임워크가 모델을 올바르게 인스턴스화하고 사용하는 데 쓰이거든요. 또 AgentChat의AssistantAgent와 많은 에이전트는 모델이function_calling능력을 갖춰야 해요.
Q: 서버는 시작되는데 UI에 접속할 수 없어요
A: 서버를 원격 머신(또는 localhost를 제대로 해석하지 못하는 로컬 머신)에서 실행 중이라면 호스트 주소를 지정해야 해요. 기본적으로 호스트 주소는 localhost로 설정돼 있어요. --host <host> 인자로 호스트 주소를 지정할 수 있어요. 예를 들어 포트 8081에서 네트워크의 다른 머신에서 접근 가능하게 서버를 시작하려면:
autogenstudio ui --port 8081 --host 0.0.0.0
Q: AutoGen Studio를 다른 데이터베이스와 함께 쓰려면 어떻게 하나요?
A: 기본적으로 AutoGen Studio는 SQLite를 데이터베이스로 사용해요. 하지만 SQLModel 라이브러리를 사용해서 여러 데이터베이스 백엔드를 지원해요. PostgreSQL, MySQL처럼 SQLModel이 지원하는 어떤 데이터베이스든 쓸 수 있죠. 다른 데이터베이스를 쓰려면 애플리케이션 실행 시 --database-uri 인자로 데이터베이스의 연결 문자열을 지정해야 해요. 예를 들어:
- SQLite:
sqlite:///database.sqlite - PostgreSQL:
postgresql+psycopg://user:password@localhost/dbname - MySQL:
mysql+pymysql://user:***@localhost/dbname - AzureSQL:
mssql+pyodbc:///?odbc_connect=DRIVER%3D%7BODBC+Driver+17+for+SQL+Server%7D%3BSERVER%3Dtcp%3Aservername.database.windows.net%2C1433%3BDATABASE%3Ddatabasename%3BUID%3Dusername%3BPWD%3Dpassword123%3BEncrypt%3Dyes%3BTrustServerCertificate%3Dno%3BConnection+Timeout%3D30%3B
그다음 지정한 데이터베이스 URI로 애플리케이션을 실행할 수 있어요. 예를 들어 PostgreSQL을 쓰려면:
autogenstudio ui --database-uri postgresql+psycopg://user:password@localhost/dbname
참고: 선택한 데이터베이스에 맞는 드라이버를 설치해야 해요:
- PostgreSQL:
pip install psycopg2또는pip install psycopg2-binary- MySQL:
pip install pymysql- SQL Server/Azure SQL:
pip install pyodbc- Oracle:
pip install cx_oracle
Q: 에이전트 워크플로를 파이썬 앱에서 쓰도록 내보낼 수 있나요?
네. Team Builder 화면에서 팀을 선택하고 그 명세를 다운로드하면 돼요. 이 파일을 파이썬 애플리케이션에서 TeamManager 클래스로 가져올 수 있어요. 예를 들어:
from autogenstudio.teammanager import TeamManager
tm = TeamManager()
result_stream = tm.run(task="What is the weather in New York?", team_config="team.json") # or wm.run_stream(..)
load_component 메서드를 사용해 팀 명세를 AgentChat 객체로 로드할 수도 있어요.
import json
from autogen_agentchat.teams import BaseGroupChat
team_config = json.load(open("team.json"))
team = BaseGroupChat.load_component(team_config)
Q: AutoGen Studio를 Docker 컨테이너에서 실행할 수 있나요?
네. AutoGen Studio를 Docker 컨테이너에서 실행할 수 있어요. 제공된 Dockerfile로 Docker 이미지를 빌드하고 다음 명령으로 컨테이너를 실행하면 돼요:
FROM python:3.10-slim
WORKDIR /code
RUN pip install -U gunicorn autogenstudio
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH \
AUTOGENSTUDIO_APPDIR=/home/user/app
WORKDIR $HOME/app
COPY --chown=user . $HOME/app
CMD gunicorn -w $((2 * $(getconf _NPROCESSORS_ONLN) + 1)) --timeout 12600 -k uvicorn.workers.UvicornWorker autogenstudio.web.app:app --bind "0.0.0.0:8081"
성능 개선을 위해 애플리케이션 서버로 Gunicorn을 쓰는 걸 권장해요. AutoGen Studio를 Gunicorn으로 실행하려면:
gunicorn -w $((2 * $(getconf _NPROCESSORS_ONLN) + 1)) --timeout 12600 -k uvicorn.workers.UvicornWorker autogenstudio.web.app:app --bind