deepseek V3 的代码能力是行业 top1 吗?

deepseek V3 的代码能力是行业 top1  吗?
收藏者
0
被浏览
105

5 个回答

这个 LV

发表于 2025-4-27 15:12:29

写的代码不能用,结构不清晰
  1. 写一个python binance futures tick 类,用于动态订阅和取消,并且可以def set_tick_handle(self, func):
  2.         self._user_handler = func  。 session = aiohttp.ClientSession()  
  3.         try:
  4.             async with session.ws_connect(
  5.                 'wss://fstream.binance.com/ws',
  6.                 heartbeat=15,
  7.                 receive_timeout=30,
  8.                 autoping=True
  9.             ) as ws:
复制代码

雪中幸存者 LV

发表于 2025-4-27 15:25:22

DeepSeek在过年这段时间出圈了,太火了,也来尝试下用VBA测试一下它的代码能力

我使用Access VBA, 其实Excel VBA也是相通的。大家也可自己测试
一、DeepSeek简介

DeepSeek是一家创新型科技公司,成立于2023年7月17日,总部位于中国浙江省杭州市拱墅区。这家公司专注于开发先进的大语言模型(LLM)和相关技术,并在短时间内取得了显著的进展。
主要产品和发展历程


  • DeepSeek LLM‌:这是DeepSeek的第一个大模型,包含670亿参数,从零开始在一个包含2万亿token的数据集上进行了训练,数据集涵盖中英文。它展现了显著的泛化能力,在多个基准测试中表现出色。
  • DeepSeek-Coder‌:一个专注于代码生成、调试和数据分析的开源模型,支持多种编程语言。
  • DeepSeek-V2‌:第二代开源Mixture-of-Experts(MoE)模型,总参数达2360亿,以经济高效的训练和推理为特点。
  • DeepSeek-V3‌:这是DeepSeek的又一个重大突破,总参数达6710亿,采用创新的MoE架构和FP8混合精度训练,训练成本仅为557.6万美元。它在开源模型中位列榜首,与世界上最先进的闭源模型不分伯仲。
  • DeepSeek-R1‌:新一代推理模型,性能与OpenAI的o1正式版持平,并已经开源。
公司背景和技术支持

DeepSeek由知名量化资管巨头幻方量化创立,后者为DeepSeek的技术研发提供了强大的硬件支持,如储备万张A100芯片。此外,DeepSeek的模型设计和训练过程采用了多项创新技术,如混合专家架构、FP8混合精度训练等,这些技术使其在性能和效率上取得了显著的突破。
市场表现和社会影响

DeepSeek在短时间内迅速崛起,不仅在国内市场取得了显著成绩,还在国际市场上引起了广泛关注。例如,DeepSeek应用曾登顶苹果美国地区应用商店免费APP下载排行榜,在美区下载榜上超越了ChatGPT。同时,DeepSeek的发布也引起了AI业内的广泛高度关注,被视为AI大模型应用逐步走向普惠的重要标志。
然而,DeepSeek的快速发展也引起了美国等国家的关注和担忧。有报道称,美国对DeepSeek的影响开展国家安全调查,并称其为“偷窃”。
总的来说,DeepSeek是一家充满活力和创新精神的AI公司,其在AI领域的快速发展和显著成就值得关注。然而,随着其在全球市场上的影响力日益扩大,也需要面对更多的挑战和竞争
二、初步测试(没有使用尝试思考R1)

现在DeepSeek必须先用手机注册才能回答问题,使用手机及验证码,就可快速注册成功。今天速度还是挺快的。

提问:Access 如何使用腾讯云鉴权API
回答结果:
腾讯云鉴权API主要用于对腾讯云服务的请求进行身份验证和权限控制。通常,腾讯云的API请求需要使用签名(Signature)来验证请求的合法性。以下是使用腾讯云鉴权API的基本步骤:
<hr/>1. 准备工作

在使用腾讯云鉴权API之前,你需要完成以下准备工作:

  • 注册腾讯云账号:如果没有腾讯云账号,需要先注册一个。
  • 获取API密钥:登录腾讯云控制台,进入API密钥管理页面,获取SecretId和SecretKey。


  • SecretId:用于标识API调用者身份。
  • SecretKey:用于生成请求签名,务必保密。


  • 确定服务地域和API接口:根据你要调用的腾讯云服务,确定服务的地域(如ap-beijing)和具体的API接口。
<hr/>2. 腾讯云API请求签名流程

腾讯云的API请求需要使用签名方法HMAC-SHA256或TC3-HMAC-SHA256来生成签名。以下是签名的基本流程:
2.1 签名方法 v1(HMAC-SHA256)


  • 参数排序:将请求参数按字典序排序。
  • 拼接字符串:将排序后的参数拼接成字符串。
  • 生成签名:使用HMAC-SHA256算法,以SecretKey为密钥,对拼接的字符串进行加密。
  • 将签名加入请求:将生成的签名作为Signature参数加入请求中。
2.2 签名方法 v3(TC3-HMAC-SHA256)

