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

打完收工!

posted @   帅到要去报警  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2019-02-26 mui---子页面主动调用父页面的方法
点击右上角即可分享
微信分享提示