【Azure 架构师学习笔记 】- Azure AI(22) -AI知识库Agent平台(1)- 项目启动及基础搭建

本文属于【Azure 架构师学习笔记】系列。

本文属于【Azure AI】系列。

接上文 【Azure 架构师学习笔记 】- Azure AI(21) - Azure Agent进阶优化

前言

接下来打算用几篇文章来演示一个知识库Agent平台的搭建。把它当成一个"项目"来做。

一、整体规划

  1. 项目总内容:围绕企业级AI知识库Agent平台核心功能,分8步完成基础搭建与RAG核心落地。 全程优先使用免费工具/系统自带工具。
  2. 8步计划及当前进度:
  • 第1步:项目初始化与需求拆解(当前进度:正在推进)
  • 第2步:文档处理模块升级(从单文件到批量+标准化,复用免费工具)
  • 第3步:RAG核心------文档分块策略
  • 第4步:向量嵌入与向量数据库实操(Milvus,开源免费,搭配免费可视化工具)
  • 第5步:RAG闭环实现(检索+生成+幻觉优化,用免费工具调试)
  • 第6步:混合检索(向量+关键词)优化检索效果(基于免费工具扩展)
  • 第7步:多轮问答与记忆系统升级(无需付费LLM,可适配开源免费模型)
  • 第8步:项目复盘与优化(架构思维培养,用免费工具整理复盘报告)
  1. 当前所处步骤:第1步 项目初始化与需求拆解(核心目标:完成项目初始化全流程,包括需求拆解、基础架构设计、开发环境搭建,衔接已有Azure OpenAI配置;)

二、第1步:项目初始化与需求拆解

一、讲解

第一天核心目标:完成「项目初始化全流程」,包括需求拆解、基础架构设计、开发环境搭建,无需额外找资料,跟着步骤走即可完成;全程优先使用系统自带工具、开源免费工具,无需付费,耗时1.5-2小时。

(一)需求拆解:企业级AI知识库Agent平台

需求拆解是架构师的核心能力,不能只列功能,要区分「功能需求」和「非功能需求」,同时结合已有的技术储备,避免冗余开发;可借助系统自带的记事本/备忘录(Windows记事本、Mac备忘录)或免费工具(如Notion、飞书文档)整理需求,无需复杂工具,简单记录即可。

  1. 功能需求:
  • 文档批量上传:复用前面Word/PDF/TXT读取能力,新增Excel读取,支持文件夹批量上传,无需手动单个处理;后续实操可用系统自带的文件管理器辅助批量筛选文件。
  • 文档分块:解决长文档语义丢失问题,为后续向量存储做准备;可借助免费工具(如Notepad++)模拟分块逻辑。
  • 向量存储:将分块后的文本转换为向量,存入Milvus(向量库,开源免费),实现精准检索;Milvus可免费部署。
  • 智能检索:先实现基础向量检索,后续升级为混合检索(向量+关键词),适配实际检索场景;检索调试可用免费工具(如Postman免费版)辅助。
  • 多轮问答:对话记忆能力,实现上下文关联,无需用户重复提问;若暂无Azure OpenAI,可替换为开源免费LLM(如Llama 3、Qwen)。
  • 总结导出:支持将问答结果、文档总结导出为Excel/TXT,贴合办公场景需求;导出功能用Python自带库实现。
  1. 非功能需求:
  • 高可用:避免单点故障(如LLM调用失败、向量库崩溃),后续通过Docker/K8s实现(Docker免费,K8s开源免费)。
  • 高并发:支持多用户同时上传、检索,后续通过批量处理、缓存优化实现;缓存可用Python自带的缓存库。
  • 低延迟:检索+生成响应时间控制在1-2秒内,后续通过推理优化、索引优化实现;索引优化用Milvus自带功能。
  • 可监控:能实时查看LLM调用状态、检索效果、系统报错,后续通过LLMOps实现(用开源免费工具Prometheus+Grafana)。
  • 可扩展:支持后续添加权限管理、多租户、多Agent协作等功能,架构设计时预留扩展空间;扩展逻辑可用免费绘图工具绘制,方便后续对接。
  • 成本可控:优化LLM调用Token消耗、向量库存储成本,后续通过缓存、量化实现。