腾讯云推荐使用TC3-HMAC-SHA256签名方法,步骤如下:

  • 生成规范请求(CanonicalRequest):


  • HTTP方法(如POST)。
  • URI路径(如/)。
  • 查询字符串(如Action=DescribeInstances&Version=2017-03-12)。
  • 请求头(如content-type:application/json)。
  • 哈希后的请求体(如hashedRequestPayload)。


  • 生成待签名字符串(StringToSign):


  • 签名算法(如TC3-HMAC-SHA256)。
  • 请求时间戳(如2023-10-01T12:00:00Z)。
  • 凭证范围(如2023-10-01/cvm/tc3_request)。
  • 哈希后的规范请求。


  • 生成签名


  • 使用SecretKey生成签名密钥。
  • 使用签名密钥对StringToSign进行签名。


  • 将签名加入请求头


  • 将签名信息加入Authorization请求头。

<hr/>3. 示例:使用TC3-HMAC-SHA256签名调用API

以下是一个调用腾讯云CVM(云服务器)API的示例。
3.1 请求参数


  • Action:DescribeInstances(查询云服务器实例)。
  • Version:2017-03-12(API版本)。
  • Region:ap-beijing(地域)。
  • Timestamp:当前时间戳(如1696147200)。
  • Nonce:随机数(如123456)。
3.2 生成签名


  • 规范请求
    plaintext
    复制
    POST /  content-type:application/json; charset=utf-8 host:http://cvm.tencentcloudapi.com  content-type;host e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • 待签名字符串
    plaintext
    复制
    TC3-HMAC-SHA256 2023-10-01T12:00:00Z 2023-10-01/cvm/tc3_request 5f3c5e6e7f8e9d0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4
  • 生成签名


  • 使用SecretKey生成签名密钥。
  • 对StringToSign进行签名。

3.3 发送请求

将签名加入Authorization请求头,发送HTTP请求。
bash
复制
curl -X POST "https://cvm.tencentcloudapi.com" \ -H "Authorization: TC3-HMAC-SHA256 Credential=AKIDEXAMPLE/2023-10-01/cvm/tc3_request, SignedHeaders=content-type;host, Signature=5f3c5e6e7f8e9d0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4" \ -H "Content-Type: application/json; charset=utf-8" \ -H "Host: http://cvm.tencentcloudapi.com" \ -d '{     "Action": "DescribeInstances",     "Version": "2017-03-12",     "Region": "ap-beijing" }'
<hr/>4. 腾讯云SDK

如果你不想手动实现签名逻辑,可以使用腾讯云官方提供的SDK。腾讯云支持多种编程语言的SDK,如Python、Java、Go、Node.js等。
示例:使用Python SDK调用API


  • 安装SDK
    bash
    复制
    pip install tencentcloud-sdk-python
  • 调用API
    python
    复制
    from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.cvm.v20170312 import cvm_client, models  # 设置SecretId和SecretKey cred = credential.Credential("your-secret-id", "your-secret-key") # 创建客户端 http_profile = HttpProfile() http_profile.endpoint = "http://cvm.tencentcloudapi.com" client_profile = ClientProfile() client_profile.httpProfile = http_profile client = cvm_client.CvmClient(cred, "ap-beijing", client_profile) # 创建请求对象 req = models.DescribeInstancesRequest() # 调用API resp = client.DescribeInstances(req) print(resp.to_json_string())
<hr/>5. 注意事项


  • 保护SecretKey:SecretKey是生成签名的关键,务必保密,不要泄露。
  • API调用频率限制:腾讯云API有调用频率限制,超出限制可能会导致请求失败。
  • 使用HTTPS:建议使用HTTPS协议发送请求,确保数据安全。
  • 参考官方文档:腾讯云的API和签名方法可能会更新,建议参考腾讯云API文档获取最新信息。
<hr/>通过以上步骤,你可以成功使用腾讯云鉴权API调用腾讯云服务。如果需要更复杂的操作,可以参考腾讯云的官方文档或使用SDK简化开发。
三、深入测试(使用尝试思考R1)

尝试使用联网搜索,可能因为最近DeepSeek官网访问量大或受到攻击,联网搜索联网搜索服务繁忙,响应有问题,提示这个

deepseek V3 的代码能力是行业 top1  吗?-1.jpg

只能勾选 深度思考 这个选项
分析难点


好的,我现在需要帮助用户解决如何在Access VBA中使用腾讯云鉴权API的问题。首先,我需要回顾之前的对话历史,看看用户之前问了什么,以及我之前给出的回答。用户之前询问了企业微信API的使用方法,接着又问了腾讯云鉴权API的一般使用方法,现在具体到如何在Access VBA中实现这一点。

首先,用户可能是在开发一个基于Access的应用程序,需要集成腾讯云的服务。Access VBA虽然功能有限,但可以通过HTTP请求与外部API交互。用户可能对VBA不太熟悉,特别是处理JSON和加密签名方面,因此需要详细且步骤清晰的指导。

