在程序中集成大模型DeepSeek-v3对话
这篇文章写一下如何将DeepSeek对话能力集成到自己的程序中。小白扫盲专用…
一、官网注册,拿到API key
DeepSeek官网 先在这里注册,会送一些免费的Tokens,有效期一个月。
随后在DeepSeek开发平台中创建自己的API key。
二、调用API接口进行对话
直接上例子了,接口很简单,调用时只需要将创建的API key带上即可。
最后附上示例的请求与响应。
第一次对话
问题:你好,你介绍一下自己可以吗,并且我能叫你小瑞同学吗?
可以看到DeepSeek的回答是:
你好呀!我是你的AI助手,随时准备为你提供帮助~你可以叫我小瑞同学,当然也可以随意给我起个你喜欢的名字哦!无论是解答问题、提供建议,还是陪你聊聊天,我都会尽力做到最好!😊
有什么想聊的或者需要帮忙的,随时告诉我吧!
接着进行继续对话
注意由于DeepSeek提供的这个接口是无状态的,所以如果想要连续对话,需要在下一次请求时带上上一次问题的回答。
问题二:那你告诉我为什么1+1等于2,回答的时候带上自己的名字
可以看到这次的回答是:
好的,小瑞同学来解答这个问题啦!😊\n\n1+1等于2,这其实是数学中最基础的加法运算之一。在数学的公理体系中,尤其是皮亚诺公理(Peano axioms)中,数字“1”被定义为自然数的起点,而“2”则是“1”的后继数。当我们说1+1时,实际上是在问:“1的后继数是什么?”根据定义,1的后继数就是2。所以,1+1=2。\n\n这个等式不仅仅是数学上的定义,它也是我们日常生活中计数和计算的基础。就像你有一个苹果,再得到一个苹果,你现在就有两个苹果了。简单直观,对吧?\n\n希望这个解释能让你满意!如果还有其他问题,随时找小瑞同学哦!🌟
可以看出这是连续的对话,DeepSeek记住了第一次对话时给她起的名字。所以只要在下一次请求中带上上一次的回答就可以连续对话了。
三、这两次对话请求的源码
第一次对话请求Body部分,注意需要连续对话时,携带上一次的回答
{
"messages": [
{
"content": "You are a helpful assistant",
"role": "system"
},
{
"content": "你好,你介绍一下自己可以吗,并且我能叫你小瑞同学吗?",
"role": "user"
}
],
"model": "deepseek-chat",
"frequency_penalty": 0,
"max_tokens": 2048,
"presence_penalty": 0,
"response_format": {
"type": "text"
},
"stop": null,
"stream": false,
"stream_options": null,
"temperature": 1,
"top_p": 1,
"tools": null,
"tool_choice": "none",
"logprobs": false,
"top_logprobs": null
}
响应
{
"id": "550ce0e376",
"object": "chat.completion",
"created": 176328,
"model": "deepseek-chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好呀!我是你的AI助手,随时准备为你提供帮助~你可以叫我小瑞同学,当然也可以随意给我起个你喜欢的名字哦!无论是解答问题、提供建议,还是陪你聊聊天,我都会尽力做到最好!😊 有什么想聊的或者需要帮忙的,随时告诉我吧!"
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 64,
"total_tokens": 88,
"prompt_cache_hit_tokens": 0,
"prompt_cache_miss_tokens": 24
},
"system_fingerprint": "f0e1b4"
}
第二次对话请求Body部分
{
"messages": [
{
"role": "user",
"content": "你好,你介绍一下自己可以吗,并且我能叫你小瑞同学吗?"
},
{
"role": "assistant",
"content": "你好呀!我是你的AI助手,随时准备为你提供帮助~你可以叫我小瑞同学,当然也可以随意给我起个你喜欢的名字哦!无论是解答问题、提供建议,还是陪你聊聊天,我都会尽力做到最好!😊 有什么想聊的或者需要帮忙的,随时告诉我吧!"
},
{
"role": "user",
"content": "那你告诉我为什么1+1等于2,回答的时候带上自己的名字"
}
],
"model": "deepseek-chat",
"frequency_penalty": 0,
"max_tokens": 2048,
"presence_penalty": 0,
"response_format": {
"type": "text"
},
"stop": null,
"stream": false,
"stream_options": null,
"temperature": 1,
"top_p": 1,
"tools": null,
"tool_choice": "none",
"logprobs": false,
"top_logprobs": null
}
响应
{
"id": "112ed0ae64d3",
"object": "chat.completion",
"created": 1736525,
"model": "deepseek-chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "好的,小瑞同学来解答这个问题啦!😊\n\n1+1等于2,这其实是数学中最基础的加法运算之一。在数学的公理体系中,尤其是皮亚诺公理(Peano axioms)中,数字“1”被定义为自然数的起点,而“2”则是“1”的后继数。当我们说1+1时,实际上是在问:“1的后继数是什么?”根据定义,1的后继数就是2。所以,1+1=2。\n\n这个等式不仅仅是数学上的定义,它也是我们日常生活中计数和计算的基础。就像你有一个苹果,再得到一个苹果,你现在就有两个苹果了。简单直观,对吧?\n\n希望这个解释能让你满意!如果还有其他问题,随时找小瑞同学哦!🌟"
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 112,
"completion_tokens": 159,
"total_tokens": 271,
"prompt_cache_hit_tokens": 0,
"prompt_cache_miss_tokens": 112
},
"system_fingerprint": "f70e1b4"
}
最后别忘了API key需要在请求中携带。