deepseek-v3在阿里云和腾讯云的使用中的差异

随着deepseek在各大云商上线,试用了下阿里云和腾讯云的deepseek服务,在回答经典数学问题9.9和9.11谁大时,发现还是有差异的。将相关的问题记录如下。

1、问题表现

笔者使用的openai的官方sdk go-openai。

因本文中测验主要使用阿里云和腾讯云。

在阿里云官网页面上时,回答正确:

通过api调用,不设置system提示词时,回答问题时每次都会出错:

代码如下:

package main

import (
	"context"
	"fmt"

	"github.com/openai/openai-go"
	"github.com/openai/openai-go/option"
)

func main() {
	client := openai.NewClient(
		option.WithAPIKey("sk-xxxxxxxxxxxxxxxxx"), // defaults to os.LookupEnv("OPENAI_API_KEY")
        option.WithBaseURL("https://dashscope.aliyuncs.com/compatible-mode/v1/"),
	)
	chatCompletion, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
		Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
			 openai.UserMessage("9.9和9.11谁大"),
		}),
		Model: openai.F("deepseek-v3"),
	})
	if err != nil {
		panic(err.Error())
	}
	println(chatCompletion.Choices[0].Message.Content)
}

若是发往腾讯云:

回答正确:

"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   \\[\n   9.9 = 9.90\n   \\]\n   \\[\n   9.11 = 9.11\n   \\]\n\n2. **逐位比较**:\n   - **个位数**:两者都是 \\(9\\),相等。\n   - **十分位**:\\(9.90\\) 的十分位是 \\(9\\),\\(9.11\\) 的十分位是 \\(1\\)。\n   \n   由于 \\(9 > 1\\),因此 \\(9.90 > 9.11\\)。\n\n**最终结论**:\n\\[\n\\boxed{9.9 \\text{ 大于 } 9.11}\n\\]"
"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   \\[\n   9.9 = 9.90\n   \\]\n   \\[\n   9.11 = 9.11\n   \\]\n\n2. **逐位比较**:\n   - **个位数**:两者都是 \\(9\\),相等。\n   - **十分位**:\\(9.90\\) 的十分位是 \\(9\\),\\(9.11\\) 的十分位是 \\(1\\)。\n   \n   由于 \\(9 > 1\\),所以 \\(9.90 > 9.11\\)。\n\n因此,\\(9.9\\) 大于 \\(9.11\\)。\n\n\\[\n\\boxed{9.9 > 9.11}\n\\]"
"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **比较整数部分**:\n   - 两个数的整数部分都是 \\(9\\),所以需要比较小数部分。\n\n2. **比较小数部分**:\n   - \\(9.9\\) 的小数部分是 \\(0.9\\)。\n   - \\(9.11\\) 的小数部分是 \\(0.11\\)。\n\n3. **转换为相同小数位数**:\n   - 将 \\(0.9\\) 转换为 \\(0.90\\),以便与 \\(0.11\\) 比较。\n   \n4. **进行大小比较**:\n   - \\(0.90 > 0.11\\),因此 \\(9.9 > 9.11\\)。\n\n**最终答案**:\n\\[\n\\boxed{9.9}\n\\]"

如果通过curl直接调用api时,不设置任何提示词时,

发往阿里云时,回答有时会错误:

输入命令:

curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions -H "Authorization: Bearer sk-xxxxxxxxxxxxxxx" -H "Content-Type: application/json" -d '{
    "model": "deepseek-v3",
    "messages": [
        {
            "role": "user", 
            "content": "9.9和9.11谁大?"
        }
    ]
}'

第一次答案:

9.9比9.11大,详细报文如下:

