资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

大模型API

星河大模型 API 服务

星河大模型 API 是为开发者提供的一套基础的大模型 API 服务,背靠百度智能云千帆平台,提供文心等大模型能力。该大模型 API 服务兼容 openai-python SDK,开发者可以直接使用原生的 openai-python SDK来调用文心等大模型服务。

现在加入官方免费教学课程 《大模型API服务:从大模型服务调用到应用实战》 ,2分钟轻松上手,玩转大模型。

准备

访问令牌

访问令牌用于 AI Studio 用户进行身份验证,可通过访问令牌向 AI Studio 执行授权范围(如大模型 API 的调用权限,仓库相关的读取访问权限等)指定的特定操作。可前往个人中心的 访问令牌页面 查看个人专属 access token。

Tokens

Tokens 为星河社区上调用大模型SDK或使用大模型应用的最终计量单位,星河为每个开发者提供了100万的免费 Tokens 额度。开发者使用不同的模型会扣除不同数量的Tokens,Token 收支明细可查看使用明细。若Tokens 已消耗完,可购买 Tokens 后再使用。

服务域名

用星河大模型 API 服务的域名地址: https://aistudio.baidu.com/llm/lmapi/v3

在使用 openai-python 调用星河大模型 API 服务时,需要将


支持的模型

文生文模型列表:

模型名称 model 参数值 max_completion_tokens
取值范围
function call
是否支持功能
是否支持
web_search
ERNIE 4.5 ernie-4.5-8k-preview [2,2048]
ERNIE 3.5 ernie-3.5-8k [2,2048]
ERNIE 4.0 ernie-4.0-8k [2,2048]
ERNIE 4.0 Turbo ernie-4.0-turbo-8k [2,2048]
ERNIE Character ernie-char-8k [2,2048]
ERNIE Speed ernie-speed-8k [2,2048]
ERNIE Speed ernie-speed-128k [2,4096]
ERNIE Tiny ernie-tiny-8k [2,2048]
ERNIE Lite ernie-lite-8k [2,2048]
DeepSeek-Reasoner deepseek-r1 [2,8192]

多模态模型列表

模型名称 model 参数值
ERNIE 4.5 ernie-4.5-8k-preview

向量模型列表

模型名 最大文本数量 说明
embedding-v1 16 文本数量不超过16,每个文本token数不超过384且长度不超过1000个字符
bge-large-zh 16 文本数量不超过16,每个文本token数不超过512且长度不超过2000个字符

文生图模型

模型名 类型
Stable-Diffusion-XL 文生图模型


安装

# install from PyPI
pip install openai

用法


文生文

import os
from openai import OpenAI

