DeepSeek---开发记录
最近一直在做DeepSeek开发,记录一下开发记录。
本次开发接入的是腾讯云的DeepSeek大模型:
https://cloud.tencent.com/document/product/1772/115963
总体开发还是比较流畅的,腾讯给了SDK,所以从开发到调试通,大概就用了1个小时。
秘钥在这里:获取
https://console.cloud.tencent.com/cam/capi
返回结果:
"{\"Created\":1739877813,\"Usage\":{\"PromptTokens\":9,\"CompletionTokens\":176,\"TotalTokens\":185},\"Id\":\"15eced50a181550aa2b02ef8da515a33\",\"Choices\":[{\"FinishReason\":\"stop\",\"Message\":{\"Role\":\"assistant\",\"Content\":\"马云(Jack Ma),本名马云,1964年9月10日出生于中国浙江省杭州市,是中国著名的企业家、慈善家和教育家。他是阿里巴巴集团的主要创始人之一,并曾担任该集团的执行主席。阿里巴巴集团是全球最大的电子商务公司之一,旗下拥有淘宝、天猫、支付宝等多个知名平台。\\n\\n马云在创业之前曾是一名英语教师,后来在1999年与一群朋友共同创立了阿里巴巴,旨在帮助中小企业通过互联网进行交易。阿里巴巴的成功不仅改变了中国的电子商务格局,也对全球商业产生了深远影响。\\n\\n除了商业成就,马云还积极参与慈善事业。他成立了马云公益基金会,致力于教育、环境保护和公共卫生等领域的公益项目。此外,他还多次在全球范围内发表演讲,分享他的创业经验和商业理念。\\n\\n2020年,马云正式卸任阿里巴巴集团董事局主席,但他仍然在多个领域继续发挥影响力。\"},\"Index\":0}],\"Model\":\"deepseek-v3\",\"RequestId\":\"fccbc3c7-2561-4e5b-96d6-8f447b6d6c60\"}"
参数:
* Created:时间戳 * Usage:Token 统计信息 * Id:请求 RequestId * Choices:回复内容 * Model:模型 * RequestId:唯一请求ID
示例代码:
/** * deepseek */ public function deepseek($message = '你是谁?') { // 在回调函数中解析处理每个string事件流 function streamProcessResult($result){ echo $result; } try { // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 // 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 // 密钥可前往官网控制台 $SecretId = 'xxxxx'; $SecretKey = 'xxxxxxxxxxxxxxx'; $cred = new Credential($SecretId, $SecretKey); // $cred = new Credential("SecretId", "SecretKey"); // 实例化一个http选项,可选的,没有特殊需求可以跳过 $httpProfile = new HttpProfile(); $httpProfile->setEndpoint("lkeap.tencentcloudapi.com"); // 实例化一个client选项,可选的,没有特殊需求可以跳过 $clientProfile = new ClientProfile(); $clientProfile->setHttpProfile($httpProfile); // 实例化要请求产品的client对象,clientProfile是可选的 $client = new LkeapClient($cred, "ap-shanghai", $clientProfile); // 通过设置回调函数来处理事件流 $client->setSseResponseCallbackFunc('streamProcessResult'); // 实例化一个请求对象,每个接口都会对应一个request对象 $req = new ChatCompletionsRequest(); $params = [ 'Model' => 'deepseek-v3', 'Messages' => [ [ 'Role' => 'user', // system、user、assistant。 'Content' => $message ] ], // 'Stream' => false, // 是否为流式输出 // 'Temperature' => 0.6 // 随机性 // 'MaxTokens' => 100 // 最大token 默认 100 ]; $req->fromJsonString(json_encode($params)); // 返回的resp是一个ChatCompletionsResponse的实例,与请求对象对应 $resp = $client->ChatCompletions($req); if (is_object($resp)) { return $resp->toJsonString(); } } catch(TencentCloudSDKException $e) { return '请求失败'; } }
遇到的问题:前言不搭后语。相当于每一个问题都是新问题。
原因:大模型提供的DeepSeek API 默认不会记录历史对话信息。
这里就需要进行多轮对话:
参考:
https://cloud.tencent.com/document/product/1772/115969
在线测试,获取代码:
https://console.cloud.tencent.com/api/explorer?Product=lkeap&Version=2024-05-22&Action=ChatCompletions
打完收工!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-02-26 mui---子页面主动调用父页面的方法