1. 项目概述
在当今的AI应用开发中,如何高效地将大模型能力集成到Web服务中是一个常见需求。本文将详细介绍如何使用FastAPI构建一个Web API接口来调用ollama服务,实现模型推理的标准化接入。
ollama是一个流行的本地大模型运行工具,而FastAPI作为Python生态中高性能的Web框架,二者结合可以快速搭建起AI服务接口。这个方案特别适合需要将大模型能力集成到现有系统中的开发者,或者希望构建自定义AI接口的团队。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖安装
2.1 基础环境配置
首先确保你的开发环境满足以下要求:
- Python 3.7或更高版本
- pip包管理工具
- 已安装ollama并配置好模型(如llama2、mistral等)
提示:ollama的安装可以参考其官方文档,通常只需要一行命令即可完成基础安装。
2.2 安装必要的Python包
在项目目录下创建并激活虚拟环境后,安装以下依赖:
bash复制pip install fastapi uvicorn pydantic httpx
各包的作用说明:
fastapi: 核心Web框架uvicorn: ASGI服务器,用于运行FastAPI应用pydantic: 数据验证和设置管理httpx: 异步HTTP客户端,用于调用ollama接口
3. FastAPI应用基础搭建
3.1 初始化FastAPI应用
创建一个名为main.py的文件,初始化FastAPI应用:
python复制from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
# 配置CORS中间件
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
CORS配置说明:
allow_origins=["*"]: 允许所有来源访问(生产环境应限制为特定域名)allow_credentials=True: 允许携带凭证(如cookies)allow_methods=["*"]: 允许所有HTTP方法allow_headers=["*"]: 允许所有请求头
3.2 定义请求参数模型
使用Pydantic定义输入数据的结构和验证规则:
python复制from pydantic import BaseModel
from typing import Optional
class ChatRequest(BaseModel):
prompt: str
model: str = "llama2" # 默认模型
stream: Optional[bool] = False # 是否流式响应
这个模型将自动验证传入的JSON数据,确保:
prompt字段必须存在且为字符串model字段可选,默认为"llama2"stream字段可选,默认为False
4. ollama接口调用实现
4.1 基础API调用方法
实现调用ollama的基础方法:
python复制import httpx
OLLAMA_URL = "http://localho