接下来,我需要分析用户的需求。用户想知道如何在VBA中调用腾讯云鉴权API,这涉及到生成签名、发送HTTP请求和处理响应。腾讯云的鉴权机制比较复杂,尤其是TC3-HMAC-SHA256签名方法,这对VBA来说可能比较困难,因为VBA本身没有内置的加密库,需要调用Windows API或其他第三方库。

我需要考虑用户可能的痛点:如何生成正确的签名,如何处理HTTP请求,特别是POST请求,如何解析JSON响应。此外,用户可能没有使用过腾讯云SDK,或者因为环境限制无法安装SDK,所以需要纯VBA的实现方法。

接下来,我需要回顾之前关于腾讯云鉴权的回答,其中提到了使用SDK和手动生成签名两种方法。但在VBA中,可能无法直接使用腾讯云的官方SDK,所以必须手动实现签名过程。这可能涉及到Base64编码、HMAC-SHA256加密等步骤,而这些在VBA中需要借助外部库或自定义函数。

我需要确定在VBA中实现HMAC-SHA256的可能方法。可能需要使用Microsoft的XML库(MSXML2.ServerXMLHTTP)发送HTTP请求,使用VBA-JSON库来处理JSON数据,以及使用Windows API中的加密函数(如Cryptographic Service Provider)来实现HMAC-SHA256加密。或者,可以找到已有的VBA代码示例来实现这些加密功能。

另外,需要注意腾讯云API的签名版本,推荐使用TC3-HMAC-SHA256,这可能比v1版本更复杂,但更安全。用户可能需要逐步生成规范请求、待签名字符串,并计算签名。

在步骤分解上,我需要指导用户如何获取SecretId和SecretKey,生成必要的时间戳和随机数,构建规范请求,计算签名,并将签名添加到HTTP请求头中。同时,还需要处理可能的错误,比如签名错误、API限流等。

可能的挑战是VBA对字符串处理和加密功能的支持有限,需要引入外部库或编写复杂的自定义函数。例如,HMAC-SHA256在VBA中实现可能需要调用Cryptographic API,或者使用.NET的类库通过COM接口调用,但这可能超出用户的技术范围。因此,可能需要提供一个简化的方法,或者推荐使用现成的代码片段。

此外,用户可能需要处理JSON的序列化和反序列化,这在VBA中可以通过使用JSONConverter库来实现,需要指导用户如何引用并正确使用这个库。

最后,需要提供一个完整的示例代码,包括所有必要的函数和步骤,让用户能够复制粘贴并替换自己的SecretId、SecretKey和其他参数,然后测试是否能成功调用腾讯云API。同时,提醒用户注意保护敏感信息,如SecretKey,避免硬编码在代码中,或者建议从安全的位置获取这些信息。

总结来说,我需要提供一个分步指南,详细说明如何在VBA中生成签名、发送HTTP请求,并处理响应,同时解决可能遇到的技术难点,如加密和JSON处理,确保用户能够在Access VBA中成功集成腾讯云鉴权API。
在 Access VBA 中使用腾讯云鉴权 API 需要手动实现签名逻辑(如 TC3-HMAC-SHA256),并通过 HTTP 请求调用腾讯云接口。以下是详细步骤和代码示例:

<hr/>1. 准备工作



  • 获取腾讯云 API 密钥


  • 登录腾讯云控制台,进入 API 密钥管理,获取 SecretId 和 SecretKey。


  • 启用 VBA 相关库


  • 在 VBA 编辑器中,依次点击 工具 → 引用,勾选以下库:

    • Microsoft XML, v6.0(用于发送 HTTP 请求)
    • Microsoft Scripting Runtime(用于 JSON 处理,需配合 JSON 解析库)




  • 导入 JSON 解析库(可选):


  • 下载并导入 VBA-JSON 库以简化 JSON 处理。

<hr/>2. 实现 HMAC-SHA256 签名