client = OpenAI(
     api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
     base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

chat_completion = client.chat.completions.create(
    messages=[
        {'role': 'system', 'content': '你是 AI Studio 实训AI开发平台的开发者助理,你精通开发相关的知识,负责给开发者提供搜索帮助建议。'},
        {'role': 'user', 'content': '你好,请介绍一下AI Studio'}
    ],
    model="ernie-3.5-8k",
)

print(chat_completion.choices[0].message.content)

为了避免将api_key 暴露在代码中,可以使用 python-dotenv 将其添加AI_STUDIO_API_KEY="YOUR_ACCESS_TOKEN"到您的.env文件中。当然,也可以通过api_key="YOUR_ACCESS_TOKEN"直接指定

多轮对话

import os
from openai import OpenAI

def get_response(messages):
    client = OpenAI(
        api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
        base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
    )
    completion = client.chat.completions.create(model="ernie-3.5-8k", messages=messages)
    return completion

messages = [
    {
        "role": "system",
        "content": "你是 AI Studio 开发者助理,你精通开发相关的知识,负责给开发者提供搜索帮助建议。",
    }
]

assistant_output = "您好,我是AI Studio 开发者助理,请问有什么能帮助你的吗?"
print(f"""输入:"结束",结束对话\n""")
print(f"模型输出:{assistant_output}\n")
user_input = ""
while "结束" not in user_input:
    user_input = input("请输入:")
    # 将用户问题信息添加到messages列表中
    messages.append({"role": "user", "content": user_input})
    assistant_output = get_response(messages).choices[0].message.content
    # 将大模型的回复信息添加到messages列表中
    messages.append({"role": "assistant", "content": assistant_output})
    print(f"模型输出:{assistant_output}")
    print("\n")

流式输出

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

completion = client.chat.completions.create(
    model="ernie-3.5-8k",
    messages=[
        {'role': 'system', 'content': '你是 AI Studio 实训AI开发平台的开发者助理,你精通开发相关的知识,负责给开发者提供搜索帮助建议。'},
        {'role': 'user', 'content': '你好,请介绍一下AI Studio'}
    ],
    stream=True,
)

for chunk in completion:
    print(chunk.choices[0].delta.content or "", end="")

异步调用

import os
from openai import AsyncOpenAI
import asyncio

client = AsyncOpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

async def main() -> None:
    chat_completion = await client.chat.completions.create(
        messages=[
            {'role': 'system', 'content': '你是 AI Studio 实训AI开发平台的开发者助理,你精通开发相关的知识,负责给开发者提供搜索帮助建议。'},
            {'role': 'user', 'content': '你好,请介绍一下AI Studio'}
        ],
        model="ernie-3.5-8k",
    )
    print(chat_completion.choices[0].message.content)
    

asyncio.run(main())

搜索增强

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

completion = client.chat.completions.create(
        model="ernie-4.0-turbo-8k",
        messages=[
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "text",
                            "text": "2024年奥运会乒乓球男单冠军是谁"
                        }
                    ]
                }
            ],
            extra_body={
                "web_search": {
                    "enable": True,
                    "enable_trace": True
                }
            },
        stream=True,
    )

    search_result = []
    for chunk in completion:
        if (len(chunk.choices) > 0):
            if (hasattr(chunk, 'search_results')):
                search_result.extend(chunk.search_results)
            print(chunk.choices[0].delta.content, end="", flush=True)
    
    unique_dict = {}
    for item in search_result:
        unique_dict[item["index"]] = item
    print("\n参考资料:\n")
    for result in list(unique_dict.values()):
        print(str(result["index"]) + ". " + result["title"] + ". " + result["url"] + "\n")

打印思维链(DeepSeek-R1)

非流式

import os
from openai import OpenAI

client = OpenAI(
     api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
     base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

chat_completion = client.chat.completions.create(
    messages=[
        {'role': 'system', 'content': '你是 AI Studio 实训AI开发平台的开发者助理,你精通开发相关的知识,负责给开发者提供搜索帮助建议。'},
        {'role': 'user', 'content': '你好,请介绍一下AI Studio'}
    ],
    model="deepseek-r1",
)

print(chat_completion.choices[0].message.reasoning_content)
print(chat_completion.choices[0].message.content)

流式

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

completion = client.chat.completions.create(
    model="deepseek-r1",
    messages=[
        {'role': 'system', 'content': '你是 AI Studio 实训AI开发平台的开发者助理,你精通开发相关的知识,负责给开发者提供搜索帮助建议。'},
        {'role': 'user', 'content': '你好,请介绍一下AI Studio'}
    ],
    stream=True,
)

for chunk in completion:
    if (len(chunk.choices) > 0):
        if hasattr(chunk.choices[0].delta, 'reasoning_content') and chunk.choices[0].delta.reasoning_content:
            print(chunk.choices[0].delta.reasoning_content, end="", flush=True)
        else:
            print(chunk.choices[0].delta.content, end="", flush=True)

多模态-文字输入

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

completion = client.chat.completions.create(
        model="ernie-4.5-8k-preview",
        messages=[
            {
                'role': 'user', 'content': [
                    {
                        "type": "text",
                        "text": "介绍几个北京著名景点"
                    }
                ]   
            }
        ]
    )

    print(completion.choices[0].message.content or "")

多模态-文字输入-流式

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

completion = client.chat.completions.create(
        model="ernie-4.5-8k-preview",
        messages=[
            {
                'role': 'user', 'content': [
                    {
                        "type": "text",
                        "text": "介绍几个北京著名景点"
                    }
                ]   
            }
        ]
    )

    for chunk in completion:
        if (len(chunk.choices) > 0):
            print(chunk.choices[0].delta.content, end="", flush=True)

多模态-图片输入(url)-流式

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

completion = client.chat.completions.create(
        model="ernie-4.5-8k-preview",
        messages=[
            {
                'role': 'user', 'content': [
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": "https://testimage.bj.bcebos.com/image1.jpg"
                        }
                    }
                ]   
            }
        ],
        stream=True,
    )

    for chunk in completion:
        if (len(chunk.choices) > 0):
            print(chunk.choices[0].delta.content, end="", flush=True)