{"choices":[{"message":{"content":"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   - 将 **9.9** 写成 **9.90**,以便于比较。\n   \n2. **逐位比较**:\n   - **整数部分**:两数的整数部分都是 **9**,相等。\n   - **小数部分**:\n     - 第一位小数:**9.90** 的第一位小数是 **9**,**9.11** 的第一位小数是 **1**。\n     - 由于 **9 > 1**,所以 **9.90 > 9.11**。\n\n因此,**9.9** 大于 **9.11**。\n\n最终答案:\\boxed{9.9 > 9.11}","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":13,"completion_tokens":175,"total_tokens":188},"created":1739847540,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-581f773a-f1ed-92f6-981d-00408259761d"}

第二次答案:是9.11比9.9大,详细报文如下:

{"choices":[{"message":{"content":"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   为了便于比较,将两个数的小数位数统一。将 \\(9.9\\) 写成 \\(9.90\\)。\n   \n   \\[\n   9.9 = 9.90\n   \\]\n   \n2. **逐位比较**:\n   从左到右逐位比较两个数:\n   \n   - **整数部分**:两者都是 \\(9\\),相等。\n   - **第一位小数**:两者都是 \\(9\\),相等。\n   - **第二位小数**:\\(0\\)(在 \\(9.90\\) 中) vs \\(1\\)(在 \\(9.11\\) 中)。\n   \n   因为 \\(0 < 1\\),所以 \\(9.90 < 9.11\\)。\n\n3. **结论**:\n   \\[\n   9.9 < 9.11\n   \\]\n   \n因此,\\(\\boxed{9.11}\\) 更大。","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":13,"completion_tokens":218,"total_tokens":231},"created":1739847774,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-15511b5b-d92d-9ca2-859c-13bf003e4381"}

而发往腾讯云时,执行三次结果全部正确:

通过上述,可以发现,阿里云在执行时,通过api进行调用时,使用go代码和shell代码执行结果并不一致,因此其可能存在逻辑并不相同的情况。

2、设置一中性通用提示词,对结果的影响

若设置system提示词为:you are a helpful assister

使用go代码时,在调用阿里云服务时结果为:

"9.11比9.9大。在比较小数时,从左到右逐位比较,9.9可以看作9.90,而9.11的十分位是1,比9.90的十分位9大,因此9.11更大。<|im_end|>"

同样代码,在调用腾讯云服务时,结果正确:

要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n - 将 **9.9** 写成 **9.90**,以便与 **9.11** 进行比较。\n\n2. **逐位比较**:\n - **个位数**:两者都是 **9**,相等。\n - **十分位**:**9.90** 的十分位是 **9**,**9.11** 的十分位是 **1**。由于 **9 > 1**,因此 **9.90 > 9.11**。\n\n3. **结论**:\n - **9.9** 大于 **9.11**。\n\n最终答案:\\boxed{9.9 > 9.11}

go代码为:

package main

import (
	"context"
	"fmt"

	"github.com/openai/openai-go"
	"github.com/openai/openai-go/option"
)

func main() {
	client := openai.NewClient(
		option.WithAPIKey("sk-xxxxxxxxxxxxxxxxx"), // defaults to os.LookupEnv("OPENAI_API_KEY")
        //阿里云调用地址
        option.WithBaseURL("https://dashscope.aliyuncs.com/compatible-mode/v1/"),
        //腾讯云地址
        //option.WithBaseURL("https://api.lkeap.cloud.tencent.com/v1/"),
	)
	chatCompletion, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
		Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
			 openai.SystemMessage("you are a helpful assister"), openai.UserMessage("9.9和9.11谁大"),
		}),
		Model: openai.F("deepseek-v3"),
	})
	if err != nil {
		panic(err.Error())
	}
	println(chatCompletion.Choices[0].Message.Content)
}

通过curl直接调用阿里云或腾讯云服务时均正确:

curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
    "model": "deepseek-v3",
    "messages": [
        {
            "role": "system",
            "content": "You a helpful assister."
        },
        {
            "role": "user", 
            "content": "9.9和9.11谁大?"
        }
    ]
}'

阿里云三次输出结果,二次正确,一次错误:

第一次结果错误,显示9.11大于9.9

{"choices":[{"message":{"content":"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   将 \\(9.9\\) 写成两位小数:\n   \\[\n   9.9 = 9.90\n   \\]\n   \n2. **逐位比较**:\n   \\[\n   \\begin{align*}\n   \\text{整数部分} & : 9 = 9 \\\\\n   \\text{第一位小数} & : 9 = 9 \\\\\n   \\text{第二位小数} & : 0 < 1 \\\\\n   \\end{align*}\n   \\]\n   \n   在第二位小数上,\\(0 < 1\\),因此 \\(9.90 < 9.11\\)。\n\n3. **结论**:\n   \\[\n   9.9 < 9.11\n   \\]\n\n所以,\\(9.11\\) 比 \\(9.9\\) 大。\n\n\\[\n\\boxed{9.11 \\text{ 更大}}\n\\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":19,"completion_tokens":211,"total_tokens":230},"created":1739865100,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-0eab475c-656c-9627-91a6-b5edd90c1cda"}

正确的二次结果:

{"choices":[{"message":{"content":"**解答:**\n\n比较两个小数 \\(9.9\\) 和 \\(9.11\\) 的大小。\n\n1. **统一小数位数:**\n   \\[\n   9.9 = 9.90\n   \\]\n   \\[\n   9.11 = 9.11\n   \\]\n\n2. **逐位比较:**\n   - 个位数:\\(9 = 9\\)(相等)\n   - 十位小数:\\(9 > 1\\)\n\n由于在十位小数上 \\(9.90\\) 的 \\(9\\) 大于 \\(9.11\\) 的 \\(1\\),因此:\n\\[\n9.90 > 9.11\n\\]\n\n**最终答案:**\n\\[\n\\boxed{9.9 > 9.11}\n\\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":19,"completion_tokens":163,"total_tokens":182},"created":1739865225,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-b5755232-db96-98e0-abb5-1727a1e1cdb5"}
{"choices":[{"message":{"content":"**解答:**\n\n比较两个数 \\(9.9\\) 和 \\(9.11\\) 的大小。\n\n1. **统一小数位数:**\n   为了方便比较,将 \\(9.9\\) 写成 \\(9.90\\)。\n\n2. **逐位比较:**\n   - 比较整数部分:\\(9 = 9\\),相等。\n   - 比较第一位小数:\\(9 > 1\\)。\n\n3. **结论:**\n   由于第一位小数 \\(9 > 1\\),所以 \\(9.90 > 9.11\\)。\n\n最终答案:\\boxed{9.9\\ \\text{更大}}","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":19,"completion_tokens":132,"total_tokens":151},"created":1739865274,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-b6d313fe-3b5d-948b-8b7a-0c63b9055213"}

发往腾讯云的代码:

  curl -X POST https://api.lkeap.cloud.tencent.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxx" \
  -H "Content-Type: application/json" \
  -d '{
      "model": "deepseek-v3",
      "messages": [
          {
              "role": "system",
              "content": "You a helpful assister."
          },
          {
              "role": "user", 
              "content": "9.9和9.11谁大?"
          }
      ]
  }'

腾讯云每次均正确,三次调用结果如下:

{"id":"0cbeaab6ca3b27bb4f9b40915806912d","object":"chat.completion","created":1739865487,"model":"deepseek-v3","choices":[{"index":0,"message":{"role":"assistant","content":"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   - 将 **9.9** 写成 **9.90**,以便与 **9.11** 进行比较。\n\n2. **逐位比较**:\n   - **个位数**:两者都是 **9**,相等。\n   - **十分位**:**9.90** 的十分位是 **9**,**9.11** 的十分位是 **1**。由于 **9 \u003e 1**,因此 **9.90 \u003e 9.11**。\n\n或者,可以将两个数都转换为分数形式进行比较:\n\n3. **转换为分数**:\n   - **9.9** 可以表示为 \\( 9 \\frac{9}{10} = \\frac{99}{10} \\)。\n   - **9.11** 可以表示为 \\( 9 \\frac{11}{100} = \\frac{911}{100} \\)。\n\n4. **比较分数**:\n   - 将 \\( \\frac{99}{10} \\) 转换为分母为 **100** 的分数:\\( \\frac{990}{100} \\)。\n   - 比较 \\( \\frac{990}{100} \\) 和 \\( \\frac{911}{100} \\),显然 \\( 990 \u003e 911 \\),所以 \\( \\frac{990}{100} \u003e \\frac{911}{100} \\)。\n\n综上所述,**9.9** 大于 **9.11**。\n\n\\[\n\\boxed{9.9 \u003e 9.11}\n\\]"},"finish_reason":"stop"}],"usage":{"prompt_tokens":23,"completion_tokens":341,"total_tokens":364}}
{"choices":[{"message":{"content":"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   将 \\(9.9\\) 写成 \\(9.90\\),以便与 \\(9.11\\) 进行比较。\n\n2. **逐位比较**:\n   - **个位数**:两者都是 \\(9\\),相等。\n   - **十分位**:\\(9.90\\) 的十分位是 \\(9\\),\\(9.11\\) 的十分位是 \\(1\\)。\n   \n   由于 \\(9 > 1\\),所以 \\(9.90 > 9.11\\)。\n\n**最终答案:**\n\\[\n\\boxed{9.9 > 9.11}\n\\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":19,"completion_tokens":158,"total_tokens":177},"created":1739865560,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-aac07423-8ed4-9988-934c-ba3dd78e1cad"}
{"choices":[{"message":{"content":"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   - 将 **9.9** 写成 **9.90**,这样两个数的小数位数相同,便于比较。\n\n2. **逐位比较**:\n   - **个位数**:两者都是 **9**,相等。\n   - **十分位**:**9.90** 的十分位是 **9**,**9.11** 的十分位是 **1**。\n   \n   由于 **9 > 1**,因此 **9.90 > 9.11**。\n\n**结论**:\n\\boxed{9.9 > 9.11}","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":19,"completion_tokens":157,"total_tokens":176},"created":1739865685,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-bcd8c5df-9380-9d1a-933e-b4e7b9e0d794"}

3、设置一无意义的提示词对问题的影响

提示词为you

go代码为:

package main

import (
	"context"
	"fmt"

	"github.com/openai/openai-go"
	"github.com/openai/openai-go/option"
)

func main() {
	client := openai.NewClient(
		option.WithAPIKey("sk-xxxxxxxxxxxxxxxxx"), // defaults to os.LookupEnv("OPENAI_API_KEY")
        //阿里云调用地址
        option.WithBaseURL("https://dashscope.aliyuncs.com/compatible-mode/v1/"),
        //腾讯云地址
        //option.WithBaseURL("https://api.lkeap.cloud.tencent.com/v1/"),
	)
	chatCompletion, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
		Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
			 openai.SystemMessage("you"), openai.UserMessage("9.9和9.11谁大"),
		}),
		Model: openai.F("deepseek-v3"),
	})
	if err != nil {
		panic(err.Error())
	}
	println(chatCompletion.Choices[0].Message.Content)
}

阿里云执行的结果不正确为:

9.11比9.9大。在比较小数时,从左到右逐位比较,9.9可以看作9.90,而9.11的第一位小数是1,比9.90的第一位小数9大,因此9.11大于9.9。<|im_end|>

腾讯云执行结果正确:

要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   将 **9.9** 转换为 **9.90**,以便与 **9.11** 进行比较。\n\n2. **逐位比较**:\n   - **个位数**:两者都是 **9**,相等。\n   - **十分位**:**9.90** 的十分位是 **9**,**9.11** 的十分位是 **1**。\n   \n   由于 **9 > 1**,所以 **9.90 > 9.11**。\n\n**最终答案:**\n\\[\n\\boxed{9.9 > 9.11}\n\\]

使用curl的结果分析:

发往阿里云的代码:

curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
    "model": "deepseek-v3",
    "messages": [
        {
            "role": "system",
            "content": "you"
        },
        {
            "role": "user", 
            "content": "9.9和9.11谁大?"
        }
    ]
}'

三次执行结果均正确:

{"choices":[{"message":{"content":"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   将 \\(9.9\\) 转换为 \\(9.90\\),便于与 \\(9.11\\) 比较。\n\n2. **逐位比较**:\n   - **个位数**:两个数的个位数都是 \\(9\\),相等。\n   - **十分位**:\\(9.90\\) 的十分位是 \\(9\\),而 \\(9.11\\) 的十分位是 \\(1\\)。\n   \n   由于 \\(9 > 1\\),所以 \\(9.90 > 9.11\\)。\n\n因此,\\(9.9\\) 大于 \\(9.11\\)。\n\n\\[\n\\boxed{9.9\\ >\\ 9.11}\n\\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":14,"completion_tokens":174,"total_tokens":188},"created":1739868276,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-d928cc66-2ff5-950d-aa25-3e63b71c5ea8"}
{"choices":[{"message":{"content":"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   \n   为了便于比较,将 \\(9.9\\) 转换为 \\(9.90\\)。\n\n2. **逐位比较**:\n   \n   \\[\n   \\begin{align*}\n   &\\underline{9}.\\underline{9}\\underline{0} \\quad (\\text{即 } 9.90) \\\\\n   &\\underline{9}.\\underline{1}\\underline{1} \\quad (\\text{即 } 9.11)\n   \\end{align*}\n   \\]\n   \n   - **整数部分**:两数的整数部分都是 \\(9\\),相同。\n   - **十分位**:\\(9\\)(来自 \\(9.90\\))大于 \\(1\\)(来自 \\(9.11\\))。\n   \n   因此,\\(9.90\\) 大于 \\(9.11\\)。\n\n3. **结论**:\n   \n   \\[\n   \\boxed{9.9 > 9.11}\n   \\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":14,"completion_tokens":225,"total_tokens":239},"created":1739868380,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-f9d5f7d3-1886-9b1e-8dc6-cbbe5e999ce9"}
{"choices":[{"message":{"content":"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   将 **9.9** 写成 **9.90**,这样两个数都有两位小数,便于比较。\n\n2. **逐位比较**:\n   - **整数部分**:9 和 9 相同。\n   - **第一位小数**:9 和 1。因为 9 > 1,所以 **9.90 > 9.11**。\n\n因此,**9.9** 大于 **9.11**。\n\n最终答案:\\boxed{9.9}","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":14,"completion_tokens":138,"total_tokens":152},"created":1739868423,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-90359b2a-ac45-951b-9069-6e57c07edf9a"}

发往腾讯云的代码:

 curl -X POST https://api.lkeap.cloud.tencent.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
      "model": "deepseek-v3",
      "messages": [
          {
              "role": "system",
              "content": "you"
          },
          {
              "role": "user", 
              "content": "9.9和9.11谁大?"
          }
      ]
  }'

失败一次:

{"id":"13e0702bd97a5c2ae19e0fdbe8d55e8f","object":"chat.completion","created":1739868567,"model":"deepseek-v3","choices":[{"index":0,"message":{"role":"assistant","content":"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   \n   将 **9.9** 写成 **9.90**,这样两个数的小数位数相同,便于比较。\n\n2. **逐位比较**:\n   \n   - **个位数**:两个数的个位数都是 **9**,相等。\n   - **十分位**:两个数的十分位都是 **9**,相等。\n   - **百分位**:**9.90** 的百分位是 **0**,而 **9.11** 的百分位是 **1**。\n\n3. **确定大小**:\n   \n   由于在百分位上 **1 \u003e 0**,所以 **9.11 \u003e 9.90**。\n\n**最终答案:**\n\n\\[\n\\boxed{9.11 \\text{ 更大}}\n\\]"},"finish_reason":"stop"}],"usage":{"prompt_tokens":23,"completion_tokens":194,"total_tokens":217}}

成功二次:

{"choices":[{"message":{"content":"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   将 \\(9.9\\) 写成 \\(9.90\\),以便与 \\(9.11\\) 进行比较。\n\n2. **逐位比较**:\n   - 比较整数部分:两者都是 \\(9\\),相等。\n   - 比较第一位小数:\\(9.90\\) 的第一位小数是 \\(9\\),而 \\(9.11\\) 的第一位小数是 \\(1\\)。由于 \\(9 > 1\\),因此 \\(9.90 > 9.11\\)。\n\n3. **得出结论**:\n   \\[\n   9.9 > 9.11\n   \\]\n\n最终答案是:\n\\[\n\\boxed{9.9}\n\\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":14,"completion_tokens":171,"total_tokens":185},"created":1739868850,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-bc3e2987-6cf7-92ed-ab54-7ce0022a03aa"}
{"choices":[{"message":{"content":"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   - 将 **9.9** 转换为 **9.90**,以便与 **9.11** 进行比较。\n\n2. **逐位比较**:\n   - **整数部分**:两者都是 **9**,相等。\n   - **第一位小数**:**9.90** 的第一位小数是 **9**,而 **9.11** 的第一位小数是 **1**。\n   \n3. **得出结论**:\n   - 由于 **9 > 1**,因此 **9.90 > 9.11**。\n\n最终,**9.9** 大于 **9.11**。\n\n\\[\n\\boxed{9.9 > 9.11}\n\\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":14,"completion_tokens":179,"total_tokens":193},"created":1739871179,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-7facfd28-9db2-9274-af43-fdbef215eaee"}

4 设置带有思考逻辑提示词

提示词:识别用户的问题类型,回答问题的类型,并作为该类型问题专家,思考用户并回答用户提出的问题

相关代码同第第3节

go代码阿里云回答的结果,全部错误:

这是一个数学比较问题。作为数学专家,我来回答这个问题。\n\n9.11 比 9.9 大。因为在小数比较中,我们先比较整数部分,两者都是9,然后比较小数部分,0.11大于0.9。所以9.11大于9.9。
这是一个数学比较问题。作为数学专家,我来回答这个问题。\n\n9.11 比 9.9 大。因为在小数点后第一位,1 比 9 小,所以 9.11 大于 9.9。
用户的问题是关于数值比较的问题。作为数值比较问题的专家,我将帮助用户比较这两个数值的大小。\n\n要比较9.9和9.11的大小,我们可以将它们转换为相同的小数位数以便更清楚地比较:\n\n- 9.9 可以写成 9.90\n- 9.11 保持不变\n\n现在,我们比较这两个数值:\n\n9.90 < 9.11\n\n因此,9.11 大于 9.9。\n\n答案:9.11 大于 9.9。<|im_end|>

go代码腾讯云的回答结果二次错误,一次正确:

错误的结果:

"9.11比9.9大。在比较小数时,我们首先比较整数部分,如果整数部分相同,再比较小数部分。在这个例子中,两个数的整数部分都是9,但9.11的小数部分(0.11)大于9.9的小数部分(0.9),因此9.11更大。"
"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   为了方便比较,将 **9.9** 写成 **9.90**。\n\n2. **逐位比较**:\n   - **个位数**:两数的个位数都是 **9**,相等。\n   - **十分位**:两数的十分位都是 **9**,相等。\n   - **百分位**:**9.90** 的百分位是 **0**,而 **9.11** 的百分位是 **1**。\n\n3. **得出结论**:\n   由于在百分位上 **1 > 0**,所以 **9.11 > 9.90**。\n\n**最终答案:**\n\\[\n\\boxed{9.11 \\text{ 大于 } 9.9}\n\\]"

正确的结果:

"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   为了方便比较,将 **9.9** 写成 **9.90**。\n\n2. **逐位比较**:\n   - **个位数**:两者都是 **9**,相等。\n   - **十分位**:**9.90** 的十分位是 **9**,**9.11** 的十分位是 **1**。\n   \n   由于 **9 > 1**,所以 **9.90 > 9.11**。\n\n**最终答案:**\n\\[\n\\boxed{9.9 > 9.11}\n\\]"

curl命令的执行结果:

发往阿里云的三次执行结果全部正确:

{"choices":[{"message":{"content":"在比较9.9和9.11时,我们可以通过将它们转换为相同的小数位数来简化比较:\n\n- 9.9可以写作9.90\n- 9.11保持不变\n\n现在比较9.90和9.11,显然9.90大于9.11。因此,9.9大于9.11。","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":36,"completion_tokens":70,"total_tokens":106},"created":1739874057,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-fd5adad0-625e-9d69-bbf0-6d65684454dc"}
{"choices":[{"message":{"content":"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,我们可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   为了方便比较,将两数的小数位数统一。将 \\(9.9\\) 写成 \\(9.90\\)。\n\n2. **逐位比较**:\n   - 比较个位数:两个数的个位数都是 \\(9\\),相等。\n   - 比较十分位:\\(9.90\\) 的十分位是 \\(9\\),而 \\(9.11\\) 的十分位是 \\(1\\)。由于 \\(9 > 1\\),因此 \\(9.90 > 9.11\\)。\n\n3. **结论**:\n   通过以上比较,可以得出 \\(9.9\\) 大于 \\(9.11\\)。\n\n\\[\n\\boxed{9.9 > 9.11}\n\\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":36,"completion_tokens":182,"total_tokens":218},"created":1739874266,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-d4f846cd-20b8-91c2-aa98-3730fb88cd37"}
{"choices":[{"message":{"content":"要比较 \\(9.9\\) 和 \\(9.11\\) 的大小,我们可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   为了方便比较,我们将两个数都保留两位小数:\n   \\[\n   9.9 = 9.90\n   \\]\n   \\[\n   9.11 = 9.11\n   \\]\n\n2. **逐位比较**:\n   - 比较整数部分:两者的整数部分都是 \\(9\\),相等。\n   - 比较第一位小数:\\(9.90\\) 的第一位小数是 \\(9\\),而 \\(9.11\\) 的第一位小数是 \\(1\\)。\n   - 因为 \\(9 > 1\\),所以 \\(9.90 > 9.11\\)。\n\n3. **结论**:\n   \\[\n   9.9 > 9.11\n   \\]\n\n因此,\\(9.9\\) 比 \\(9.11\\) 大。\n\n\\[\n\\boxed{9.9 \\text{ 大于 } 9.11}\n\\]","reasoning_content":"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":36,"completion_tokens":220,"total_tokens":256},"created":1739874530,"system_fingerprint":null,"model":"deepseek-v3","id":"chatcmpl-e30fad3c-dbbb-9739-b557-df1fdc02431a"}

发往腾讯云的三次执行结果全部正确:

错误

{"id":"67946867247717b454fee86f05d5e84b","object":"chat.completion","created":1739874853,"model":"deepseek-v3","choices":[{"index":0,"message":{"role":"assistant","content":"9.11 比 9.9 大。\n\n解释:\n- 9.9 可以理解为 9 又 9/10,即 9.90。\n- 9.11 可以理解为 9 又 11/100,即 9.11。\n\n比较小数点后的部分,0.11 大于 0.90,因此 9.11 大于 9.9。"},"finish_reason":"stop"}],"usage":{"prompt_tokens":39,"completion_tokens":88,"total_tokens":127}}

正确:

{"id":"3d4f5e01cb183c6e6069ed19cc9103aa","object":"chat.completion","created":1739876125,"model":"deepseek-v3","choices":[{"index":0,"message":{"role":"assistant","content":"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   - 将 **9.9** 写成 **9.90**,以便与 **9.11** 进行比较。\n\n2. **逐位比较**:\n   - **整数部分**:两者都是 **9**,相等。\n   - **十分位**:**9.90** 的十分位是 **9**,**9.11** 的十分位是 **1**。由于 **9 \u003e 1**,因此 **9.90 \u003e 9.11**。\n\n**结论**:\n\\[\n\\boxed{9.9 \\text{ 大于 } 9.11}\n\\]"},"finish_reason":"stop"}],"usage":{"prompt_tokens":39,"completion_tokens":163,"total_tokens":202}}
{"id":"1b9728633fead52bbbc2e835692b02e9","object":"chat.completion","created":1739876187,"model":"deepseek-v3","choices":[{"index":0,"message":{"role":"assistant","content":"要比较 **9.9** 和 **9.11** 的大小,可以按照以下步骤进行:\n\n1. **统一小数位数**:\n   为了方便比较,将 **9.9** 写成 **9.90**。\n\n2. **逐位比较**:\n   - **个位数**:两者都是 **9**,相等。\n   - **十分位**:**9.90** 的十分位是 **9**,**9.11** 的十分位是 **1**。\n   \n   由于 **9 \u003e 1**,因此 **9.90 \u003e 9.11**。\n\n**最终答案:**\n\\[\n\\boxed{9.9 \u003e 9.11}\n\\]"},"finish_reason":"stop"}],"usage":{"prompt_tokens":39,"completion_tokens":152,"total_tokens":191}}

5 接口分析

由1~4节执行的结果看,在相同的提示词情况下,通过go实现的接口得到的结果和通过curl获得的内容差异较大,尤其是在阿里云平台上表现更是如此。通过代码调试后,将报文内容序列后,得到message格式为:

"messages": [
      {
        "content": [
          {
            "text": "you",
            "type": "text"
          }
        ],
        "role": "system"
      },
      {
        "content": [
          {
            "text": "9.9和9.11谁大",
            "type": "text"
          }
        ],
        "role": "user"
      }
    ]

参考文章OpenAI API格式详解-Chat Completions

一个完整的User message是一个json对象,包含以下字段:

  • content必须提供的string或array类型,二选一,表示user的消息内容
    • 为string类型时,表示消息的文本内容
    • 为array类型时,一般用于调用多模态模型,用来包含多个内容部分的数组,一般是一个文本内容的json对象和一个或多个图片内容的json对象。仅当使用 gpt-4-visual-preview 这样的多模态模型时才支持图像输入。具体字段如下:
      • 文本内容部分,是一个json对象:
        • type:必须提供的string类型,表示内容部分的类型,一般是“text”
        • text:必须提供的string类型,文字内容
      • 图片内容部分,是一个json对象:
        • type:必须提供的string类型,表示内容部分的类型,一般是"image_url"
        • image_url:必须提供的json对象类型,字段有:
          • url:必须提供的string类型,图像的 URL 或 Base64 编码的图像数据
          • detail:可选的string类型,一般默认是“auto”
  • role:必须提供的string类型,表示消息作者的角色,对于user message应该是"user"
  • name:可选的string类型,表示对话参与者的名称

因此根据openai sdk官网实现的内容,实际上对应于多模态的实现部分。

通过curl执行以下代码,可以得到上述go代码类似的效果

curl -X POST https://api.lkeap.cloud.tencent.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
    "messages": [
      {
        "content": [
          {
            "text": "识别用户的问题类型,回答问题的类型,并作为该类型问题专家,思考并回答用户提出的问题",
            "type": "text"
          }
        ],
        "role": "system"
      },
      {
        "content": [
          {
            "text": "9.9和9.11谁大",
            "type": "text"
          }
        ],
        "role": "user"
      }
    ],
    "model": "deepseek-v3"
  }'

而go代码若是需要得到类似于1~3的curl结果的实现,需要进行以下的实现:

package main

import (
	"context"
	"fmt"

	"github.com/openai/openai-go"
	"github.com/openai/openai-go/option"
)

func main() {
	client := openai.NewClient(
		option.WithAPIKey("sk-xxxxxxxxxxxxxxxxx"), // defaults to os.LookupEnv("OPENAI_API_KEY")
        option.WithBaseURL("https://dashscope.aliyuncs.com/compatible-mode/v1/"),
	)
	chatCompletion, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
		Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
             openai.ChatCompletionMessage{Role: oai.ChatCompletionMessageRole(oai.ChatCompletionUserMessageParamRoleUser), Content: "识别用户的问题类型,回答问题的类型,并作为该类型问题专家,思考并回答用户提出的问题"},
			 openai.ChatCompletionMessage{Role: oai.ChatCompletionMessageRole(oai.ChatCompletionSystemMessageParamRoleSystem), Content: "9.9和9.11谁大"}
		}),
		Model: openai.F("deepseek-v3"),
	})
	if err != nil {
		panic(err.Error())
	}
	println(chatCompletion.Choices[0].Message.Content)
}

6 结论

同样的deepseek-v3的模型,同样的提示词,不同的云平台的部署和实现存在差异,不可等同视之。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972253.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

React 与 Vue 对比指南 - 上

React 与 Vue 对比指南 - 上 本文将展示如何在 React 和 Vue 中实现常见功能&#xff0c;从基础渲染到高级状态管理 Hello 分别使用 react 和 vue 写一个 Hello World&#xff01; react export default () > {return <div>Hello World!</div>; }vue <…

STM32 HAL库 UART串口发送数据实验

一、实验目标 通过STM32的UART串口发送字符串数据到PC端串口调试助手&#xff0c;验证通信功能。 二、硬件准备 主控芯片&#xff1a;STM32F103C8T6。 串口模块&#xff1a;USB转TTL模块。 接线说明&#xff1a; STM32的USART1_TX&#xff08;PA9&#xff09; → USB-TTL模…

WPF创建自定义类和控件及打包成dll引用

WPF创建自定义类和控件及打包成dll引用 一、前言二、创建自定义类和控件并生成dll文件2.1创建类库项目2.2创建自定义类和控件2.3生成dll文件 三、在其他项目中引用3.1添加dll文件引用3.2cs文件中引用命名空间3.3XAML文件中引用命名空间 一、前言 出于一些代码复用的需求&#…

平板作为电脑拓展屏

有线串流&#xff08;速度更快&#xff09; spacedesk 打开usb对安卓的连接 用usb线直接连接电脑和平板 无线串流&#xff08;延迟高&#xff0c;不推荐&#xff09; todesk pc和手机端同时下载软件&#xff0c;连接后可以进行远程控制或扩展屏幕 spacedesk 连接到同一个…

深度学习05 ResNet残差网络

目录 传统卷积神经网络存在的问题 如何解决 批量归一化BatchNormalization, BN 残差连接方式 ​残差结构 ResNet网络 ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出&#xff0c;斩获当年ImageNet竞赛中分类任务第一名&#xff0c;目标检测第一名。获得CO…

【ClickHouse】Ubuntu下离线安装ClickHouse数据库并使用DBeaver连接

目录 0. 安装前准备1 安装ClickHouse1.1 下载安装包1.2 离线安装1.3 配置密码1.4 启动ClickHouse服务 2 DBeaver连接配置2.1 下载ClickHouse驱动2.2 DBeaver配置2.2.1 配置主要参数2.2.2 配置驱动 2.3 常见问题处理2.3.1 修改远程登录配置2.3.2 更新驱动配置 0. 安装前准备 有…

缓存三大问题及其解决方案

缓存三大问题及其解决方案 1. 前言 ​ 在现代系统架构中&#xff0c;缓存与数据库的结合使用是一种经典的设计模式。为了确保缓存中的数据与数据库中的数据保持一致&#xff0c;通常会给缓存数据设置一个过期时间。当系统接收到用户请求时&#xff0c;首先会访问缓存。如果缓…

千峰React:脚手架准备+JSX基础

组件化->封装性 React提供函数组件实现组件化 React和传统JS的区别就是JS需要手动管理DOM操作&#xff0c;React: 采用组件化开发&#xff0c;通过虚拟DOM提升性能。 MVC 是一种软件设计模式&#xff0c;全称为 Model-View-Controller&#xff08;模型-视图-控制器&#x…

springmvc(13/158)

太感动了&#xff0c;搞了半天以为是 这个dispatcherservlet报错的问题&#xff0c;结果是我第一次改springmvc-servlet.xml里面的后缀出了问题。 <servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.D…

节目选择器安卓软件编写(针对老年人)

文章目录 需求来源软件界面演示效果源码获取 对爬虫、逆向感兴趣的同学可以查看文章&#xff0c;一对一小班教学&#xff1a;https://blog.csdn.net/weixin_35770067/article/details/142514698 需求来源 由于现在的视频软件过于复杂&#xff0c;某客户想开发一个针对老年人、…

图解循环神经网络(RNN)

目录 1.循环神经网络介绍 2.网络结构 3.结构分类 4.模型工作原理 5.模型工作示例 6.总结 1.循环神经网络介绍 RNN&#xff08;Recurrent Neural Network&#xff0c;循环神经网络&#xff09;是一种专门用于处理序列数据的神经网络结构。与传统的神经网络不同&#xff0c…

深入解析Qt事件循环

在Qt开发中&#xff0c;QApplication::exec()这行代码是每个开发者都熟悉的“魔法咒语”。为什么GUI程序必须调用它才能响应操作&#xff1f;为何耗时操作会导致界面冻结&#xff1f;本文将以事件循环为核心&#xff0c;揭示Qt高效运转的底层逻辑&#xff0c;探讨其设计哲学与最…

超全Deepseek资料包,deepseek下载安装部署提示词及本地部署指南介绍

该资料包涵盖了DeepSeek模型的下载、安装、部署以及本地运行的详细指南&#xff0c;适合希望在本地环境中高效运行DeepSeek模型的用户。资料包不仅包括基础的安装步骤&#xff0c;还提供了68G多套独立部署视频教程教程&#xff0c;针对不同硬件配置的模型选择建议&#xff0c;以…

计算机网络(涵盖OSI,TCP/IP,交换机,路由器,局域网)

一、网络通信基础 &#xff08;一&#xff09;网络通信的概念 网络通信是指终端设备之间通过计算机网络进行的信息传递与交流。它类似于现实生活中的物品传递过程&#xff1a;数据&#xff08;物品&#xff09;被封装成报文&#xff08;包裹&#xff09;&#xff0c;通过网络…

【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)

背景需求&#xff1a; 做了中班的四类活动安排表&#xff0c;我顺便给大班做一套 【办公类-90-01】】20250213中班周计划四类活动的写法&#xff08;分散运动、户外游戏、个别化&#xff08;美工室图书吧探索室&#xff09;&#xff09;-CSDN博客文章浏览阅读874次&#xff0…

深度学习笔记之自然语言处理(NLP)

深度学习笔记之自然语言处理(NLP) 在行将开学之时&#xff0c;我将开始我的深度学习笔记的自然语言处理部分&#xff0c;这部分内容是在前面基础上开展学习的&#xff0c;且目前我的学习更加倾向于通识。自然语言处理部分将包含《动手学深度学习》这本书的第十四章&#xff0c…

使用IDEA创建Maven项目、Maven坐标,以及导入Maven项目

一、创建Maven项目 正如使用Vue创建工程化的前端项目&#xff0c;此时&#xff0c;使用Maven创建标准化的后端项目。 以下适用于2021版本的IDEA。 name和artifactid会自动保持一致。 Groupid&#xff1a;一般写公司域名倒写&#xff0c;再加上项目名&#xff08;也可以不…

Oracle视图(基本使用)

视图 视图是通过定制的方式显示一个或者多个表的数据。 视图可以视为“虚拟表”或“存储的查询”。 视图的优点&#xff1a; 提供了另外一种级别的表安全性隐藏了数据的复杂性简化了用户的SQL命令隔离基表结构的改变通过重命名列&#xff0c;从另一个角度提供数据。 视图里…

安装海康威视相机SDK后,catkin_make其他项目时,出现“libusb_set_option”错误的解决方法

硬件&#xff1a;雷神MIX G139H047LD 工控机 系统&#xff1a;ubuntu20.04 之前运行某项目时&#xff0c;处于正常状态。后来由于要使用海康威视工业相机&#xff08;型号&#xff1a;MV-CA013-21UC&#xff09;&#xff0c;便下载了并安装了该相机的SDK&#xff0c;之后运行…

【Vue+python】Vue调用python-fastApi接口实现数据(数值、列表类型数据)渲染

前言&#xff1a;之前做的一直都是SpringBootVue的应用&#xff0c;但现在需要实现一个能将python实现的算法应用展示在前端的界面。想法是直接Vue调用python-fastApi接口实现数据渲染~ 文章目录 1. 变量定义2. axios调用python3. 跨域问题解决4. 数据渲染4.1 数值数据渲染4.2 …