1. 内容讲解
1.1 课程目标与内容概览
欢迎来到“AIGC 与多智能体(Multi-Agent)系统实战”课程!
本课程的核心目标是让你具备设计、开发和部署复杂 AI Agent 系统的能力。我们将不仅仅停留在理论层面,而是通过大量的实战编码,让你真正掌握当前最主流的三大 Agent 开发框架:LangChain、AutoGen 和 LlamaIndex。
- LangChain:作为最知名的 Agent 开发框架,它提供了一套完整的工具链,用于构建端到端的语言模型应用。我们将深入学习其核心组件,如 Chains、Agents 和 Tools,让你能够灵活地编排和控制 LLM 的行为。
- AutoGen:由微软开源,专注于简化和优化多智能体(Multi-Agent)对话工作流。它的核心思想是通过让多个具有不同角色的 Agent相互对话、协作,来完成复杂的任务。我们将学习如何设计和管理这些 Agent 团队。
- LlamaIndex:前身为 GPT Index,是构建和查询知识库(RAG - Retrieval-Augmented Generation)的利器。我们将学习如何利用它来为你自己的 Agent 注入私有知识,让它们能够基于特定领域的文档进行回答和分析。
整个课程将以 FastAPI 作为后端服务框架,将我们构建的 AI能力通过 API 的形式暴露出去,这是将 AI 应用产品化的关键一步。
1.2 AIGC 与多智能体系统简介
-
AIGC (AI-Generated Content):即人工智能生成内容。广义上,任何由 AI 创造的内容都属于 AIGC,例如我们熟知的 ChatGPT 生成的文本、Midjourney 生成的图片等。在我们的课程中,AIGC 更侧重于由 Agent 自动完成的、具有特定目标和结构的内容,例如生成一份市场分析报告、编写一段代码、或总结一篇复杂的学术论文。
-
多智能体系统 (Multi-Agent System):这是一个源自于分布式人工智能的概念。它指的是由多个自主的、能够相互通信的智能体(Agent)组成的系统。系统中的每个 Agent 都有自己的目标、知识和能力。它们通过协作、协商或竞争来解决单个 Agent 难以完成的复杂问题。这就像一个人类团队,有项目经理、程序员、测试工程师等不同角色,共同完成一个软件项目。AutoGen 正是实现这种理念的强大框架。
1.3 核心框架对比
框架 | 核心定位 | 优势 | 核心场景 |
---|---|---|---|
LangChain | 通用的 LLM 应用开发框架 | 生态完善、组件丰富、灵活性高 | 构建复杂的调用链、集成外部工具、单 Agent 逻辑控制 |
AutoGen | 多智能体对话与协作 | 简化多 Agent 编排、自动化协作流程 | 自动化任务、模拟人类团队协作、复杂问题分解 |
LlamaIndex | RAG 与知识库构建 | 专注于数据索引与检索、优化 RAG 流程 | 构建企业知识库、文档问答系统、为 Agent 提供知识 |
在实战中,这三者并非互斥,而是可以相互结合,发挥各自最大的优势。例如,我们可以用 LlamaIndex 构建知识库,用 LangChain 定义一个会使用该知识库的 Agent,再将这个 Agent 作为一名“专家”放入 AutoGen 的多智能体系统中与其他 Agent 协作。
1.4 Python 开发环境配置
为了保证项目依赖的纯净和隔离,强烈建议使用虚拟环境。你可以选择 venv
(Python 自带) 或 conda
(通常与 Anaconda/Miniconda 一起安装)。
使用 venv (推荐):
-
创建虚拟环境: 在你的项目根目录下打开终端,运行:
python3 -m venv venv
这会创建一个名为
venv
的文件夹,其中包含了独立的 Python 解释器和包管理工具。 -
激活虚拟环境:
- macOS / Linux:
source venv/bin/activate
- Windows:
.\venv\Scripts\activate
激活后,你会看到终端提示符前面出现了
(venv)
的字样,表示当前正处于虚拟环境中。 - macOS / Linux:
使用 conda:
-
创建虚拟环境:
conda create --name agent_env python=3.10
这里我们创建了一个名为
agent_env
,使用 Python 3.10 的环境。 -
激活虚拟环境:
conda activate agent_env
2. 代码示例
2.1 安装核心依赖
在激活虚拟环境后,我们可以开始安装本课程所需的核心 Python 包。为了方便管理,我们创建一个 requirements.txt
文件。
创建 requirements.txt
文件:
# FastAPI & Web Server
fastapi
uvicorn[standard]
# LLM & Agent Frameworks
langchain
autogen
llama-index
# OpenAI SDK (as one of the primary LLM providers)
openai
# For environment variables
python-dotenv
执行安装:
在终端中运行以下命令,pip 会自动读取文件并安装所有指定的库及其依赖项。
(venv) $ pip install -r requirements.txt
2.2 配置环境变量
为了安全地管理 API Keys(例如 OpenAI 的密钥),我们使用 .env
文件。
创建 .env
文件:
在项目根目录下创建该文件,切记不要将此文件提交到 Git 仓库。
OPENAI_API_KEY="sk-YourOpenAIKeyHere"
# 如果你使用第三方代理,可以配置 BASE_URL
# OPENAI_API_BASE="https://api.your-proxy.com/v1"
2.3 验证安装:一个简单的 FastAPI “Hello World”
让我们创建一个简单的 FastAPI 应用来验证环境是否配置成功。
创建 main.py
文件:
import uvicorn
from fastapi import FastAPI
# 创建 FastAPI 应用实例
app = FastAPI(
title="AIGC & Multi-Agent System API",
description="An API for our course project.",
version="0.1.0",
)
@app.get("/")
def read_root():
"""Root endpoint, returns a welcome message."""
return {"message": "Welcome to our AIGC & Multi-Agent System!"}
@app.get("/health")
def health_check():
"""Health check endpoint, returns status."""
return {"status": "ok"}
# 启动应用的入口
if __name__ == "__main__":
# uvicorn.run() 启动一个 ASGI 服务器
# "main:app" -> main.py 文件中的 app 实例
# --reload -> 代码更改时自动重启服务,方便开发
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)
启动服务:
在终端中运行:
(venv) $ python main.py
或者直接使用 uvicorn 命令:
(venv) $ uvicorn main:app --reload
你应该会看到类似以下的输出:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [xxxxx] using statreload
INFO: Started server process [xxxxx]
INFO: Waiting for application startup.
INFO: Application startup complete.
现在,打开浏览器访问 http://127.0.0.1:8000
,你应该能看到 {"message":"Welcome to our AIGC & Multi-Agent System!"}
。
同时,访问 http://127.0.0.1:8000/docs
,你将看到 FastAPI 自动生成的交互式 API 文档界面(Swagger UI),这是 FastAPI 的一大亮点。