混元 API 兼容了 OpenAI 的接口规范,这意味着您可以直接使用 OpenAI 官方提供的 SDK 来调用混元大模型。您仅需要将
base_url
和 api_key
替换成混元的相关配置,不需要对应用做额外修改,即可无缝将您的应用切换到混元大模型。示例代码片段
import osfrom openai import OpenAI# 构造 clientclient = OpenAI(api_key=os.environ.get("HUNYUAN_API_KEY"), # 混元 APIKeybase_url="https://api.hunyuan.cloud.tencent.com/v1", # 混元 endpoint)# 自定义参数传参示例completion = client.chat.completions.create(model="hunyuan-pro",messages=[{"role": "user","content": "你好",},],extra_body={"enable_enhancement": true, # <- 自定义参数},)
const OpenAI = require("openai");// 构造 clientconst client = new OpenAI({apiKey: process.env['HUNYUAN_API_KEY'], // 混元 APIKeybaseURL: "https://api.hunyuan.cloud.tencent.com/v1", // 混元 endpoint});// 自定义参数传参示例const completion = await openai.chat.completions.create({model: 'hunyuan-pro',messages: [{ role: 'user', content: '你好' }],// @ts-expect-error key is not yet publicenable_enhancement: true, // <- 自定义参数});console.log(completion.choices[0]?.message?.content);
import ("os""github.com/openai/openai-go""github.com/openai/openai-go/option")// 注意: openai 官方的 golang sdk 目前尚处于 alpha 阶段。未来可能会出现一些小的破坏性改动。// 构造 clientclient := openai.NewClient(option.WithAPIKey(os.Getenv("HUNYUAN_API_KEY")), // 混元 APIKeyoption.WithBaseURL("https://api.hunyuan.cloud.tencent.com/v1/"), // 混元 endpoint)// 自定义参数传参示例completion, err := client.Chat.Completions.New(ctx,openai.ChatCompletionNewParams{Messages: openai.F([]openai.ChatCompletionMessageParamUnion{openai.UserMessage("你好"),}),Model: openai.F("hunyuan-pro"),},option.WithJSONSet("enable_enhancement", true), // <- 自定义参数)
查看更多完整示例
Python
NodeJS
Go
说明:
我们将努力保证混元与 OpenAI 的兼容性,但是仍然会存在一些细微的差异(通常来说并不会破坏整体的兼容性或者影响功能的使用)。
本文档会列出混元兼容接口与 OpenAI 的差异,开发者可以自行检查并评估对您应用的影响。
/v1/chat/completions
stop
调用 OpenAI 的接口时,如果您指定了
stop
参数, 模型会停止在匹配到 stop
的内容之前。
在调用混元接口时,会停止在匹配到 stop
的内容之后。
以原始输出 “
我是一个AI助手可以帮助您在不同方面做出更好的决策,解答您的疑问并提供可靠的信息。
”为例: | stop 参数 | 模型输出 |
OpenAI | 助手 | 我是一个AI |
混元 | 助手 | 我是一个AI助手 |
说明:
未来我们可能会修改此行为以便和 OpenAI 保持一致。
但是目前有使用该参数的情况下,开发者需要注意该参数是否会对应用造成影响,以及未来该行为调整时带来的影响。
stream_options
在 OpenAI 的接口中,当
stream_options.include_usage=true
时,会在最后一个数据块中返回 usage
信息。
在混元的接口中,同样 stream_options.include_usage=true
,会在每个数据块中返回到当前数据块为止的 token 消耗情况。说明:
一般情况下,开发者无需做额外的兼容工作来处理该差异。如果开发者有需要统计每次的 token 消耗情况,可以通过每个数据块的
usage
字段获取。混元自定义参数
参数名称 | 必选 | 类型 | 默认值 | 描述 |
enable_enhancement | 否 | Boolean | true | 功能增强(如搜索)开关。 说明: 1. hunyuan-lite 无功能增强(如搜索)能力,该参数对 hunyuan-lite 版本不生效。 2. 未传值时默认打开开关。 3. 关闭时将直接由主模型生成回复内容,可以降低响应时延(对于流式输出时的首字时延尤为明显)。但在少数场景里,回复效果可能会下降。 4. 安全审核能力不属于功能增强范围,不受此字段影响。 |
enable_speed_search | 否 | Boolean | false | 是否开启极速版搜索,默认false,不开启 在开启且命中搜索时,会启用极速版搜索,流式输出首字返回更快。 |
/v1/embeddings
embedding 接口目前仅支持
input
和 model
参数,model
当前固定为 hunyuan-embedding
,dimensions
固定为 1024。