乐于分享
好东西不私藏

1. 牛马的AI企业实战笔记:搭建第一个 AI 服务雏形

1. 牛马的AI企业实战笔记:搭建第一个 AI 服务雏形

Day 1 学习笔记:搭建第一个 AI 服务雏形

今日目标

完成 AI 学习的第一步,不再停留在“看概念”,而是亲手搭建一个最小可运行的 Python + FastAPI 服务,为后续学习 AI Agent 打基础。


今日完成内容

1. 环境安装

今天完成了基础开发环境准备:

  • 安装 Python 3.12
  • 安装 VS Code
  • 安装 uv
  • 创建项目目录 ai-agent-roadmap

项目目录建议结构:

ounter(lineounter(lineounter(lineounter(lineounter(lineai-agent-roadmap/├── apps/├── notes/├── prompts/└── projects/

2. 使用 uv 创建 Python 环境

执行命令:

ounter(lineounter(lineounter(lineounter(lineuv python install 3.12uv venv --python 3.12source .venv/bin/activatepython --version

作用:

  • 安装指定版本 Python
  • 创建虚拟环境
  • 激活虚拟环境
  • 确认 Python 版本是否正确

3. 安装项目依赖

执行命令:

ounter(lineuv pip install fastapi uvicorn pydantic httpx python-dotenv

依赖说明:

  • fastapi:构建 Web API 服务
  • uvicorn:运行 FastAPI 服务
  • pydantic:定义和校验请求参数
  • httpx:后续调用外部 API 时使用
  • python-dotenv:后续读取 .env 配置文件

4. 编写第一个 FastAPI 服务

文件路径:

ounter(lineapps/chat_service.py

代码如下:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(linefrom fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()class ChatRequest(BaseModel):    message: str@app.get("/health")def health():    return {"status": "ok"}@app.post("/chat")def chat(req: ChatRequest):    return {        "user_input": req.message,        "reply": f"你刚刚说的是:{req.message}。这是你的第一个 AI 服务雏形。"    }

启动服务

在项目根目录执行:

ounter(lineuv run uvicorn apps.chat_service:app --reload --port 8001

启动成功后访问:

ounter(linehttp://127.0.0.1:8001/docs

可以在 Swagger 文档页面直接测试接口。


测试结果

1. 健康检查接口

接口:

ounter(lineGET /health

返回示例:

ounter(lineounter(lineounter(line{  "status": "ok"}

2. 聊天接口

接口:

ounter(linePOST /chat

请求体:

ounter(lineounter(lineounter(line{  "message": "你好,我在学习 AI Agent"}

返回结果:

ounter(lineounter(lineounter(lineounter(line{  "user_input": "你好,我在学习 AI Agent",  "reply": "你刚刚说的是:你好,我在学习 AI Agent。这是你的第一个 AI 服务雏形。"}

说明:

  • 接口已经可以接收用户输入
  • 接口已经可以返回结构化 JSON
  • 第一个“AI 服务外壳”已经成功运行

今天遇到的问题与解决过程

问题 1:ModuleNotFoundError: No module named 'apps'

原因

启动命令是在 apps 目录下执行的,但使用了:

ounter(lineuv run uvicorn apps.chat_service:app --reload

这会导致 Python 以当前目录为根查找模块,从而找不到顶层 apps 包。

解决方法

回到项目根目录执行:

ounter(lineounter(linecd ..uv run uvicorn apps.chat_service:app --reload --port 8001

问题 2:[Errno 48] Address already in use

原因

之前启动的 Uvicorn 进程没有完全退出,占用了 8000 端口。

解决方法

直接换端口:

ounter(lineuv run uvicorn apps.chat_service:app --reload --port 8001

今天学到的核心知识

1. FastAPI 是什么

FastAPI 是一个 Python Web 框架,用来快速构建接口服务。
后续做 AI Agent、RAG、工作流编排时,通常都需要一个后端服务壳子,FastAPI 很适合做这个入口。


2. Pydantic 是什么

Pydantic 用来定义请求参数结构,并自动做数据校验。

例如:

ounter(lineounter(lineclass ChatRequest(BaseModel):    message: str

这表示:

  • 请求体必须有 message
  • message 必须是字符串

3. Uvicorn 是什么

Uvicorn 是运行 FastAPI 的服务进程。
没有它,FastAPI 代码只是一个 Python 文件,不能真正启动成 Web 服务。


4. 什么是“服务”

今天第一次真正接触了“服务化”开发:

  • 不是只写一个脚本
  • 而是让程序以接口形式运行
  • 可以通过浏览器、接口文档、curl 请求来调用

这是一切 AI 工程化能力的基础。


今天最重要的认知

今天虽然还没有接入真正的大模型,但已经完成了最重要的一步:

从“学概念”切换到了“做系统”。

真正的 AI Agent 工程师,不只是会调用模型接口,而是要会:

  • 搭服务
  • 设计接口
  • 管理状态
  • 调试问题
  • 逐步扩展功能

今天做的这个最小服务,就是之后所有 Agent 项目的起点。


今日产出

今天的交付物:

  • 成功安装 Python / VS Code / uv
  • 成功创建虚拟环境
  • 成功安装 FastAPI 相关依赖
  • 成功编写并运行第一个 API 服务
  • 成功解决模块路径问题
  • 成功解决端口占用问题
  • 成功返回第一个结构化接口结果

我自己的理解

今天最直观的感受是:

  1. AI 学习不能只看文章和教程
  2. 一旦开始真正写代码,很多概念会立刻具体起来
  3. FastAPI 服务是后续 Agent 项目的基础外壳
  4. 解决报错的过程本身就是学习的一部分
  5. 第一天最重要的不是“懂很多”,而是“跑起来”

明天要做什么

下一步学习方向:

  • 给服务加入 session_id
  • 实现多轮对话记忆
  • 加入固定角色设定(system prompt)
  • 逐步升级为本地假数据版 Agent

Day 1 总结

今天完成了从 0 到 1 的第一步:

我已经成功搭建了第一个本地 AI 服务雏形。

虽然它现在只是一个最简单的接口,但它代表着:

  • 我已经进入实际工程学习阶段
  • 我已经开始理解 AI 应用的服务化结构
  • 我已经具备继续做 Agent 项目的基础

这是 AI 学习真正开始的一天。