AutoGen Studio 자주 묻는 질문

AutoGen Studio 자주 묻는 질문 (FAQ)

AutoGen Studio를 쓰면서 흔히 만나는 질문들을 정리했어요.

출처: 공식문서 - AutoGen Studio FAQ

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

더 알아보기 (Learn more)