多模态-图片输入(base64)-流式

import os
from openai import OpenAI


def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")
        
# Path to your image
image_path = "/image_1.png"

# Getting the Base64 string
base64_image = encode_image(image_path)

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

completion = client.chat.completions.create(
        model="ernie-4.5-8k-preview",
        messages=[
            {
                'role': 'user', 'content': [
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": "https://testimage.bj.bcebos.com/image1.jpg"
                        }
                    }
                ]   
            }
        ],
        stream=True,
    )

    for chunk in completion:
        if (len(chunk.choices) > 0):
            print(chunk.choices[0].delta.content, end="", flush=True)

多模态-图片+文本输入-流式

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

completion = client.chat.completions.create(
        model="ernie-4.5-8k-preview",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "图片里有什么?这两张图片有什么不同?请用中文回答"
                    },
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": "https://testimage.bj.bcebos.com/image1.jpg"
                        }
                    },
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": "https://testimage.bj.bcebos.com/image2.png"
                        }
                    }
                ]
            }
        ],
        stream=True,
    )

    for chunk in completion:
        if (len(chunk.choices) > 0):
            print(chunk.choices[0].delta.content, end="", flush=True)

注意:

  • 大模型每一次调用都是无状态的,您需要自行管理传入给模型的信息。如果需要模型多次理解同一张图像,请在每次请求时都传入该图。
  • 支持单图和多图,每一张图片大小不超过10MB,多张图片输入的总token不超过模型上下文长度。如ERNIE-4.5模型,不超过8K token的图片输入。
  • 图片格式:
    a. 图片base64:JPG、JPEG、PNG和BMP类型,传入的格式需为:data:image/<图片格式>;base64,<Base64编码>
    b. 图片公网url:支持JPG、JPEG、PNG、BMP和WEBP类型

文生图

import os
from openai import OpenAI
import base64

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

# 生成的图片以链接形式返回
images_url = client.images.generate(prompt="一只白猫, 红帽子", model="Stable-Diffusion-XL", response_format="url")
print(images_url.data[0].url)

# 生成的图片以 base64 形式返回
images_base64 = client.images.generate(prompt="一只黑猫, 蓝帽子", model="Stable-Diffusion-XL", response_format="b64_json")
# 保存生成的图片
for i, image in enumerate(images_base64.data):
    with open("image_{}.png".format(i), "wb") as f:
        f.write(base64.b64decode(image.b64_json))

向量

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

embeddings = client.embeddings.create(
        model="embedding-v1",
        input=[
            "推荐一些美食",
            "给我讲个故事"
        ]
    )
print(embeddings)

模型列表

# 查询支持的模型列表

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("AI_STUDIO_API_KEY"),  # 含有 AI Studio 访问令牌的环境变量,https://aistudio.baidu.com/account/accessToken,
    base_url="https://aistudio.baidu.com/llm/lmapi/v3",  # aistudio 大模型 api 服务域名
)

models = client.models.list()
for model in models.data:
    print(model.id)

参数支持

针对 openai-python 原生不支持的参数,可以通过extra_body 参数传入

文生文

请求参数

body说明

