混元 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-turbo",messages=[{"role": "user","content": "你好",},],extra_body={"enable_enhancement": True, # <- 自定义参数},)
import OpenAI from "openai";// 构造 clientconst openai = new OpenAI({apiKey: process.env['HUNYUAN_API_KEY'], // 混元 APIKeybaseURL: "https://api.hunyuan.cloud.tencent.com/v1", // 混元 endpoint});async function main() {// 自定义参数传参示例const completion = await openai.chat.completions.create({model: "hunyuan-turbo",messages: [{ role: 'user', content: '你好' }],// @ts-expect-error key is not yet publicenable_enhancement: true, // <- 自定义参数});console.log(completion.choices[0]);}main();
import ("context""github.com/openai/openai-go""github.com/openai/openai-go/option")// 注意: openai 官方的 golang sdk 目前尚处于 alpha 阶段。未来可能会出现一些小的破坏性改动。func main() {// 构造 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(context.Background(),openai.ChatCompletionNewParams{Messages: openai.F([]openai.ChatCompletionMessageParamUnion{openai.UserMessage("你好"),}),Model: openai.F("hunyuan-turbo"),},option.WithJSONSet("enable_enhancement", true), // <- 自定义参数)}
curl https://api.hunyuan.cloud.tencent.com/v1/chat/completions \\-H "Content-Type: application/json" \\-H "Authorization: Bearer $HUNYUAN_API_KEY" \\-d '{"model": "hunyuan-turbo","messages": [{"role": "user","content": "你好"}],"enable_enhancement": true}'
图生文(如hunyuan-vision)示例代码片段
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-vision",messages=[{"role": "user","contents": [{"type": "text","text": "这是什么图片"},{"type": "image_url","image_url": {"url": "https://qcloudimg.tencent-cloud.cn/raw/42c198dbc0b57ae490e57f89aa01ec23.png"}}]},],)
import OpenAI from "openai";// 构造 clientconst openai = new OpenAI({apiKey: process.env['HUNYUAN_API_KEY'], // 混元 APIKeybaseURL: "https://api.hunyuan.cloud.tencent.com/v1", // 混元 endpoint});async function main() {// 自定义参数传参示例const completion = await openai.chat.completions.create({model: "hunyuan-vision",messages: [{role: 'user',content: [{"type": "text","text": "这是什么图片"},{"type": "image_url","image_url": {"url": "https://qcloudimg.tencent-cloud.cn/raw/42c198dbc0b57ae490e57f89aa01ec23.png"}}]}],});console.log(completion.choices[0]);}main();
import ("context""github.com/openai/openai-go""github.com/openai/openai-go/option")// 注意: openai 官方的 golang sdk 目前尚处于 alpha 阶段。未来可能会出现一些小的破坏性改动。func main() {// 构造 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(context.Background(), openai.ChatCompletionNewParams{Messages: openai.F([]openai.ChatCompletionMessageParamUnion{openai.ChatCompletionUserMessageParam{Role: openai.F(openai.ChatCompletionUserMessageParamRoleUser),Content: openai.F([]openai.ChatCompletionContentPartUnionParam{openai.TextPart("这是什么图片"),openai.ImagePart("https://qcloudimg.tencent-cloud.cn/raw/42c198dbc0b57ae490e57f89aa01ec23.png"),}),},}),Model: openai.F("hunyuan-vision"),},)}
curl https://api.hunyuan.cloud.tencent.com/v1/chat/completions \\-H "Content-Type: application/json" \\-H "Authorization: Bearer sk-xxxx" \\-d '{"model": "hunyuan-vision","messages": [{"role": "user","content": [{"type": "text","text": "这是什么图片"},{"type": "image_url","image_url": {"url": "https://qcloudimg.tencent-cloud.cn/raw/42c198dbc0b57ae490e57f89aa01ec23.png"}}]}]}'
查看更多完整示例
Python
NodeJS
Go
说明:
我们将努力保证混元与 OpenAI 的兼容性,但是仍然会存在一些细微的差异(通常来说并不会破坏整体的兼容性或者影响功能的使用)。
本文档会列出混元兼容接口与 OpenAI 的差异,开发者可以自行检查并评估对您应用的影响。
/v1/chat/completions
stop
调用 OpenAI 的接口时,如果您指定了
stop
参数, 模型会停止在匹配到 stop
的内容之前。
在调用混元接口时,会停止在匹配到 stop
的内容之后。
以原始输出 “
我是一个AI助手可以帮助您在不同方面做出更好的决策,解答您的疑问并提供可靠的信息。
”为例: | stop 参数 | 模型输出 |
OpenAI | 助手 | 我是一个AI |
混元 | 助手 | 我是一个AI助手 |
说明:
未来我们可能会修改此行为以便和 OpenAI 保持一致。
但是目前有使用该参数的情况下,开发者需要注意该参数是否会对应用造成影响,以及未来该行为调整时带来的影响。
stream_options
当流式返回且
stream_options.include_usage=true
时,会在最后一个数据块中返回 usage
信息。混元自定义参数
参数名称 | 必选 | 类型 | 默认值 | 描述 |
citation | 否 | Boolean | false | 搜索引文角标开关。 说明: 1. 配合 enable_enhancement 和 search_info 参数使用。打开后,回答中命中搜索的结果会在片段后增加角标标志,对应 search_info 列表中的链接。 2. false:开关关闭,true:开关打开。 3. 未传值时默认开关关闭(false)。 |
enable_deep_search | 否 | Boolean | false | 是否开启深度研究该问题,默认是false,在值为true且命中深度研究该问题时,会返回深度研究该问题信息。 |
enable_enhancement | 否 | Boolean | true | 功能增强(如搜索)开关。 说明: 1. hunyuan-lite 无功能增强(如搜索)能力,该参数对 hunyuan-lite 版本不生效。 2. 未传值时默认打开开关。 3. 关闭时将直接由主模型生成回复内容,可以降低响应时延(对于流式输出时的首字时延尤为明显)。但在少数场景里,回复效果可能会下降。 4. 安全审核能力不属于功能增强范围,不受此字段影响。 |
enable_multimedia | 否 | Boolean | false | 多媒体开关。 说明: 1. 该参数目前仅对白名单内用户生效,如您想体验该功能请 联系我们。 2. 该参数仅在功能增强(如搜索)开关开启(enable_enhancement=true)并且极速版搜索开关关闭(enable_speed_search=false)时生效。 3. hunyuan-lite 无多媒体能力,该参数对 hunyuan-lite 版本不生效。 4. 未传值时默认关闭。 5. 开启并搜索到对应的多媒体信息时,会输出对应的多媒体地址,可以定制个性化的图文消息。 |
enable_recommended_questions | 否 | Boolean | false | 推荐问答开关。 说明: 1. 未传值时默认关闭。 2. 开启后,在返回值的最后一个包中会增加 recommended_questions 字段表示推荐问答, 最多返回3条。 |
enable_speed_search | 否 | Boolean | false | 是否开启极速版搜索,默认 false,不开启。 在开启且命中搜索时,会启用极速版搜索,流式输出首字返回更快。 |
force_search_enhancement | 否 | Boolean | false | 强制搜索增强开关。 说明: 1. 未传值时默认关闭。 2. 开启后,将强制走AI搜索,当AI搜索结果为空时,由大模型回复兜底话术。 |
search_info | 否 | Boolean | false | 在值为true且命中搜索时,接口会返回 search_info |
/v1/embeddings
embedding 接口目前仅支持
input
和 model
参数,model
当前固定为 hunyuan-embedding
,dimensions
固定为 1024。