抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

OpenAI API

我这里使用的Step开放平台,其API与OpenAI兼容

Python可以使用openai库轻松调用一些大模型服务,对Agent工程师来说非常有用

对话

from openai import OpenAI

client = OpenAI(api_key="xxxxx", 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)

流式响应

from openai import OpenAI
import sys
# api_key需要自己申请
client = OpenAI(api_key="xxxxx", base_url="https://api.stepfun.com/v1")

completion = client.chat.completions.create(
model="step-1-8k",
stream = True,
messages=[
{
"role": "system",
"content": "你是由阶跃星辰提供的AI聊天助手,你擅长中文,英文,以及多种其他语言的对话。在保证用户数据安全的前提下,你能对用户的问题和请求,作出快速和精准的回答。同时,你的回答和建议应该拒绝黄赌毒,暴力恐怖主义的内容",
},
{"role": "user", "content": "你好,请介绍一下阶跃星辰的人工智能!"},
],
)
# 流式打印出来
for chunk in completion:
sys.stdout.write(chunk.choices[0].delta.content)
sys.stdout.flush()

多轮对话

将先前双方的对话内容(包含system)塞入messages中,在末尾加入本次问题

传入history模型会利用kvcache加速,于是多轮的回答耗时不会显著提升(耗时会随着history增长而延长,但并不显著)

你可以一个滑动窗口截断history

local_message = []
local_message.append({"role": "system", "content": "xxxxx"})
if history is not None:
for his in history:
local_message.append({"role": "user", "content": his[0]})
local_message.append({"role": "assistant", "content": his[1]})
local_message.append({"role": "user", "content": "xxxxxx"})
completion = client.chat.completions.create(
model="step-1-8k",
messages=local_message
)
# 再将completion的输入和结果塞入history中

评论