名称 类型 必填 描述 openai-python是否原生支持
model string 模型ID,可选值可从client.models.list() 获取
messages List 聊天上下文信息。说明:
(1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话,例如:
1个成员示例,"messages": [ {"role": "user","content": "你好"}]
3个成员示例,"messages": [ {"role": "user","content": "你好"},{"role":"assistant","content":"需要什么帮助"},{"role":"user","content":"自我介绍下"}]
(2) 最后一个message为当前请求的信息,前面的message为历史对话信息
(3)messages的role说明:
· 第一条message的role必须是user或system
· 最后一条message的role必须是user
· 当第一条message的role为user,role值需要依次为user/function -> assistant -> user/function ...,即奇数位message的role值必须为user或function,偶数位message的role值为assistant,例如: 示例中message中的role值分别为user、assistant、user、assistant、user;奇数位(红框)message中的role值为user,即第1、3、5个message中的role值为user;偶数位(蓝框)值为assistant,即第2、4个message中的role值为assistant image.png
· 当第一条message的role为system,role值需要依次为system -> user/function -> assistant -> user/function ...
(4)message中的content总长度不能超过对应model的输入字符限制和输入tokens限制,请查看各模型上下文长度说明
(5)如果为ERNIE 4.5,请参考以下:不支持连续的user/assistant以及首message为assistant的情况,具体规则如下:
· messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话;
· 第一条message的role必须是user或system
· 最后一条message的role必须是user
· 除去第一个system的role后,role需要依次为user -> assistant -> user ...
stream bool 是否以流式接口的形式返回数据,说明:
(1)beam search模型只能为false
(2)默认false
temperature float 说明:
(1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定
(2)默认0.95,范围 (0, 1.0],不能为0
top_p float 说明:
(1)影响输出文本的多样性,取值越大,生成文本的多样性越强
(2)默认0.7,取值范围 [0, 1.0]
penalty_score float 通过对已生成的token增加惩罚,减少重复生成的现象。说明:
(1)值越大表示惩罚越大
(2)默认1.0,取值范围:[1.0, 2.0]
max_completion_tokens int 指定模型最大输出token数,说明:
(1)取值范围[2, 2048],模型具体支持请查看支持模型列表
response_format string 指定响应内容的格式,说明:
(1)可选值:
· json_object:以json格式返回,可能出现不满足效果情况
· text:以文本格式返回
(2)如果不填写参数response_format值,默认为text
seed int 说明:
(1)取值范围: (0,2147483647‌),会由模型随机生成,默认值为空
(2)如果指定,系统将尽最大努力进行确定性采样,以便使用相同seed和参数的重复请求返回相同的结果
stop List 生成停止标识,当模型生成结果以stop中某个元素结尾时,停止文本生成。说明:
(1)每个元素长度不超过20字符
(2)最多4个元素
frequency_penalty float 说明:
(1)正值根据迄今为止文本中的现有频率对新token进行惩罚,从而降低模型逐字重复同一行的可能性
(2)取值范围:[-2.0, 2.0]
(3)支持以下模型:
ernie-speed-8k、ernie-speed-128k 、ernie-tiny-8k、ernie-char-8k、ernie-lite-8k
presence_penalty float 说明:
(1)正值根据token记目前是否出现在文本中来对其进行惩罚,从而增加模型谈论新主题的可能性
(2)取值范围:[-2.0, 2.0]
(3)支持以下模型: ernie-speed-8k、ernie-speed-128k 、ernie-tiny-8k、ernie-char-8k、ernie-lite-8k
tools List(Tool) 一个可触发函数的描述列表,支持模型请参考本文支持模型列表-是否支持function call功能
tool_choice string / tool_choice 说明:
(1)支持模型请参考本文支持模型列表-是否支持function call功能
(2)string类型,可选值如下:
· none:不希望模型调用任何function,只生成面向用户的文本消息
· auto:模型会根据输入内容自动决定是否调用函数以及调用哪些function
· required:希望模型总是调用一个或多个function
(3)当为tool_choice类型,指在函数调用场景下,提示大模型选择指定的函数,指定的函数名必须在tools中存在
parallel_tool_calls bool 说明:
(1)支持模型请参考本文支持模型列表-是否支持function call功能
(2)可选值:
· true:表示开启函数并行调用,默认开启
· false:表示关闭函数并行调用
web_search web_search 搜索增强的选项,说明:
(1)默认不传关闭
(2)支持模型请查看上文模型列表说明

message说明

名称 类型 必填 描述
role string 当前支持以下:
user: 表示用户
assistant: 表示对话助手
system:表示人设
name string message名
content string 对话内容,说明:
(1)不能为空
(2)最后一个message对应的content不能为blank字符,如空格、"\n"、“\r”、“\f”等

Tool中function说明

Tool中function说明如下

名称 类型 必填 描述
name string 函数名
description string 函数描述
parameters object 函数请求参数,JSON Schema 格式,参考JSON Schema描述

tool_choice说明

名称 类型 必填 描述
type string 指定工具类型,固定值function
function function 指定要使用的函数

tool_choice中function说明

名称 类型 必填 描述
name string 指定要使用的函数名

web_search说明

名称 类型 描述
enable bool 是否开启实时搜索功能,说明:
(1)如果关闭实时搜索,角标和溯源信息都不会返回
(2)可选值:
· true:开启
· false:关闭,默认false
enable_citation bool 是否开启上角标返回,说明:
(1)enable为true时生效
(2)可选值:
· true:开启;如果开启,在触发了搜索增强的场景下,响应内容会附上角标,并带上角标对应的搜索溯源信息
· false:未开启,默认false
(3)如果检索内容包含非公开网页,角标不生效
enable_trace bool 是否返回搜索溯源信息,说明:
(1)enable 为 true时生效。
(2)可选值:
· true:返回;如果为true,在触发了搜索增强的场景下,会返回搜索溯源信息search_results
· false:不返回,默认false
(3)如果检索内容为非公开网页,即使触发搜索也不返回溯源信息

响应参数

名称 类型 描述
id string 本次请求的唯一标识,可用于排查问题
object string 回包类型 chat.completion:多轮对话返回
created int 时间戳
model string 模型ID
choices object 说明:当请求参数stream值不同时,返回内容不同
usage usage token统计信息,说明:
(1)同步请求默认返回
(2)会在最后一个chunk返回实际内容,其他chunk返回null

choices说明

名称 类型 描述
index int choice列表中的序号
message message 响应信息,当stream=false时返回
delta delta 响应信息,当stream=true时返回
finish_reason string 输出内容标识,说明:
normal:输出内容完全由大模型生成,未触发截断、替换
stop:输出结果命中入参stop中指定的字段后被截断
length:达到了最大的token数
content_filter:输出内容被截断、兜底、替换为**等
function_call:调用了function call功能
flag int 安全细分类型,说明:
(1)当stream=false,flag值含义如下:
0或不返回:安全
1:低危不安全场景,可以继续对话
2:禁聊:不允许继续对话,但是可以展示内容
3:禁止上屏:不允许继续对话且不能上屏展示
4:撤屏
(2)当stream=true时,返回flag表示触发安全
ban_round int 当flag 不为 0 时,该字段会告知第几轮对话有敏感信息;如果是当前问题,ban_round = -1

choices中message说明

名称 类型 描述
role string 当前支持以下:
· user: 表示用户
· assistant: 表示对话助手
· system:表示人设
name string message名
content string 对话内容
tool_calls List[ToolCall] 函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入
tool_call_id string 说明:
(1)当role=tool时,该字段必填
(2)模型生成的function call id,对应tool_calls中的tool_calls[].id
(3)调用方应该传递真实的、由模型生成id,否则效果有损
reasoning_content string 思维链内容,说明:只有当模型为DeepSeek-R1有效

delta说明

名称 类型 描述
content string 流式响应内容
tool_calls List[ToolCall] 由模型生成的函数调用,包含函数名称,和调用参数

ToolCall说明

名称 类型 描述
id string function call的唯一标识,由模型生成
type string 固定值function
function function function call的具体内容

ToolCall中function说明

名称 类型 描述
name string 函数名称
arguments string 函数参数

search_results说明

名称 类型 描述
index int 序号
url string 搜索结果URL
title string 搜索结果标题

usage说明

名称 类型 描述
prompt_tokens int 问题tokens数(包含历史QA)
completion_tokens int 回答tokens数
total_tokens int 总tokens数

文生图

请求参数

名称 类型 必填 描述 openai-python是否原生支持
model string 模型ID,可选值可从client.models.list()
prompt string 提示词,即用户希望图片包含的元素。说明: 长度限制为1024字符,建议中文或者英文单词总数量不超过150个
negative_prompt string 反向提示词,即用户希望图片不包含的元素。说明: 长度限制为1024字符,建议中文或者英文单词总数量不超过150个
response_format string 返回生成图像的格式。必须是urlb64_json之一。生成图像后,url7天内有效。
size string 生成图片长宽,说明:
(1)默认值 1024x1024
(2)取值范围如下:
适用头像: ["768x768", "1024x1024", "1536x1536", "2048x2048"]
适用文章配图 :["1024x768", "2048x1536"]
适用海报传单:["768x1024", "1536x2048", "576x1024", "1152x2048"]
适用电脑壁纸:["1024x576", "2048x1152"]
n int 生成图片数量,说明:
(1)默认值为1
(2)取值范围为1-4
(3)单次生成的图片较多及请求较频繁可能导致请求超时
steps int 迭代轮次,说明:
默认值为20
取值范围为[10-50]
style string 生成风格。说明:
(1)默认值为Base
(2)可选值:
Base:基础风格
3D Model:3D模型
Analog Film:模拟胶片
Anime:动漫
Cinematic:电影
Comic Book:漫画
Craft Clay:工艺黏土
Digital Art:数字艺术
Enhance:增强
Fantasy Art:幻想艺术
Isometric:等距风格
Line Art:线条艺术
Lowpoly:低多边形
Neonpunk:霓虹朋克
Origami:折纸
Photographic:摄影
Pixel Art:像素艺术
Texture:纹理
sampler_index string 采样方式,说明:
(1)默认值:Euler a
(2)可选值如下:
Euler
Euler a
DPM++ 2M
DPM++ 2M Karras
LMS Karras
DPM++ SDE
DPM++ SDE Karras
DPM2 a Karras
Heun
DPM++ 2M SDE
DPM++ 2M SDE Karras
DPM2
DPM2 Karras
DPM2 a
LMS
retry_count int 重试次数,默认1次
request_timeout float 请求超时时间,默认60秒
backoff_factor float 请求重试参数,用于指定重试的策略,默认为0
seed integer 随机种子,说明:
不设置时,自动生成随机数
取值范围 [0, 4294967295]
cfg_scale float 提示词相关性,说明:默认值为5,取值范围0-30

响应参数

名称 类型 描述
created int 时间戳
data list(image) 生成图片结果

image说明

名称 类型 描述
b64_json string 图片base64编码内容,当且仅当response_format=b64_json
url string 图片链接,当且仅当response_format=url
index int 序号

向量

请求参数

名称 类型 必填 描述
model str 模型ID,可选值可从client.models.list()
Input List[str] 填写文本,说明:
(1)不能为空List,List的每个成员不能为空字符串
(2)文本数量不超过16
(3)说明:
embedding-v1:文本数量不超过16,每个文本token数不超过384且长度不超过1000个字符
bge-large-zh:文本数量不超过16,每个文本token数不超过512且长度不超过2000个字符

返回参数

名称 类型 描述
object str 回包类型,固定值“embedding_list”
data List[EmbeddingData] embedding信息,data成员数和文本数量保持一致
usage Usage token统计信息,token数 = 汉字数+单词数*1.3 (仅为估算逻辑)

EmbeddingData说明

名称 类型 描述
object str 固定值"embedding"
embedding List[float] embedding 内容
index int 序号

Usage说明

名称 类型 描述
prompt_tokens int 问题tokens数
total_tokens int tokens总数


错误码

HTTP状态码 类型 错误码 错误信息
400 invalid_request_error malformed_json Invalid JSON
400 invalid_request_error invalid_model model is empty
400 invalid_request_error malformed_json Invalid Argument
400 invalid_request_error malformed_json 返回的具体错误信息
400 invalid_request_error invalid_messages 返回的具体错误信息
400 invalid_request_error characters_too_long the max input characters is xxx
400 invalid_request_error invalid_user_id user_id can not be empty
400 invalid_request_error tokens_too_long Prompt tokens too long
401 access_denied no_parameter_permission 返回的具体错误信息
401 invalid_request_error invalid_model No permission to use the model
401 invalid_request_error invalid_appid No permission to use the appid
401 invalid_request_error invalid_iam_token IAM Certification failed
403 unsafe_request system_unsafe the content of system field is invalid
403 unsafe_request user_setting_unsafe the content of user field is invalid
403 unsafe_request functions_unsafe the content of functions field is invalid
404 invalid_request_error no_such_model
405 invalid_request_error method_not_supported Only POST requests are accepted
429 rate_limit_exceeded rpm_rate_limit_exceeded Rate limit reached for RPM
429 rate_limit_exceeded tpm_rate_limit_exceeded Rate limit reached for TPM
429 rate_limit_exceeded preemptible_rate_limit_exceeded Rate limit reached for preemptible resource
429 rate_limit_exceeded user_rate_limit_exceeded qps request limit by APP ID reached
429 rate_limit_exceeded cluster_rate_limit_exceeded request limit by resouce cluster reached
500 Internal_error internal_error Internal error
500 Internal_error dispatch_internal_error Internal error
上一篇
ComfyUI Custom API
下一篇
工具