「接入 DeepSeek API」的具体操作步骤
一、兼容版本确认(无需新增依赖,复用现有包)
DeepSeek API 仅需依赖已安装的requests==2.32.3(之前已部署),无需额外安装其他包,直接复用现有环境即可。
二、接入 DeepSeek API 的具体操作步骤
步骤 1:获取 DeepSeek API Key(前置准备)
步骤 2:补充项目目录结构并调整(方便后期维护)
在已有的ai_ui_test项目中,新增 API 工具类文件:
ai_ui_test/
├── utils/ # 新建:工具类目录(存放通用功能)
│ └── deepseek_api.py # 新建:DeepSeek API工具类
├── test_cases/ # 新建:测试用例目录(存放所有测试文件)
│ ├── test_env.py # 迁移:原test_env.py(Playwright环境测试)
│ └── test_deepseek.py # 新建:DeepSeek API测试用例
├── reports/ # 新建:测试报告目录(统一存放报告)
│ └── test_report.html # 迁移:原test_report.html
└── main.py # 现有主文件(保留,作为入口)
避坑:如果调整目录结构,使用pytest运行test_env.py等脚本时,需要加上目录结构,否则会报找不到文件错误,命令如下:
pytest ./test_cases/test_env.py -v –html=./reports/test_report.html
步骤 3:编写 DeepSeek API 通用调用工具类
打开utils/deepseek_api.py,粘贴以下代码(封装 API 调用逻辑,方便后续复用):
# utils/deepseek_api.py
import requests
from typing import List, Dict
class DeepSeekAPI:
def __init__(self, api_key: str):
"""初始化DeepSeek API客户端"""
self.api_key = api_key
self.base_url = "https://api.deepseek.com/v1/chat/completions"
# 请求头(固定格式,需携带API Key)
self.headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {self.api_key}"
}
# 默认模型(DeepSeek基础对话模型,可根据需求切换)
self.default_model = "deepseek-chat"
def send_message(self, messages: List[Dict], model: str = None) -> str:
"""
调用DeepSeek API发送对话请求
:param messages: 对话历史,格式示例:[{"role": "user", "content": "你好"}]
:param model: 模型名称,默认用deepseek-chat
:return: API返回的回答内容
"""
try:
# 构造请求参数
payload = {
"model": model or self.default_model,
"messages": messages,
"temperature": 0.7 # 随机性,0-1之间,越小回答越稳定
}
# 发送POST请求(复用已安装的requests==2.32.3)
response = requests.post(
url=self.base_url,
headers=self.headers,
json=payload,
timeout=30 # 超时时间30秒,避免网络延迟
)
response.raise_for_status() # 若请求失败(如401/404),抛出异常
# 解析响应,提取回答内容
result = response.json()
return result["choices"][0]["message"]["content"]
except Exception as e:
raise Exception(f"DeepSeek API调用失败:{str(e)}")
步骤 4:编写 DeepSeek API 测试用例(验证调用成功)
打开test_cases/test_deepseek.py,粘贴以下代码(用 pytest 验证 API 是否能正常响应):
# test_cases/test_deepseek.py
import pytest
import sys
import os
# 把项目根目录(ai_ui_test)加入Python的模块搜索路径
# __file__是当前文件(test_deepseek.py)的路径,dirname两次得到项目根
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from utils.deepseek_api import DeepSeekAPI
# 替换为你自己的DeepSeek API Key(建议通过环境变量配置,这里先直接写)
DEEPSEEK_API_KEY = "你的DeepSeek API Key"
def test_deepseek_api_basic_call():
"""验证DeepSeek API基础调用是否正常"""
# 初始化API客户端
deepseek = DeepSeekAPI(api_key=DEEPSEEK_API_KEY)
# 构造对话请求(用户提问)
messages = [
{"role": "user", "content": "请简单介绍Playwright自动化测试工具"}
]
try:
# 调用API获取回答
answer = deepseek.send_message(messages)
print(f"✅ DeepSeek API调用成功,回答:\\n{answer}")
# 断言回答不为空(验证响应有效)
assert len(answer.strip()) > 0, "DeepSeek API返回的回答为空!"
except Exception as e:
print(f"❌ DeepSeek API调用失败:{str(e)}")
raise # 抛出异常,标记用例失败
步骤 5:执行测试并验证结果
(.venv) PS D:\\ai_ui_test> pytest test_cases/test_deepseek.py -s -v
- 终端显示✅ DeepSeek API调用成功,回答:xxx;
- 最后输出1 passed,无报错;
- 回答内容是关于 Playwright 的介绍(符合提问要求)。
如果运行结果出现红色报错提示“DeepSeek API调用失败:402 Client Error: Payment Required”,说明账户余额已用完。可到官网查询确认https://platform.deepseek.com/