由于 VBA 原生不支持 HMAC-SHA256,需借助 Windows API 或自定义函数。以下是基于 Windows API 的实现:
代码模块:HMAC_SHA256.bas

  1. ' 需要引用 "Microsoft Scripting Runtime" 和 "Microsoft XML, v6.0"
  2. Option Explicit
  3. Private Declare PtrSafe Function CryptAcquireContext Lib "advapi32.dll" _
  4.     Alias "CryptAcquireContextA" (ByRef phProv As LongPtr, _
  5.     ByVal pszContainer As String, ByVal pszProvider As String, _
  6.     ByVal dwProvType As Long, ByVal dwFlags As Long) As Long
  7. Private Declare PtrSafe Function CryptCreateHash Lib "advapi32.dll" _
  8.     (ByVal hProv As LongPtr, ByVal Algid As Long, _
  9.     ByVal hKey As LongPtr, ByVal dwFlags As Long, _
  10.     ByRef phHash As LongPtr) As Long
  11. Private Declare PtrSafe Function CryptHashData Lib "advapi32.dll" _
  12.     (ByVal hHash As LongPtr, ByVal pbData As LongPtr, _
  13.     ByVal dwDataLen As Long, ByVal dwFlags As Long) As Long
  14. Private Declare PtrSafe Function CryptDeriveKey Lib "advapi32.dll" _
  15.     (ByVal hProv As LongPtr, ByVal Algid As Long, _
  16.     ByVal hBaseData As LongPtr, ByVal dwFlags As Long, _
  17.     ByRef phKey As LongPtr) As Long
  18. Private Declare PtrSafe Function CryptDestroyHash Lib "advapi32.dll" _
  19.     (ByVal hHash As LongPtr) As Long
  20. Private Declare PtrSafe Function CryptDestroyKey Lib "advapi32.dll" _
  21.     (ByVal hKey As LongPtr) As Long
  22. Private Declare PtrSafe Function CryptReleaseContext Lib "advapi32.dll" _
  23.     (ByVal hProv As LongPtr, ByVal dwFlags As Long) As Long
  24. Private Const PROV_RSA_AES As Long = 24
  25. Private Const CRYPT_VERIFYCONTEXT As Long = &HF0000000
  26. Private Const CALG_SHA_256 As Long = &H800C
  27. Private Const CALG_HMAC As Long = &H8009
  28. ' HMAC-SHA256 函数
  29. Public Function ComputeHMACSHA256(ByVal sMessage As String, ByVal sKey As String) As String
  30.     Dim hProv As LongPtr, hHash As LongPtr, hKey As LongPtr
  31.     Dim bData() As Byte, bKey() As Byte
  32.     Dim lRet As Long
  33.     Dim bHash() As Byte
  34.     Dim i As Long
  35.    
  36.     ' 初始化 CryptoAPI
  37.     If CryptAcquireContext(hProv, 0, 0, PROV_RSA_AES, CRYPT_VERIFYCONTEXT) = 0 Then
  38.         ComputeHMACSHA256 = "Error: CryptAcquireContext"
  39.         Exit Function
  40.     End If
  41.    
  42.     ' 创建 HMAC 密钥
  43.     bKey = StrConv(sKey, vbFromUnicode)
  44.     If CryptCreateHash(hProv, CALG_HMAC, 0, 0, hHash) = 0 Then
  45.         ComputeHMACSHA256 = "Error: CryptCreateHash"
  46.         CryptReleaseContext hProv, 0
  47.         Exit Function
  48.     End If
  49.    
  50.     ' 设置 HMAC 密钥
  51.     If CryptHashData(hHash, VarPtr(bKey(0)), UBound(bKey) + 1, 0) = 0 Then
  52.         ComputeHMACSHA256 = "Error: CryptHashData"
  53.         CryptDestroyHash hHash
  54.         CryptReleaseContext hProv, 0
  55.         Exit Function
  56.     End If
  57.    
  58.     If CryptDeriveKey(hProv, CALG_SHA_256, hHash, 0, hKey) = 0 Then
  59.         ComputeHMACSHA256 = "Error: CryptDeriveKey"
  60.         CryptDestroyHash hHash
  61.         CryptReleaseContext hProv, 0
  62.         Exit Function
  63.     End If
  64.    
  65.     ' 计算 HMAC
  66.     bData = StrConv(sMessage, vbFromUnicode)
  67.     If CryptCreateHash(hProv, CALG_SHA_256, hKey, 0, hHash) = 0 Then
  68.         ComputeHMACSHA256 = "Error: CryptCreateHash"
  69.         CryptDestroyKey hKey
  70.         CryptReleaseContext hProv, 0
  71.         Exit Function
  72.     End If
  73.    
  74.     If CryptHashData(hHash, VarPtr(bData(0)), UBound(bData) + 1, 0) = 0 Then
  75.         ComputeHMACSHA256 = "Error: CryptHashData"
  76.         CryptDestroyHash hHash
  77.         CryptDestroyKey hKey
  78.         CryptReleaseContext hProv, 0
  79.         Exit Function
  80.     End If
  81.    
  82.     ' 获取 HMAC 结果
  83.     ReDim bHash(31) ' SHA-256 输出 32 字节
  84.     If CryptGetHashParam(hHash, HP_HASHVAL, bHash(0), 32, 0) = 0 Then
  85.         ComputeHMACSHA256 = "Error: CryptGetHashParam"
  86.     Else
  87.         ComputeHMACSHA256 = BytesToHex(bHash)
  88.     End If
  89.    
  90.     ' 清理资源
  91.     CryptDestroyHash hHash
  92.     CryptDestroyKey hKey
  93.     CryptReleaseContext hProv, 0
  94. End Function
  95. Private Function BytesToHex(bData() As Byte) As String
  96.     Dim i As Long
  97.     BytesToHex = ""
  98.     For i = 0 To UBound(bData)
  99.         BytesToHex = BytesToHex & Right$("0" & Hex(bData(i)), 2)
  100.     Next
  101. End Function
复制代码
<hr/>3. 调用腾讯云 API(示例:查询 CVM 实例)