(二)项目架构设计

架构设计无需复杂,重点是「模块化拆分」(高内聚、低耦合),让每个模块职责清晰,后续可独立扩展,同时衔接已有的技术能力;架构图优先使用免费/自带工具绘制,推荐3种免费方案。

  1. 免费绘图工具推荐(3种方案,均免费、易操作,适配新手):
  • 方案1:系统自带工具(零成本,无需安装)------ Windows用「画图3D」,Mac用「预览」自带的绘图功能。
  • 方案2:开源免费工具(功能完善)------ DrawIO(浏览器在线使用,支持导出PNG、PDF,架构师常用),官网:https://app.diagrams.net/,无需注册即可使用。
  • 方案3:办公软件自带功能(复用性强)------ WPS/Office自带的「SmartArt」或「绘图」功能,简单拖拽模块,即可快速绘制模块化架构图,适合习惯用办公软件的同学。
  1. 核心架构图:
    核心架构(分层清晰,用免费工具拖拽模块即可绘制,标注每个层的核心职责):
    用户层 → 应用层 → 核心层 → 基础层 → 存储层
  • 用户层:简化版Web界面。
  • 应用层:封装用户交互逻辑(文件上传入口、问答输入框、结果展示、导出功能);用Python自带库实现。
  • 核心层:3个核心模块(文档处理模块、RAG模块、Agent模块),每个模块独立封装,可单独优化;模块逻辑用如DrawIO绘制模块依赖图。
  • 基础层:Python、Azure OpenAI(可替换为开源免费LLM:Llama 3、Qwen)、LangChain(开源免费)。
  • 存储层:Milvus(开源免费,向量存储)、本地文件存储、配置文件存储(本地文件)。
  1. 架构图绘制步骤(以DrawIO为例):
  • 第一步:打开DrawIO官网(https://app.diagrams.net/),无需注册,直接点击「开始绘制」,选择「空白绘图」。

  • 第二步:在左侧「形状」栏,选择「矩形」,拖拽5个矩形到画布,分别命名为「用户层」「应用层」「核心层」「基础层」「存储层」,按从上到下的顺序排列。

  • 第三步:用左侧「连接线」工具,连接5个层(用户层→应用层→核心层→基础层→存储层),标注箭头方向,体现层级依赖关系。

  • 第四步:绘制完成后,点击顶部「文件」→「导出为」,选择PNG格式,保存到项目根目录,后续可插入文档或面试时展示。

  1. 核心模块职责:
  • 文档处理模块:负责文件读取、批量处理、格式标准化、文档分块(复用文件处理能力,用Python自带库+免费工具辅助)。
  • RAG模块:负责向量嵌入、向量检索、检索+生成闭环、幻觉优化(基于Milvus开源免费向量库)。
  • Agent模块:负责多轮问答、记忆管理、工具调用(可适配开源免费LLM,降低成本)。

(三)开发环境搭建

复用已有的Python环境、Azure配置(若暂无,可后续替换为开源免费LLM),重点新增Milvus向量库安装,全程标注常见报错及解决方案,确保一次性成功;所有工具均为免费/开源,无需付费。

  1. 环境前提(确认你已具备,无需重复安装,均为免费工具/组件):
  • Python 3.9-3.11(推荐3.10,开源免费,官网可直接下载,避免版本过高导致依赖包报错)。
  • 已配置Azure OpenAI(若暂无,可先跳过,后续用开源免费LLM替换),拥有Endpoint、API Key、部署名(GPT-4、text-embedding-3-large)。
  • 已安装基础依赖包:openpyxl(Excel读取,开源免费)、PyPDF2(PDF读取,开源免费)、python-docx(Word读取,开源免费)、requests(API调用,Python自带,免费)。
  1. 新增依赖包安装:
powershell 复制代码
# 核心依赖(LangChain:简化Agent/RAG开发,开源免费;pymilvus:Milvus客户端,开源免费)
pip install langchain==0.1.10 pymilvus==2.4.4
# 辅助依赖(日志、配置文件解析,均开源免费)
pip install python-dotenv loguru
# 后续文档处理、检索辅助依赖(提前安装,避免后续重复操作,均开源免费)
pip install whoosh sentence-transformers
  1. Milvus向量库安装(两种方式,选一种即可,推荐方式1,简单易操作,开源免费):
方式1:Docker Compose安装(推荐,无需配置复杂环境,适合新手;Docker免费,Milvus开源免费)
  • 第一步:安装Docker和Docker Compose(已安装可跳过)
  • Windows:安装Docker Desktop(官网下载,免费版足够用,勾选"Use WSL 2 instead of Hyper-V"),安装完成后启动Docker。
  • Mac:安装Docker Desktop(官网下载,免费版足够用),启动后在偏好设置中开启Docker Compose。
  • 第二步:创建Milvus配置文件(docker-compose.yml),用系统自带的记事本(Windows)、文本编辑(Mac)或免费工具(Notepad++)编写。
  • 创建根目录命名:enterprise-ai-knowledge-agent(企业级AI知识库Agent平台)
  • 新建一个文件夹(命名为milvus),在文件夹中创建文件docker-compose.yml,复制以下内容(直接复制,无需修改):
yaml 复制代码
version: '3.5'
services:
  etcd:
    image: quay.io/coreos/etcd:v3.5.5
    container_name: milvus-etcd
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
    command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379

  minio:
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    container_name: milvus-minio
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/data
    command: minio server /data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  milvus:
    image: milvusdb/milvus:v2.4.4
    container_name: milvus-standalone
    command: ["milvus", "run", "standalone"]
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - etcd
      - minio
  • 第三步:启动Milvus
  • 确保docker服务启动。
  • cmd 进入milvus文件夹,执行命令:docker-compose up -d
  • 启动成功后,执行命令:docker ps,能看到3个容器(milvus-etcd、milvus-minio、milvus-standalone),状态为started即可。


方式2:本地安装(适合有一定环境配置经验的,略复杂,不推荐第一天尝试;)
  1. 常见报错及解决方案:
  • 报错1:Docker启动失败(Windows)→ 解决方案:开启WSL 2,重启Docker,若仍失败,卸载Docker重新安装,勾选WSL 2选项。
  • 报错2:Milvus容器启动后立即退出 → 解决方案:检查端口19530、9091是否被占用,执行命令(Windows):netstat -ano | findstr "19530",找到占用进程并结束,再重启Milvus;同时注意,若访问http://127.0.0.1:2379 或 http://0.0.0.0:2379 提示"invalid link",属于正常现象,该地址为Milvus内部依赖(etcd)的访问地址,无需手动访问,只需确认Milvus容器正常运行即可。
  • 报错3:pip安装依赖包失败 → 解决方案:更换镜像源,执行命令:pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple;若访问该镜像源提示"link fetch error",可更换为其他免费镜像源(如阿里云:https://mirrors.aliyun.com/pypi/simple/),均为免费可用。
  • 报错4:Azure配置无法连接 → 解决方案:检查Endpoint、API Key是否正确,确认部署名与代码中一致,检查网络是否能访问Azure服务;若访问Azure Endpoint(如https://xxx.openai.azure.com/)提示"link dead",需确认Endpoint地址是否正确、网络是否通畅,若暂无Azure,可后续替换为开源免费LLM(如Llama 3)。
  1. 环境验证(第一天收尾,确保所有环境正常,用免费工具辅助验证):
    编写简单测试代码,验证Python环境、Azure OpenAI(或开源LLM)、Milvus是否能正常连接,代码直接复制粘贴即可运行;验证过程中可使用系统自带的命令行、免费的代码编辑器(如VS Code免费版、Notepad++)编写代码。

二、实操实践

实操核心:搭建规范的项目目录、整合配置文件、验证环境,确保第一天就能完成项目初始化;所有实操工具均为免费/自带,无需额外付费。

(一)项目目录搭建

目录结构决定项目的可扩展性,避免后续代码混乱,严格按照以下结构创建,每个文件夹的作用已标注,无需额外新增文件夹;创建目录用系统自带的文件管理器(Windows资源管理器)。

  1. 新建项目根目录(命名规范):
    根目录命名:enterprise-ai-knowledge-agent(企业级AI知识库Agent平台)
  2. 新建子文件夹及文件(逐一创建,不要遗漏):
    enterprise-ai-knowledge-agent/ # 根目录
    ├── config/ # 配置文件(Azure、向量库、数据库)
    │ ├── init .py # 空文件,标记为Python包
    │ └── config.yaml # 配置文件,存储所有配置信息(核心)
    ├── core/ # 核心模块(RAG、Agent、文档处理)
    │ ├── init .py
    │ ├── rag/ # RAG模块(后续实现)
    │ │ └── init .py
    │ ├── agent/ # Agent模块(后续实现)
    │ │ └── init .py
    │ └── document/ # 文档处理模块(后续实现)
    │ └── init .py
    ├── llm/ # LLM调用(Azure OpenAI、开源免费LLM)
    │ ├── init .py
    │ └── azure_llm.py # Azure OpenAI调用封装(可替换为开源LLM)
    ├── storage/ # 存储模块(向量库、文件存储)
    │ ├── init .py
    │ └── milvus_client.py # Milvus客户端封装
    ├── utils/ # 工具类(容错、日志、通用函数)
    │ ├── init .py
    │ └── logger.py # 日志工具
    ├── app/ # 应用层(简化版Web界面)
    │ ├── init .py
    │ └── app.py # 基础Web界面(Flask开源免费)
    ├── llmops/ # LLMOps模块(后续升级,用开源免费工具)
    │ └── init .py
    ├── main.py # 项目入口(验证环境)
    └── requirements.txt # 依赖包清单(第一天生成)
  1. 生成requirements.txt(后续部署、复用方便,用系统自带命令行执行):
    打开命令行,进入项目根目录,执行命令:pip freeze > requirements.txt,生成依赖包清单,后续重新部署时可直接执行pip install -r requirements.txt安装所有依赖;命令行是系统自带工具,无需额外安装。

(二)配置文件整合

将Azure OpenAI、Milvus的配置集中管理,实现一键加载,避免后续代码中硬编码;配置文件用系统自带的记事本(Windows)、文本编辑(Mac)或免费工具(Notepad++)编写。

  1. 编辑config/config.yaml文件(复制以下内容,替换为你的实际配置):
yaml 复制代码
# Azure OpenAI 配置(替换为你的实际信息;若暂无,可后续替换为开源免费LLM)
azure:
  openai:
    endpoint: "你的Azure OpenAI Endpoint"  # 例:https://xxx.openai.azure.com/(若提示link dead,检查地址正确性)
    api_key: "你的Azure API Key"
    deployment_name_gpt4: "你的GPT-4部署名"  # 例:gpt-4
    deployment_name_embedding: "你的Embedding部署名"  # 例:text-embedding-3-large
    api_version: "2024-02-15-preview"  # 固定版本,无需修改

# Milvus 配置(默认无需修改,若修改过Milvus端口,对应调整)
milvus:
  host: "localhost"
  port: 19530
  collection_name: "enterprise_knowledge_base"  # 向量库集合名,后续存储向量用
  vector_dim: 3072# 与Embedding模型维度一致(text-embedding-3-large为3072)

# 项目基础配置
project:
  file_upload_path: "./uploads"  # 上传文件存储路径
  log_path: "./logs"  # 日志存储路径
  similarity_threshold: 0.7  # 检索相似度阈值(后续用)
  1. 配置文件加载封装(编写utils/init.py,实现一键加载配置,用免费代码编辑器编写):
python 复制代码
import yaml
import os

def load_config(config_path: str = "./config/config.yaml") -> dict:
    """
    加载配置文件
    :param config_path: 配置文件路径
    :return: 配置字典
    """
    if not os.path.exists(config_path):
        raise FileNotFoundError(f"配置文件不存在:{config_path}")
    with open(config_path, "r", encoding="utf-8") as f:
        config = yaml.safe_load(f)
    return config

# 全局配置,后续其他模块可直接导入使用
CONFIG = load_config()

(三)核心工具封装(第一天简化实现,后续逐步优化)

封装Azure OpenAI调用、Milvus客户端、日志工具,避免重复编码,贴合"复用、模块化"思维;所有封装依赖均为开源免费。

  1. 日志工具(utils/logger.py):简化实现,方便后续调试、排查问题,用开源免费库loguru实现)
python 复制代码
from loguru import logger
import os
from utils import CONFIG

# 创建日志目录
log_path = CONFIG["project"]["log_path"]
if not os.path.exists(log_path):
    os.makedirs(log_path)

# 配置日志:输出到文件+控制台,按天分割
logger.add(
    os.path.join(log_path, "app_{time:YYYY-MM-DD}.log"),
    rotation="00:00",  # 每天分割日志
    retention="7 days",  # 保留7天日志
    compression="zip",  # 压缩过期日志
    encoding="utf-8"
)

# 简化日志调用,后续直接从utils导入logger即可
logger.info("日志工具初始化完成")
  1. Azure OpenAI调用封装(llm/azure_llm.py,复用你已学的调用逻辑;若暂无Azure,可替换为开源免费LLM)
python 复制代码
from openai import AzureOpenAI
from utils import CONFIG
from utils.logger import logger

class AzureLLMClient:
    def __init__(self):
        """初始化Azure OpenAI客户端;若暂无Azure,可替换为Llama 3等开源免费LLM"""
        self.client = AzureOpenAI(
            azure_endpoint=CONFIG["azure"]["openai"]["endpoint"],
            api_key=CONFIG["azure"]["openai"]["api_key"],
            api_version=CONFIG["azure"]["openai"]["api_version"]
        )
        self.gpt4_deployment = CONFIG["azure"]["openai"]["deployment_name_gpt4"]
        self.embedding_deployment = CONFIG["azure"]["openai"]["deployment_name_embedding"]
        logger.info("Azure OpenAI客户端初始化完成;若提示link dead,检查Endpoint地址和网络")

    def get_embedding(self, text: str) -> list:
        """
        获取文本的Embedding向量
        :param text: 输入文本
        :return: 向量列表
        """
        try:
            response = self.client.embeddings.create(
                input=text,
                model=self.embedding_deployment
            )
            return response.data[0].embedding
        except Exception as e:
            logger.error(f"获取Embedding失败:{str(e)};若Azure无法连接,可后续替换为开源免费Embedding模型")
            raise e

    def chat_completion(self, prompt: str) -> str:
        """
        GPT-4对话生成
        :param prompt: 提示词
        :return: 生成的回答
        """
        try:
            response = self.client.chat.completions.create(
                model=self.gpt4_deployment,
                messages=[{"role": "user", "content": prompt}],
                temperature=0.7  # 温度参数,后续可优化
            )
            return response.choices[0].message.content
        except Exception as e:
            logger.error(f"GPT-4调用失败:{str(e)};若Azure无法连接,可后续替换为Llama 3等开源免费LLM")
            raise e

# 全局客户端,后续其他模块可直接导入使用
AZURE_LLM_CLIENT = AzureLLMClient()
  1. Milvus客户端封装(storage/milvus_client.py,第一天简化实现,能连接即可;Milvus开源免费)
python 复制代码
from pymilvus import MilvusClient, CollectionSchema, FieldSchema, DataType
from utils import CONFIG
from utils.logger import logger

class MilvusStorage:
    def __init__(self):
        """初始化Milvus客户端,创建集合(若不存在);Milvus开源免费,无需付费授权"""
        self.client = MilvusClient(
            uri=f"http://{CONFIG['milvus']['host']}:{CONFIG['milvus']['port']}"
        )
        self.collection_name = CONFIG["milvus"]["collection_name"]
        self.vector_dim = CONFIG["milvus"]["vector_dim"]
        # 检查集合是否存在,不存在则创建
        self._create_collection_if_not_exist()
        logger.info("Milvus客户端初始化完成;无需访问http://127.0.0.1:2379,容器正常运行即可")

    def _create_collection_if_not_exist(self):
        """创建Milvus集合(若不存在)"""
        if not self.client.has_collection(collection_name=self.collection_name):
            # 定义集合字段:id(主键)、text(分块文本)、vector(向量)、doc_name(文档名称)
            fields = [
                FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
                FieldSchema(name="text", dtype=DataType.VARCHAR, max_length=4096),
                FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=self.vector_dim),
                FieldSchema(name="doc_name", dtype=DataType.VARCHAR, max_length=255)
            ]
            schema = CollectionSchema(fields=fields, description="企业级AI知识库向量集合")
            self.client.create_collection(collection_name=self.collection_name, schema=schema)
            logger.info(f"Milvus集合 {self.collection_name} 创建完成")
        else:
            logger.info(f"Milvus集合 {self.collection_name} 已存在")

# 全局客户端,后续其他模块可直接导入使用
MILVUS_CLIENT = MilvusStorage()

(四)项目入口实现(main.py,第一天核心验证,运行即完成初始化)

python 复制代码
from utils.logger import logger
from llm.azure_llm import AZURE_LLM_CLIENT
from storage.milvus_client import MILVUS_CLIENT
from utils import CONFIG

def main():
    """项目入口,验证环境是否正常;用系统自带命令行运行"""
    logger.info("="*50)
    logger.info("企业级AI知识库Agent平台 - 第一天环境验证")
    logger.info("="*50)

    # 1. 验证配置加载
    logger.info("1. 验证配置加载...")
    try:
        logger.info(f"Azure Endpoint:{CONFIG['azure']['openai']['endpoint'][:20]}...(若提示link dead,检查地址和网络)")
        logger.info(f"Milvus 地址:{CONFIG['milvus']['host']}:{CONFIG['milvus']['port']}(无需访问http://127.0.0.1:2379)")
        logger.info("配置加载成功")
    except Exception as e:
        logger.error(f"配置加载失败 ❌:{str(e)}")
        return

    # 2. 验证Azure OpenAI调用(若暂无Azure,可跳过,后续替换为开源免费LLM)
    logger.info("\n2. 验证Azure OpenAI调用...")
    try:
        # 测试Embedding调用
        test_text = "AI架构师必备技能"
        embedding = AZURE_LLM_CLIENT.get_embedding(test_text)
        logger.info(f"Embedding生成成功,向量维度:{len(embedding)}")
        # 测试GPT-4调用
        test_prompt = "简要介绍AI知识库Agent平台的核心功能"
        response = AZURE_LLM_CLIENT.chat_completion(test_prompt)
        logger.info(f"GPT-4调用成功,回答:{response[:50]}...")
        logger.info("Azure OpenAI调用成功 ✅")
    except Exception as e:
        logger.error(f"Azure OpenAI调用失败 ❌:{str(e)};可后续替换为Llama 3等开源免费LLM")
        return
    
# 3. 验证Milvus连接
    try:
        logger.info("3. 验证Milvus连接...")
        MILVUS_CLIENT.client.list_collections()
        logger.info("Milvus连接成功 :服务正常运行")
    except Exception as e:
        logger.error(f"Milvus连接失败 ❌:{str(e)}")
        return

    logger.info("\n" + "="*50)
    logger.info("第一天环境验证全部通过!项目初始化完成 ")
    logger.info("后续将逐步实现文档处理、RAG等核心模块")

if __name__ == "__main__":
    main()

整体调用:

(五)环境验证(第一天收尾,确保所有功能正常,用免费工具辅助)

  1. 运行main.py:打开系统自带命令行,进入项目根目录,执行命令:python main.py;。
  2. 验证结果:若控制台输出"第一天环境验证全部通过!项目初始化完成",且无报错,说明第一天实操全部完成。
  3. 常见问题排查(结合用户提供的报错信息,补充免费解决方案):
  • 若提示"找不到模块":检查目录结构是否正确,确保每个文件夹都有__init__.py文件,运行时确保当前目录是项目根目录;用系统自带文件管理器检查目录,免费工具(Notepad++)查看文件内容。
  • 若Azure调用失败/提示"link dead":检查config.yaml中的Azure Endpoint是否正确,确认API Key未过期,网络能访问Azure服务;若暂无Azure,可后续替换为开源免费LLM(如Llama 3),无需付费。
  • 若Milvus调用失败/访问http://127.0.0.1:2379 提示"invalid link":检查Milvus容器是否正常运行(docker ps查看),确保host和port与配置一致;该地址为Milvus内部依赖地址,无需手动访问,容器正常即可。
  • 若pip安装依赖提示"link fetch error":更换免费镜像源(如阿里云、豆瓣镜像源),执行命令:pip install 包名 -i https://mirrors.aliyun.com/pypi/simple/。
  • 配置加载成功:Endpoint、Milvus 地址都正确加载
  • Azure OpenAI 调用成功:Embedding 生成成功(维度 3072,和 text-embedding-3-large完全匹配),GPT-4 调用成功,返回了完整回答。
  • Milvus 连接成功:服务正常运行,集合已存在

验证已经覆盖了所有核心依赖:

  1. Python 环境与依赖:pymilvus、openai 等库正常导入
  2. 配置文件:yaml 解析无误,敏感信息正确
  3. Azure OpenAI 服务:Embedding + Chat 双接口可用
  4. Milvus 向量数据库:容器运行正常,客户端连接成功

小结

第一天核心是「项目初始化」,重点不在于实现复杂功能,而在于搭建规范的架构、完成环境验证,同时培养架构思维;

  1. 掌握企业级AI项目的需求拆解方法:能区分功能需求与非功能需求,结合自身技术储备拆解需求,避免冗余开发,可借助系统自带工具、免费工具整理需求。
  2. 理解模块化架构设计思路:将项目拆分为核心层、基础层、存储层等,每个模块独立封装,实现"高内聚、低耦合",能用工具(如DrawIO)绘制架构图,为后续扩展打下基础。
  3. 完成开发环境全流程搭建:熟练安装Milvus向量库(Docker方式),整合Azure OpenAI配置(可替换为开源免费LLM),解决常见环境报错(如invalid link、link fetch error),具备环境部署能力,且全程无额外成本。
  4. 掌握配置文件集中管理、工具类封装的技巧:避免硬编码,提升代码复用性和可维护性,贴合架构师编码规范;用免费工具编写配置文件、代码,降低实操成本。
  5. 实现环境验证闭环:能通过代码验证各模块是否正常工作,培养故障排查思维;借助系统自带命令行排查问题。
相关推荐
c萱2 分钟前
AI产品经理——03Prompt Engineering提示词工程
ai·prompt·aigc·产品经理·ai编程·ai-native
归秋1423 分钟前
2026企业AI办公工具选型指南:从场景匹配到平台评估
大数据·运维·人工智能
2601_9689007717 分钟前
Agent沙盒基础设施拆解:三层镜像与按需加载的工程取舍
人工智能
xuhe223 分钟前
Codex解决新模型无法使用/model选择的问题
linux·ai·codex
楚楚25125 分钟前
2026实测:智能体办公平台三周上手真实体验
人工智能
智圣新创0134 分钟前
教育数据要素流通刚需下 智圣新创高校数据中台解决方案的全域建设落地框架
大数据·人工智能·物联网
xianghongtao011639 分钟前
如何选择一台适合你的本地 AI 硬件设备?Lucy AI Studio——从本地 AI 办公到家庭影音的完整指南
人工智能·端脑科技·本地ai硬件设备·kickstarter众筹项目·lucy ai studio·lucy aios
ZhangJun951 小时前
Mobike 共享单车分析项目
人工智能·python·算法·kmeans·聚类·knn
互联网资讯1 小时前
本地创业者入局 AI 短剧,本地化部署怎么选更省钱
大数据·人工智能
唐维康1 小时前
昆工计算机408考研2027招285人,比去年少6人
人工智能·考研·昆明理工大学