AutoGen【部署 03】部署AutoGenStudio 创建的 Agent Apps(Windows 代码调用 + Linux REST API部署测试)
部署AutoGenStudio 创建的 Agent Apps
- 1.Agent Apps 部署文件导出
- 2.Windows 环境测试
- 2.1 PyCharm 配置使用虚拟环境
- 2.2 Deploy 代码运行
- 3.Linux 环境测试
- 3.1 启动服务
- 3.2 接口调用测试
- 3.3 参数调整
- 4.总结
- 测试项目的 Gitee 地址:https://gitee.com/yuanzhengme/python_autogenstudio_test.git
Using AutoGen Studio Teams in Python Code and REST API
Prerequisites
- AutoGen Studio installed(如果没有安装可以之前的两篇部署流程说明)
1.Agent Apps 部署文件导出
You can reuse the declarative specifications of agent teams created in AutoGen studio in your python application by using the TeamManager class. . In TeamBuilder, select a team configuration and click download.
这次就选择这种方式,我们把上次使用本地大模型的 Team 配置导出:

导出后的文件 team-config.json部分内容如下:

- Build Your Team in Python, Export as JSON

2.Windows 环境测试
2.1 PyCharm 配置使用虚拟环境
- 新建的项目

- 打开旧的项目

2.2 Deploy 代码运行
AutoGen Studio 有 Deploy 的示例代码:

在 Pycharm 里创建 python 文件并复制代码:
from autogenstudio.teammanager import TeamManager
# Initialize the TeamManager
manager = TeamManager()
# Run a task with a specific team configuration
result = await manager.run(
task="What is the weather in New York?",
team_config="team.json"
)
print(result)
实际使用代码:
import asyncio
from autogenstudio.teammanager import TeamManager
async def test():
try:
# Initialize the TeamManager
manager = TeamManager()
# Run a task with a specific team configuration
result = await manager.run(
task="你是谁开发出来的模型?",
team_config="team-config.json"
)
print(result)
for i, message in enumerate(result.task_result.messages):
content = message.content.strip()
print(content)
except Exception as e:
print(e)
if __name__ == "__main__":
asyncio.run(test())
输出结果:
task_result=TaskResult(messages=[TextMessage(source='user', models_usage=None, metadata={}, content='你是谁开发出来的模型?', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=186, completion_tokens=61), metadata={}, content='我是来自阿里云的大规模语言模型,我叫通义千问。我是由预训练的超大规模语言模型"通义-千问"经过人工优化和迭代后构建的。如果您有任何疑问或需要帮助,请随时告诉我!如果有其他问题需要解答,请继续提问。', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=246, completion_tokens=1), metadata={}, content='', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=246, completion_tokens=8), metadata={}, content='请告诉我您的下一个任务需求。', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=253, completion_tokens=1), metadata={}, content='', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=253, completion_tokens=6), metadata={}, content='```
terminate
```', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=258, completion_tokens=1), metadata={}, content='', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=259, completion_tokens=20), metadata={}, content='如果是这种情况:
Terminate, 确实已经完成了。下一步的任务无需进行任何操作。', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=278, completion_tokens=17), metadata={}, content='如果还有其他问题或者要执行的操作,可以重新联系我进行交流。', type='TextMessage'), TextMessage(source='assistant_agent', models_usage=RequestUsage(prompt_tokens=294, completion_tokens=1), metadata={}, content='', type='TextMessage')], stop_reason='Maximum number of messages 10 reached, current message count: 10') usage='' duration=6.408564329147339
你是谁开发出来的模型?
我是来自阿里云的大规模语言模型,我叫通义千问。我是由预训练的超大规模语言模型"通义-千问"经过人工优化和迭代后构建的。如果您有任何疑问或需要帮助,请随时告诉我!如果有其他问题需要解答,请继续提问。
请告诉我您的下一个任务需求。
terminate
如果是这种情况:
Terminate, 确实已经完成了。下一步的任务无需进行任何操作。
如果还有其他问题或者要执行的操作,可以重新联系我进行交流。
3.Linux 环境测试
3.1 启动服务
Linux 环境下切换到已安装 AutoGen Studio的虚拟环境:

测试 Server a Team as a REST API的方式:
autogenstudio serve --team path/to/team.json --port 8084
查看帮助内容是个好习惯:
# 查询帮助文件
autogenstudio serve --help
# 输出内容
Usage: autogenstudio serve [OPTIONS]
Serve an API Endpoint based on an AutoGen Studio workflow json file.
Args:
team (str): Path to the team json file.
host (str, optional): Host to run the UI on. Defaults to 127.0.0.1 (localhost).
port (int, optional): Port to run the UI on. Defaults to 8084
workers (int, optional): Number of workers to run the UI with. Defaults to 1.
reload (bool, optional): Whether to reload the UI on code changes. Defaults to False.
docs (bool, optional): Whether to generate API docs. Defaults to False.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --team TEXT │
│ --host TEXT [default: 127.0.0.1] │
│ --port INTEGER [default: 8084] │
│ --workers INTEGER [default: 1] │
│ --reload │
│ --docs --no-docs [default: no-docs] │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
实际启动命令:
autogenstudio serve --team ./team-config.json --host xxx.xxx.x.xxx --port 8084 --workers 2 --docs
3.2 接口调用测试
浏览器地址栏输入 http://host:port/docs即可查看接口文档:

测试接口:

响应数据:
{
"message": "Task successfully completed",
"status": true,
"data": {
"task_result": {
"messages": [
{
"source": "user",
"models_usage": null,
"metadata": {}
},
{
"source": "assistant_agent",
"models_usage": {
"prompt_tokens": 183,
"completion_tokens": 31
},
"metadata": {}
},
... # 删除了一些数据
],
"stop_reason": "Maximum number of messages 10 reached, current message count: 10"
},
"usage": "",
"duration": 6.802065372467041
}
}
3.3 参数调整
导致 stop_reson:Maximum number of messages 10 reached, current message count: 10的原因是终止条件里配置的较小,启动 autogenstudio ui调整参数:

修改界面:

配置文件对应的配置信息:

4.总结
想要真正用起来,依然任重道远。











