---
myst:
html_meta:
"description lang=zh-CN": |
AutoGen Studio 常见问题解答 - 一款用于构建和调试多agent系统的低代码工具
---
# 常见问题
## Q: 如何指定文件(如数据库)的存储目录?
A: 您可以通过在运行应用程序时设置 `--appdir` 参数来指定文件存储目录。例如:`autogenstudio ui --appdir /path/to/folder`。这会将数据库(默认)和其他文件存储在指定目录中,例如 `/path/to/folder/database.sqlite`。
## 问:能否在AutoGen Studio中使用其他模型?
可以。AutoGen标准化了OpenAI模型API格式,您可以使用任何提供OpenAI兼容端点的API服务器。
AutoGen Studio基于声明式规范,该规范同样适用于模型。Agents可以包含一个`model_client`字段,用于指定模型端点详细信息,包括`model`、`api_key`、`base_url`和`model type`。注意,您可以在Python中定义[模型客户端](https://microsoft.github.io/autogen/dev/user-guide/core-user-guide/components/model-clients.html),并将其转储为JSON文件供AutoGen Studio使用。
以下示例中,我们将用Python定义一个OpenAI、AzureOpenAI和本地模型客户端,并将它们转储为JSON文件。
```python
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", # 如果环境变量中设置了ANTHROPIC_API_KEY,此项可选
)
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
```json
{
"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
```json
{
"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
```json
{
"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"
}
}
```
是否拥有提供OpenAI兼容端点的本地模型服务器(如Ollama、vLLM或LMStudio)?您同样可以使用它们。
```json
{
"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"
}
}
```
```{caution}
重要提示:对于自定义模型,您必须在模型客户端规范中添加`model_info`字段。框架将利用此字段正确实例化并使用模型。此外,`AssistantAgent`和AgentChat中的许多其他agents要求模型具备`function_calling`能力。
```
## Q: 服务器已启动但无法访问UI界面
A: 如果您在远程机器(或无法正确解析localhost的本地机器)上运行服务器,可能需要指定主机地址。默认情况下,主机地址设置为`localhost`。您可以使用`--host `参数指定主机地址。例如,要在8081端口和本地地址上启动服务器,使其可从网络上的其他机器访问,可以运行以下命令:
```bash
autogenstudio ui --port 8081 --host 0.0.0.0
```
## Q: 如何使用其他数据库运行AutoGen Studio?
A: 默认情况下,AutoGen Studio使用SQLite作为数据库。但它使用支持多种数据库后端的SQLModel库。您可以使用SQLModel支持的任何数据库,如PostgreSQL或MySQL。要使用其他数据库,需要在运行应用程序时通过`--database-uri`参数指定数据库连接字符串。示例连接字符串包括:
- SQLite: `sqlite:///database.sqlite`
- PostgreSQL: `postgresql+psycopg://user:password@localhost/dbname`
- MySQL: `mysql+pymysql://user:password@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,可以运行以下命令:
```bash
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: 能否导出我的agent工作流用于Python应用?
可以。在Team Builder视图中,选择某个团队并下载其配置文件。该文件可通过`TeamManager`类导入到Python应用中。例如:
```python
from autogenstudio.teammanager import TeamManager
tm = TeamManager()
result_stream = tm.run(task="纽约天气如何?", team_config="team.json") # 或使用wm.run_stream(..)
```
也可以通过`load_component`方法将团队配置加载为AgentChat对象:
```python
import json
from autogen_agentchat.teams import BaseGroupChat
team_config = json.load(open("team.json"))
team = BaseGroupChat.load_component(team_config)
```
## Q: 能否在Docker容器中运行AutoGen Studio?
可以。您可以使用提供的[Dockerfile](https://github.com/microsoft/autogen/blob/autogenstudio/samples/apps/autogen-studio/Dockerfile)构建Docker镜像,并通过以下命令运行容器:
```bash
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时可以使用以下命令:
```bash
gunicorn -w $((2 * $(getconf _NPROCESSORS_ONLN) + 1)) --timeout 12600 -k uvicorn.workers.UvicornWorker autogenstudio.web.app:app --bind
```