创建Chat Completion
创建AI聊天对话,并获取模型生成的聊天响应数据
请求地址
POST https://api.stepfun.com/v1/chat/completions
请求参数
-
modelstringrequired
需要使用的模型名称 -
messagesobject arrayrequired
迄今为止用户输入或模型生成的不同类别消息列表展开/收起
-
系统消息
object展开/收起
rolestring
系统类别名称,总是为
systemcontentstring
系统消息的文本内容
-
用户消息
object
展开/收起
rolestring
用户类别名称,总是usercontentstring or object array
用户消息内容,类型为multipart消息列表或者普通文本消息字符串
展开/收起
普通文本消息stringmultipart消息列表object array
结构化的图、视频、音频、文字混合消息
展开/收起
- 文本消息
object
展开/收起
typestring
总为texttextstring
消息文本内容
- 图片消息
object
展开/收起
typestring
总为image_urlimage_urlobject
展开/收起
urlstring图片地址或base64编码的图片,图片格式:jpg/jpeg、png、webp、静态gif,仅支持http和https协议。
base64格式举例:data:image/jpeg;base64,${base64_string},请更换图片格式(jpeg)及对应的base64编码后字符串detailstringoptional是否开启detail模式:
low/high可选,默认为low模式low模式下,图片会被缩放到固定尺寸,token数量固定在400左右high模式下,模型会提供更详细、更丰富的信息,在大图、OCR、极端长宽比的场景会有比较好的表现,token数会根据图片的实际情况而变化
- 视频消息
object
展开/收起
typestring
总为video_urlvideo_urlobject
展开/收起
urlstring视频的URL地址,视频格式:video/mp4,仅支持http和https协议,视频内容要小于128M,时长建议小于5分钟。
- 音频消息
object
展开/收起
typestring
总为input_audioinput_audioobject
展开/收起
datastring音频内容,为音频的base64编码。
base64格式举例:data:audio/mpeg;base64,${base64_string},请更换音频格式(当前仅支持 mp3 和wav)及对应的base64编码后字符串
- 工具函数消息
object
展开/收起
rolestring
系统类别名称,总是为toolcontentstring
函数执行得到的内容tool_call_idstring
执行函数的ID,由assistant在上一轮对话中返回。
- 聊天助手消息
object
展开/收起
rolestring
聊天助手类别名称,总是为assistantcontentstring | null
聊天助手消息的文本内容
-
-
toolsobject arrayoptional
Toolcall支持的函数列表展开/收起
typestring
工具类型,总是为functionfunctionobject
函数内容的描述
展开/收起
namestring
函数名称,要求纯英文、数字和_-符号,建议不要超过64个字符长度。descriptionstring
函数描述,支持中英文,它用于告诉模型函数实现何种功能和目的,方便模型来判断和选择。parametersobject
函数的参数
展开/收起
typeobject
参数描述,一般为objectpropertiesobject
函数参数内容,以key为参数的名称,然后通过type和description描述参数的类型和介绍。
展开/收起
typestring|number|integer|object|array|boolean
参数类型,可以参考json-schema 介绍descriptionstring
函数参数描述,支持中英文,它用于告诉模型函数参数的含义。
-
max_tokensintoptional
聊天需要生成的标记最大数量,默认值为INF(不作限制,由模型自动决定)。输入标记和生成标记的总数量受限于指定模型的最大上下文长度。 -
temperaturefloatoptional
采样温度,介于0.0和2.0之间的数字。较高值(如0.8)会使生成更随机,较低值(如0.2)会使其生成结果更集中且确定。默认值为0.5 -
top_pfloatoptional
核心采样,该值会使模型生成具有top_p概率质量的标记并输出到结果。默认值为0.9 -
nintoptional
控制模型为每个输入消息生成的响应消息结果条数,默认值为1,最大不限,建议不超过5。 -
streambooloptional
是否流式生成响应消息,默认值为false -
stopstring | string arrayoptional
用于指导模型生成聊天响应过程中,是否遇到stop中的内容,进行生成中断,默认为空 -
frequency_penaltyfloatoptional
默认为0。介于0.0和1.0之间的数字。值较高会使模型生成某token时,根据其过往在生成文本中出现的频度,进行后续降频惩罚,从而降低模型重复生成相同内容的可能性 -
response_formatobjectoptional
用于指导模型输出特定格式的内容。默认为{"type":"text"},表示输出文本。设置为{ "type": "json_object" }可以开启 JSON Mode,输出可解析的 JSON 结构。 -
reasoning_formatobjectoptional
用于指导模型输出时使用的 reasoning 字段;默认为general,表示通用推理,使用reasoning字段返回结果;可选项为 [general,deepseek-style]。当设置为deepseek-style时,可使用 DeepSeek 兼容的的reasoning_content字段获取到 reasoning 内容。
请求响应
返回Chat Completion响应对象,或者Chat Completion流式响应对象块
示例
from openai import OpenAI
client = OpenAI(api_key = "STEP_API_KEY", base_url = "https://api.stepfun.com/v1")
completion = client.chat.completions.create(
model = "step-1-8k",
messages = [
{
"role": "system",
"content": "你是由阶跃星辰提供的AI聊天助手,你擅长中文,英文,以及多种其他语言的对话。在保证用户数据安全的前提下,你能对用户的问题和请求,作出快速和精准的回答。同时,你的回答和建议应该拒绝黄赌毒,暴力恐怖主义的内容",
},
{
"role": "user",
"content": "你好,请介绍一下阶跃星辰的人工智能!"
}, ],
)
print(completion)
{
"id": "b7b56af0-52a6-483f-a589-948182676a1b",
"object": "chat.completion",
"created": 1709893411,
"model": "step-1-8k",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!阶跃星辰是一家专注于人工智能技术的公司,致力于开发和提供各种AI解决方案。我们的人工智能技术涵盖了自然语言处理、计算机视觉、机器学习等领域,旨在帮助用户在各个行业和领域中提高效率和创造价值。\n\n我们提供多种AI产品和服务,包括智能客服、虚拟助手、智能推荐、智能审核等。这些产品和服务可以应用于多个行业,如金融、零售、教育、医疗等。通过使用我们的AI技术,用户可以更好地理解和分析数据,提供个性化的服务和体验,提高决策效率和准确性。\n\n我们注重用户数据的安全和隐私保护,严格遵守相关法律法规和行业标准。我们相信,人工智能技术应该为人类创造更多的福祉,而不是带来负面的影响。我们将继续努力,为用户提供更加智能、高效、安全的AI解决方案。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 83,
"completion_tokens": 176,
"total_tokens": 259
}
}