隨著deepseek在各大云商上線,試用了下阿里云和騰訊云的deepseek服務,在回答經典數學問題9.9和9.11誰大時,發現還是有差異的。將相關的問題記錄如下。
1、問題表現
筆者使用的openai的官方sdk go-openai。
因本文中測驗主要使用阿里云和騰訊云。
在阿里云官網頁面上時,回答正確:
通過api調用,不設置system提示詞時,回答問題時每次都會出錯:
代碼如下:
package mainimport ("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 mainimport ("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 mainimport ("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”
- 文本內容部分,是一個json對象:
- 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 mainimport ("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的模型,同樣的提示詞,不同的云平臺的部署和實現存在差異,不可等同視之。