DeepSeek初学教程 4 与 FastAPI 快速集成

《DeepSeek 与 FastAPI 快速集成》

本文将带你从零开始,快速掌握如何将 DeepSeek API 与高效的 Python Web 框架 FastAPI 集成,通过简单易懂的实例,一步步完成 API 服务的搭建,轻松实现人工智能交互接口。


一、环境准备

(1)安装必要的库

确保你的 Python 环境已准备好,执行以下命令安装依赖库:

pip install fastapi uvicorn requests
  • fastapi:高效的 Python API 框架
  • uvicorn:快速的 ASGI 服务器
  • requests:用于发送 HTTP 请求

二、创建 FastAPI 项目

新建文件夹 deepseek_fastapi_demo,然后创建名为 main.py 的文件,结构如下:

deepseek_fastapi_demo/
└── main.py

三、编写 FastAPI 服务代码

main.py 中,编写以下代码:

from fastapi import FastAPI
from pydantic import BaseModel
import requests

# 创建 FastAPI 实例
app = FastAPI()

# 配置你的DeepSeek API 密钥
API_KEY = "YOUR_DEEPSEEK_API_KEY"
API_URL = "https://api.deepseek.com/v1/chat/completions"

# 定义请求体数据模型
class ChatRequest(BaseModel):
    message: str

# 定义 POST 接口,用户与DeepSeek对话
@app.post("/chat")
def chat_with_deepseek(request: ChatRequest):
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }

    payload = {
        "model": "deepseek-chat",
        "messages": [{"role": "user", "content": request.message}],
        "temperature": 0.7
    }

    response = requests.post(API_URL, json=payload, headers=headers)

    if response.status_code == 200:
        reply = response.json()["choices"][0]["message"]["content"]
        return {"reply": reply}
    else:
        return {"error": response.text}

代码讲解:

  • 使用了 Pydantic 的 BaseModel 定义请求数据格式。
  • 通过 FastAPI 提供 /chat 接口,接收前端或客户端消息,并调用 DeepSeek API。
  • 成功时返回模型回复,失败则返回错误信息。

四、启动 FastAPI 服务

执行以下命令启动服务:

uvicorn main:app --reload

运行成功后,终端输出如下:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [...]

此时 API 服务已启动,并监听在本地的 8000 端口。


五、快速测试接口

使用 curl 或 API 测试工具(如 Postman)测试接口:

curl -X POST "http://127.0.0.1:8000/chat" \
-H "Content-Type: application/json" \
-d '{"message": "DeepSeek API 有哪些模型?"}'

返回示例:

{

    "reply": "DeepSeek 是一个提供多种人工智能模型和服务的平台,具体可用的模型可能会根据平台的更新和用户需求而变化。以下是一些常见的模型类型,DeepSeek 可能提供的模型包括但不限于:\n\n1. **自然语言处理(NLP)模型**:\n   - **文本生成**:如 GPT 系列模型,用于生成连贯的文本。\n   - **文本分类**:用于将文本分类到预定义的类别中。\n   - **情感分析**:分析文本中的情感倾向(正面、负面、中性)。\n..."
}

Postman示例图

六、常见问题与优化建议

(1)如何处理 API 密钥安全性?

  • 在生产环境中,推荐使用环境变量存储API密钥。

    import os
    API_KEY = os.getenv("DEEPSEEK_API_KEY")
    
  • 在启动项目时,使用环境变量:

    export DEEPSEEK_API_KEY='你的API密钥'
    uvicorn main:app
    

(2)如何处理错误与异常?

  • 为了保证 API 的健壮性,可以添加异常捕获并记录日志:

    from fastapi import HTTPException
    
    try:
        response = requests.post(API_URL, json=payload, headers=headers)
        response.raise_for_status()
        reply = response.json()["choices"][0]["message"]["content"]
        return {"reply": reply}
    except requests.exceptions.HTTPError as e:
        raise HTTPException(status_code=response.status_code, detail=str(e))
    except Exception as e:
        raise HTTPException(status_code=500, detail="服务器内部错误")
    

七、课后练习

  • 扩展该 FastAPI 应用,添加对话历史上下文,提供更人性化的对话服务。
  • 尝试使用 FastAPI 自带的交互文档(访问地址:http://127.0.0.1:8000/docs)来测试你的接口。
    在这里插入图片描述
    在这里插入图片描述

八、小结

本文提供了将 DeepSeek 与 FastAPI 快速集成的详细指南,通过简单实操,快速搭建了一套功能完整的智能对话服务接口,帮助你快速在业务中使用 DeepSeek API。

下一篇,我们将探索如何将 DeepSeek 与 Flask 框架深度结合,敬请期待。

上一篇 DeepSeek初学教程 3 与 Python 工程集成
下一篇 DeepSeek初学教程 5 与 Flask 快速集成教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山海青风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值