模型API接口说明[兼容openai]

基本信息

模型名称:

模型存放目录:

推理虚拟环境:

推理引擎: vLLM 0.7.3

API服务端口: 8000

服务器IP:

推理服务部署详情

推理服务基于vLLM引擎启动,具体启动命令如下:

vllm serve /model/deepseek/DeepSeek-671b-R1 \

–tensor-parallel-size 8 \

–gpu-memory-utilization 0.98 \

–max-model-len 3072 \

–max-num-batched-tokens 4096 \

–max-num-seqs 16 \

–port 8000 \

–swap-space 100 \

–enforce-eager

参数说明

–tensor-parallel-size 8: 使用8个GPU进行张量并行计算。

–gpu-memory-utilization 0.98: GPU内存利用率设置为98%。

–max-model-len 3072: 模型最大输入长度为3072个token。

–max-num-batched-tokens 4096: 批处理最大token数为4096。

–max-num-seqs 16: 最大并发序列数为16。

–port 8000: API服务运行在8000端口。

–swap-space 100: 设置100GB的交换空间。

–enforce-eager: 强制使用eager模式运行。

服务访问

API地址:

健康检查端点:

API使用说明

端点URL: http://ip/v1/completions

方法: POST

描述: 用于生成基于输入提示的文本内容。

请求格式:Content-Type: application/json

请求体示例:

Json

{

“prompt”: “你好,世界”,

“max_tokens”: 50,

“temperature”: 0.7,

“top_p”: 0.9

}

请求参数说明


参数名 类型 是否必填 默认值 描述


prompt string 是 无 输入的提示文本

max_tokens int 否 256 生成文本的最大token数,最大3072

temperature float 否 1.0 控制生成文本的随机性,范围0-2

top_p float 否 1.0 核采样概率,范围0-1

响应格式

状态码: 200 (成功), 400 (请求错误), 500 (服务器错误)

响应体示例:

json

{

“choices”: [

{

“text”: “Hello, World! 这是一个测试响应。”,

“index”: 0,

“finish_reason”: “length”

}

],

“usage”: {

“prompt_tokens”: 4,

“completion_tokens”: 12,

“total_tokens”: 16

},

“status”: “success”

}

响应参数说明


参数名 类型 描述


choices array 生成的文本选项数组

choices.text string 生成的文本内容

choices.index int 选项索引,通常为0

choices.finish_reason string 结束原因(length或stop)

usage object token使用统计

usage.prompt_tokens int 提示词token数

usage.completion_tokens int 生成文本token数

usage.total_tokens int 总token数

status string 请求状态(success或error)

示例请求

使用curl调用API:

bash

curl -X POST http://ip/v1/completions \

-H “Content-Type: application/json” \

-d ‘{“model”: “DeepSeek-671b-R1”, “prompt”: “你好”,
“max_tokens”: 50, “temperature”: 0.7}’

示例响应

json

{

“choices”: [

{

“text”: “Hello, World! 这是一个测试响应。”,

“index”: 0,

“finish_reason”: “length”

}

],

“usage”: {

“prompt_tokens”: 4,

“completion_tokens”: 12,

“total_tokens”: 16

},

“status”: “success”

}

注意事项

输入的prompt长度加上max_tokens不得超过3072(由–max-model-len限制)。

如果请求超载(超过max-num-seqs 16),可能返回503状态码,需稍后重试。

未提供参数时,使用默认值。

测试环境

测试虚拟环境: /home/demo_env/

已安装测试工具:

wrk: 高性能HTTP基准测试工具

post: 用于发送HTTP POST请求的工具

streamlit: 用于构建交互式Web应用的Python库

测试工具安装验证

在测试虚拟环境(/home/demo_env/)中运行以下命令,验证工具是否正确安装:

bash

source /home/demo_env/bin/activate

wrk --version

post --version # 如果是特定的post工具,替换为相应命令

streamlit --version

测试方法

1. 功能测试

目标: 验证API是否能够正常接收请求并返回推理结果。

测试工具

post 或 curl

测试步骤

激活测试虚拟环境:

bash

source /home/demo_env/bin/activate

发送POST请求到API:

bash

curl -X POST http://ip/v1/completions \

-H “Content-Type: application/json” \

-d ‘{“model”: “/model/deepseek/DeepSeek-671b-R1”, “prompt”:
“你好”, “max_tokens”: 50}’

预期结果

返回状态码:200

返回内容包含生成的文本,例如:

json

{

“choices”: [{“text”: “Hello, World! …”}],

“status”: “success”

}

性能测试

目标: 测试API在高并发场景下的性能表现。

测试工具

wrk

测试步骤

激活测试虚拟环境:

bash

source /home/demo_env/bin/activate

运行wrk进行压力测试:

bash

wrk -t10 -c100 -d30s -s script.lua
http://ip/v1/completions

示例script.lua内容:

lua

wrk.method = “POST”

wrk.body = ‘{“prompt”: “测试性能”, “max_tokens”: 50}’

wrk.headers[“Content-Type”] = “application/json”

预期结果

输出报告包含请求总数、RPS、平均延迟、错误率(接近0%)。

3. 可视化测试(可选)

目标: 通过Streamlit验证API可用性。

测试步骤

创建app.py:

python

import streamlit as st

import requests

st.title(“DeepSeek API 测试”)

prompt = st.text_input(“输入提示词”, “你好”)

if st.button(“生成”):

response = requests.post(

“http://ip/v1/completions”,

json={“prompt”: prompt, “max_tokens”: 50}

)

st.write(response.json()[“choices”][0][“text”])

运行:

bash

streamlit run app.py

访问http://ip:8501。

预期结果

输入提示词后,显示API返回的文本。

注意事项

确保推理服务运行在/home/oem/dsinfer环境中。

测试时使用ip:8000。

根据实际API端点调整URL(如/v1/completions)。

如需认证,添加相应头信息。

交付验收标准

API服务监听

功能测试返回正确结果。

性能测试达到预期指标。

可视化测试界面正常运行。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值