代码模块:Main.bas
  1. Option Explicit
  2. Public Sub CallTencentCloudAPI()
  3.     Dim SecretId As String
  4.     Dim SecretKey As String
  5.     Dim Service As String
  6.     Dim Host As String
  7.     Dim Region As String
  8.     Dim Action As String
  9.     Dim Version As String
  10.     Dim Timestamp As String
  11.     Dim CanonicalRequest As String
  12.     Dim StringToSign As String
  13.     Dim Signature As String
  14.     Dim AuthHeader As String
  15.     Dim Payload As String
  16.     Dim Response As String
  17.    
  18.     ' 配置参数
  19.     SecretId = "your-secret-id"    ' 替换为你的 SecretId
  20.     SecretKey = "your-secret-key"  ' 替换为你的 SecretKey
  21.     Service = "cvm"                ' 服务名称(如 cvm、vpc)
  22.     Host = "cvm.tencentcloudapi.com"
  23.     Region = "ap-beijing"          ' 地域
  24.     Action = "DescribeInstances"   ' API 动作
  25.     Version = "2017-03-12"         ' API 版本
  26.    
  27.     ' 生成时间戳(UTC 格式)
  28.     Timestamp = Format(Now, "yyyy-mm-ddThh:nn:ssZ")
  29.    
  30.     ' 1. 构建规范请求(CanonicalRequest)
  31.     CanonicalRequest = _
  32.         "POST" & vbLf & _
  33.         "/" & vbLf & _
  34.         "" & vbLf & _
  35.         "content-type:application/json; charset=utf-8" & vbLf & _
  36.         "host:" & Host & vbLf & _
  37.         vbLf & _
  38.         "content-type;host" & vbLf & _
  39.         HexHash("") ' 请求体为空时哈希值为 SHA-256("")
  40.    
  41.     ' 2. 构建待签名字符串(StringToSign)
  42.     StringToSign = _
  43.         "TC3-HMAC-SHA256" & vbLf & _
  44.         Timestamp & vbLf & _
  45.         Format(Now, "yyyy-mm-dd") & "/" & Service & "/tc3_request" & vbLf & _
  46.         HexHash(CanonicalRequest)
  47.    
  48.     ' 3. 生成签名
  49.     Signature = ComputeTC3Signature(SecretKey, Format(Now, "yyyy-mm-dd"), Service, StringToSign)
  50.    
  51.     ' 4. 构建 Authorization 请求头
  52.     AuthHeader = "TC3-HMAC-SHA256 " & _
  53.         "Credential=" & SecretId & "/" & Format(Now, "yyyy-mm-dd") & "/" & Service & "/tc3_request, " & _
  54.         "SignedHeaders=content-type;host, " & _
  55.         "Signature=" & Signature
  56.    
  57.     ' 5. 发送 HTTP 请求
  58.     Payload = "{""Action"": """ & Action & """, ""Version"": """ & Version & """, ""Region"": """ & Region & """}"
  59.     Response = SendHttpRequest(Host, Payload, AuthHeader)
  60.    
  61.     ' 6. 输出结果
  62.     Debug.Print Response
  63. End Sub
  64. ' 辅助函数:发送 HTTP POST 请求
  65. Private Function SendHttpRequest(Host As String, Payload As String, AuthHeader As String) As String
  66.     Dim http As New MSXML2.ServerXMLHTTP60
  67.     http.Open "POST", "https://" & Host, False
  68.     http.setRequestHeader "Content-Type", "application/json; charset=utf-8"
  69.     http.setRequestHeader "Authorization", AuthHeader
  70.     http.send Payload
  71.     SendHttpRequest = http.responseText
  72. End Function
  73. ' 辅助函数:计算 TC3-HMAC-SHA256 签名
  74. Private Function ComputeTC3Signature(SecretKey As String, DateStamp As String, Service As String, StringToSign As String) As String
  75.     Dim kDate As String
  76.     Dim kService As String
  77.     Dim kSigning As String
  78.    
  79.     ' 1. 计算 kDate = HMAC_SHA256("TC3" + SecretKey, DateStamp)
  80.     kDate = ComputeHMACSHA256(DateStamp, "TC3" & SecretKey)
  81.    
  82.     ' 2. 计算 kService = HMAC_SHA256(kDate, Service)
  83.     kService = ComputeHMACSHA256(Service, HexToBytes(kDate))
  84.    
  85.     ' 3. 计算 kSigning = HMAC_SHA256(kService, "tc3_request")
  86.     kSigning = ComputeHMACSHA256("tc3_request", HexToBytes(kService))
  87.    
  88.     ' 4. 计算最终签名 = HMAC_SHA256(kSigning, StringToSign)
  89.     ComputeTC3Signature = ComputeHMACSHA256(StringToSign, HexToBytes(kSigning))
  90. End Function
  91. ' 辅助函数:将十六进制字符串转换为字节数组
  92. Private Function HexToBytes(hexStr As String) As Byte()
  93.     Dim bytes() As Byte
  94.     Dim i As Long
  95.     ReDim bytes(Len(hexStr) \ 2 - 1)
  96.     For i = 0 To Len(hexStr) \ 2 - 1
  97.         bytes(i) = CByte("&H" & Mid(hexStr, i * 2 + 1, 2))
  98.     Next
  99.     HexToBytes = bytes
  100. End Function
  101. ' 辅助函数:计算字符串的 SHA-256 哈希(十六进制)
  102. Private Function HexHash(inputStr As String) As String
  103.     Dim bytes() As Byte
  104.     bytes = StrConv(inputStr, vbFromUnicode)
  105.     HexHash = ComputeHMACSHA256(inputStr, "")
  106. End Function
复制代码
<hr/>4. 关键说明



  • 签名逻辑


  • TC3-HMAC-SHA256 签名需要分步骤生成密钥链(kDate, kService, kSigning)。
  • 需确保时间戳、地域、服务名称与请求一致。


  • HTTP 请求


  • 使用 MSXML2.ServerXMLHTTP60 发送 POST 请求。
  • 请求头需包含 Authorization 和 Content-Type。


  • 错误排查


  • 检查 SecretId 和 SecretKey 是否正确。
  • 验证时间戳格式是否为 UTC(如 2023-10-01T12:00:00Z)。
  • 使用腾讯云 API 文档中的错误码进行调试。

<hr/>5. 注意事项



  • 安全风险:避免在代码中硬编码 SecretKey,建议从安全存储(如数据库或配置文件)动态读取。
  • 性能优化:频繁调用 API 时,需缓存 Access Token 或复用签名逻辑。
  • API 限制:遵守腾讯云的API 调用频率限制。
通过以上代码,你可以在 Access VBA 中实现腾讯云鉴权 API 的调用。


总体来讲,还是有板有眼,代码的整体逻辑还是大致正确的。感觉比chatGpt不相上下,另因为问题与国内的腾讯云相关,回答的答案更加精准。

大家也可收藏 点赞及关注我们 @人工智能头条

xiaoji1543 LV

发表于 2025-4-27 15:37:55

不是,目前Gemini 2.5 pro,o3,Claude3.7 sonnet各有胜负,很难说谁是top1,但绝对是第一梯队!

大林 LV

发表于 2025-4-27 15:51:40

编写一个 p5.js 脚本,模拟 100 个彩色小球在一个球体内部弹跳。每个小球都应留下一条逐渐消失的轨迹,显示其最近的路径。容器球体应缓慢旋转。请确保实现适当的碰撞检测,使小球保持在球体内部。
1分钟出思路、代码。
代码可在  菜鸟教程在线编辑器  上测试。
  1. <!DOCTYPE html>
  2. <html>
  3.   <head>
  4.     <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
  5.     <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/addons/p5.sound.min.js"></script>
  6.   </head>
  7.   <body>
  8.     <script>
  9.      
  10. const NUM_BALLS = 5;
  11. const SPHERE_RADIUS = 300;
  12. let balls = [];
  13. class Ball {
  14.   constructor() {
  15.     this.pos = p5.Vector.random3D().mult(SPHERE_RADIUS * 0.8);
  16.     this.vel = p5.Vector.random3D().mult(random(1, 3));
  17.     this.color = color(random(50, 255), random(50, 255), random(50, 255), 200);
  18.     this.history = [];
  19.     this.maxHistory = 20;
  20.   }
  21.   update() {
  22.     // 添加当前位置到历史记录
  23.     this.history.push(this.pos.copy());
  24.     if (this.history.length > this.maxHistory) {
  25.       this.history.shift();
  26.     }
  27.     // 更新位置
  28.     this.pos.add(this.vel);
  29.     // 碰撞检测
  30.     let distance = this.pos.mag();
  31.     if (distance > SPHERE_RADIUS) {
  32.       let normal = this.pos.copy().normalize();
  33.       let dot = this.vel.dot(normal);
  34.       this.vel.sub(normal.mult(2 * dot));
  35.       
  36.       // 添加阻尼防止无限加速
  37.       this.vel.mult(0.95);
  38.       this.pos = normal.mult(SPHERE_RADIUS * 0.95);
  39.     }
  40.   }
  41.   show() {
  42.     // 绘制轨迹
  43.     for (let i = 0; i < this.history.length - 1; i++) {
  44.       let alpha = map(i, 0, this.history.length, 50, 255);
  45.       stroke(red(this.color), green(this.color), blue(this.color), alpha);
  46.       line(
  47.         this.history[i].x, this.history[i].y, this.history[i].z,
  48.         this.history[i+1].x, this.history[i+1].y, this.history[i+1].z
  49.       );
  50.     }
  51.     // 绘制小球
  52.     noStroke();
  53.     fill(this.color);
  54.     push();
  55.     translate(this.pos.x, this.pos.y, this.pos.z);
  56.     sphere(5);
  57.     pop();
  58.   }
  59. }
  60. function setup() {
  61.   createCanvas(800, 800, WEBGL);
  62.   for (let i = 0; i < NUM_BALLS; i++) {
  63.     balls.push(new Ball());
  64.   }
  65.   noStroke();
  66. }
  67. function draw() {
  68.   background(0);
  69.   
  70.   // 旋转容器球体
  71.   rotateX(frameCount * 0.005);
  72.   rotateY(frameCount * 0.003);
  73.   
  74.   // 绘制透明容器
  75.   stroke(150, 50);
  76.   noFill();
  77.   sphere(SPHERE_RADIUS);
  78.   
  79.   // 更新和绘制所有小球
  80.   for (let ball of balls) {
  81.     ball.update();
  82.     ball.show();
  83.   }
  84. }
  85.     </script>
  86.   </body>
  87. </html>
复制代码

zhengshi_zhang LV

发表于 2025-4-27 16:01:06

就用这个例子测试:
提示词很简单:
  1. 用golang实现一个鲁棒的基于SSH tunnel的SOCKS5代理客户端,类似ssh -D 1080  user@192.168.0.103的功能
复制代码
DeepSeek V3 生成代码,没有多余的提示,V2.5版本还是需要多交流几次的。
的确是要比V2.5进步一点的,V2.5看我之前的文章Void Echo:测试AI编程能力一个例子 ,中间交互比V3的多。
  1. package main
  2. import (
  3.         "bytes"
  4.         "fmt"
  5.         "io"
  6.         "log"
  7.         "net"
  8.         "os"
  9.         "sync"
  10.         "golang.org/x/crypto/ssh"
  11. )
  12. var (
  13.         sshClient *ssh.Client
  14.         sshConfig *ssh.ClientConfig
  15. )
  16. func main() {
  17.         if len(os.Args) != 4 {
  18.                 fmt.Println("Usage: ./socks5-proxy <user> <host:port> <local-socks5-port>")
  19.                 return
  20.         }
  21.         user := os.Args[1]
  22.         host := os.Args[2]
  23.         localPort := os.Args[3]
  24.         // SSH配置
  25.         sshConfig = &ssh.ClientConfig{
  26.                 User: user,
  27.                 Auth: []ssh.AuthMethod{
  28.                         ssh.PasswordCallback(func() (string, error) {
  29.                                 fmt.Print("Enter SSH password: ")
  30.                                 var password string
  31.                                 fmt.Scanln(&password)
  32.                                 return password, nil
  33.                         }),
  34.                 },
  35.                 HostKeyCallback: ssh.InsecureIgnoreHostKey(),
  36.         }
  37.         // 连接到SSH服务器
  38.         var err error
  39.         sshClient, err = ssh.Dial("tcp", host, sshConfig)
  40.         if err != nil {
  41.                 log.Fatalf("Failed to dial: %s", err)
  42.         }
  43.         defer sshClient.Close()
  44.         // 启动本地SOCKS5代理服务器
  45.         listener, err := net.Listen("tcp", ":"+localPort)
  46.         if err != nil {
  47.                 log.Fatalf("Failed to listen on local port: %s", err)
  48.         }
  49.         defer listener.Close()
  50.         log.Printf("SOCKS5 proxy server started on :%s\n", localPort)
  51.         for {
  52.                 conn, err := listener.Accept()
  53.                 if err != nil {
  54.                         log.Printf("Failed to accept connection: %s", err)
  55.                         continue
  56.                 }
  57.                 go handleConnection(conn)
  58.         }
  59. }
  60. func handleConnection(conn net.Conn) {
  61.         defer conn.Close()
  62.         // 读取SOCKS5握手请求
  63.         buf := make([]byte, 256)
  64.         n, err := conn.Read(buf)
  65.         if err != nil {
  66.                 log.Printf("Failed to read SOCKS5 handshake: %s", err)
  67.                 return
  68.         }
  69.         // 检查SOCKS5版本
  70.         if buf[0] != 0x05 {
  71.                 log.Printf("Unsupported SOCKS version: %d", buf[0])
  72.                 return
  73.         }
  74.         // 响应SOCKS5握手
  75.         conn.Write([]byte{0x05, 0x00})
  76.         // 读取SOCKS5请求
  77.         n, err = conn.Read(buf)
  78.         if err != nil {
  79.                 log.Printf("Failed to read SOCKS5 request: %s", err)
  80.                 return
  81.         }
  82.         // 解析SOCKS5请求
  83.         if buf[1] != 0x01 {
  84.                 log.Printf("Unsupported command: %d", buf[1])
  85.                 return
  86.         }
  87.         addrType := buf[3]
  88.         var host string
  89.         switch addrType {
  90.         case 0x01: // IPv4
  91.                 host = net.IPv4(buf[4], buf[5], buf[6], buf[7]).String()
  92.         case 0x03: // Domain name
  93.                 host = string(buf[5 : 5+int(buf[4])])
  94.         case 0x04: // IPv6
  95.                 host = net.IP(buf[4:20]).String()
  96.         default:
  97.                 log.Printf("Unsupported address type: %d", addrType)
  98.                 return
  99.         }
  100.         port := int(buf[n-2])<<8 | int(buf[n-1])
  101.         // 通过SSH隧道连接到目标主机
  102.         remoteConn, err := sshClient.Dial("tcp", fmt.Sprintf("%s:%d", host, port))
  103.         if err != nil {
  104.                 log.Printf("Failed to dial remote host: %s", err)
  105.                 return
  106.         }
  107.         defer remoteConn.Close()
  108.         // 响应SOCKS5连接成功
  109.         conn.Write([]byte{0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
  110.         // 开始转发数据
  111.         var wg sync.WaitGroup
  112.         wg.Add(2)
  113.         go func() {
  114.                 io.Copy(remoteConn, conn)
  115.                 wg.Done()
  116.         }()
  117.         go func() {
  118.                 io.Copy(conn, remoteConn)
  119.                 wg.Done()
  120.         }()
  121.         wg.Wait()
  122. }
复制代码
有一个语法报错

deepseek V3 的代码能力是行业 top1  吗?-1.jpg

手动删除掉 bytes的import 之后再运行

deepseek V3 的代码能力是行业 top1  吗?-2.jpg

直接可以运行,小BUG 是输入密码是明文,继续设置chrome代理

deepseek V3 的代码能力是行业 top1  吗?-3.jpg


切换后代理后打开页面,直接就是可用的,你可以去测试其他的大模型,包括国外的,能生成可以使用代码的他就排第二,你还要看看和他交互多少次。
补充:
刚测了kimi,改地址端口用户名,密码之类,手动修了语法错 "io"引用一下,可以执行,但是代理配置生效后,不能用。kimi生成的代码看起来有模有样,好像要实现socks5协议了,可惜不对啊。
  1. package main
  2. import (
  3.         "log"
  4.         "net"
  5.         "golang.org/x/crypto/ssh"
  6. )
  7. func main() {
  8.         // SSH 服务器的地址和端口
  9.         sshAddr := "192.168.0.103:22"
  10.         // SSH 用户名和密码
  11.         user := "user"
  12.         password := "password"
  13.         // 本地 SOCKS5 代理服务器的地址和端口
  14.         socksAddr := "127.0.0.1:1080"
  15.         // 创建 SSH 客户端配置
  16.         config := &ssh.ClientConfig{
  17.                 User: user,
  18.                 Auth: []ssh.AuthMethod{
  19.                         ssh.Password(password),
  20.                 },
  21.                 HostKeyCallback: ssh.InsecureIgnoreHostKey(),
  22.         }
  23.         // 连接到 SSH 服务器
  24.         sshConn, err := ssh.Dial("tcp", sshAddr, config)
  25.         if err != nil {
  26.                 log.Fatalf("Failed to dial: %s", err)
  27.         }
  28.         defer sshConn.Close()
  29.         // 监听本地 SOCKS5 代理端口
  30.         listener, err := net.Listen("tcp", socksAddr)
  31.         if err != nil {
  32.                 log.Fatalf("Failed to listen: %s", err)
  33.         }
  34.         defer listener.Close()
  35.         log.Printf("SOCKS5 proxy listening on %s", socksAddr)
  36.         for {
  37.                 // 接受来自本地客户端的连接
  38.                 localConn, err := listener.Accept()
  39.                 if err != nil {
  40.                         log.Printf("Failed to accept: %s", err)
  41.                         continue
  42.                 }
  43.                 go handleConnection(sshConn, localConn)
  44.         }
  45. }
  46. func handleConnection(sshConn *ssh.Client, localConn net.Conn) {
  47.         defer localConn.Close()
  48.         // 创建 SSH 隧道
  49.         remoteConn, err := sshConn.Dial("tcp", "127.0.0.1:0")
  50.         if err != nil {
  51.                 log.Printf("Failed to dial remote: %s", err)
  52.                 return
  53.         }
  54.         defer remoteConn.Close()
  55.         // 构建 SOCKS5 响应消息,表示连接成功
  56.         socksResp := []byte{0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
  57.         if _, err := localConn.Write(socksResp); err != nil {
  58.                 log.Printf("Failed to write SOCKS5 response: %s", err)
  59.                 return
  60.         }
  61.         // 在本地连接和远程连接之间进行数据转发
  62.         go func() {
  63.                 if _, err := io.Copy(localConn, remoteConn); err != nil {
  64.                         log.Printf("Failed to copy from remote to local: %s", err)
  65.                 }
  66.         }()
  67.         if _, err := io.Copy(remoteConn, localConn); err != nil {
  68.                 log.Printf("Failed to copy from local to remote: %s", err)
  69.         }
  70. }
复制代码
2025年1月19日更新一下,minimaxi 据说打榜成绩也不错,还是用这个例子,生成代码有报错, io的import我删掉,下面错我也没心了改,用到 "http://github.com/armon/go-socks5"这个库,应该是不合适的,再让他改只会越错越远,代码能力还是不行的。

deepseek V3 的代码能力是行业 top1  吗?-4.jpg

您需要登录后才可以回帖 登录 | 立即注册