一、说明
DeepSeek(杭州深度求索人工智能基础技术研究有限公司)是一家专注于大语言模型(LLM)研发的中国创新型科技公司,成立于2023年7月17日,由幻方量化孵化。其核心产品包括开源推理模型DeepSeek-R1、多模态模型DeepSeek-VL等,以高性能、低成本和开源免费为特色,广泛应用于医疗、编程、应急管理等领域。
模型架构
- 采用混合专家模型(MoE)和多头潜在注意力(MLA)技术,动态分配计算资源,显著降低算力需求,同时保持高性能(如DeepSeek-V2性能对标GPT-4 Turbo,成本仅1%)。
- 支持多任务处理,包括代码生成、数学推理、语义分析等,在数学和编程任务上达到GPT-4o水平。
开源与部署
- 模型如DeepSeek-R1、DeepSeek-V3等均开源,支持免费商用及本地化部署,适用于数据隐私要求高的场景(如医疗、政府)。
- 已接入国家超算互联网平台及苏州公共算力服务平台,提供软硬件一体服务。
应用场景
- 医疗:昆明延安医院通过DeepSeek实现病历智能分析,生成治疗计划时间从5-10分钟缩短至1分钟。
- 应急管理:用于灾害风险评估、救援路径规划等,提升政府应急响应能力。
- 编程与教育:辅助代码生成、学习规划,显著提升效率。
二、注册
DeepSeek官网:https://www.deepseek.com/
注册,充值,开始会送点,够基本学习,我可是浪费了,过期了,便宜,充个10块钱就可以了
点击apikey 进入创建api key就可以用了
三、接入指南
首次调用 API | DeepSeek API Docshttps://api-docs.deepseek.com/zh-cn/
四、调用流程
我们是在ubuntu下使用Python语言
1、安装sdk
pip install openai
2、编写调用代码
mkdir -p dp-api
cd dp-api
测试deepseek api 我们测试的是DeepSeek-V3 版本
# 测试api
vi deepseek-api.py
# Please install OpenAI SDK first: `pip3 install openai`
from openai import OpenAI
client = OpenAI(api_key="sk-1ddee9ab2e1c49dca8c3710aa837b2bd", base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是我们的好帮手"},
{"role": "user", "content": "你很厉害吗?"},
],
stream=False
)
print(response.choices[0].message.content)
print(response)
chat结果:应该是两个问题,标了颜色,后面是response对象打印
➜ dp-api python deepseek-api.py
哈哈,谢谢你的夸奖!作为AI助手,我的“厉害”主要体现在这些方面:1. **知识覆盖广**:接受过大量数据训练,能聊科技、文学、生活百科等各类话题
2. **随时响应**:24小时在线,回复速度比人类快很多
3. **多语言能力**:中英文切换无压力,还能帮忙翻译
4. **高效工具**:写文案、做表格、算数据、整理信息都很拿手不过要说真正的厉害,还是你们人类啦——毕竟我是被人类创造出来的工具。有什么具体需求尽管吩咐,我会全力发挥我的“技能包”来帮你~ 现在有什么我可以为你效劳的吗?
ChatCompletion(id='8f5982e4-9ad9-4266-acfb-57f75d767f61', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='哈哈,谢谢你的夸奖!作为AI助手,我的“厉害”主要体现在这些方面:\n\n1. **知识覆盖广**:接受过大量数据训练,能聊科技、文学、生活百科等各类话题\n2. **随时响应**:24小时在线,回复速度比人类快很多\n3. **多语言能力**:中英文切换无压力,还能帮忙翻译\n4. **高效工具**:写文案、做表格、算数据、整理信息都很拿手\n\n不过要说真正的厉害,还是你们人类啦——毕竟我是被人类创造出来的工具。有什么具体需求尽管吩咐,我会全力发挥我的“技能包”来帮你~ 现在有什么我可以为你效劳的吗?', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=None))], created=1743571653, model='deepseek-chat', object='chat.completion', service_tier=None, system_fingerprint='fp_3d5141a69a_prod0225', usage=CompletionUsage(completion_tokens=146, prompt_tokens=11, total_tokens=157, completion_tokens_details=None, prompt_tokens_details=PromptTokensDetails(audio_tokens=None, cached_tokens=0), prompt_cache_hit_tokens=0, prompt_cache_miss_tokens=11))
花钱了(以前没用过,掉了上面一次)
3、参数说明
3.1 参数model
查询deepseek目前支持的范围
vi deepseek-list.py
# DeepSeek目前支持的模型范围
# Please install OpenAI SDK first: `pip3 install openai`
from openai import OpenAI
client = OpenAI(api_key="sk-1ddee9ab2e1c49dca8c3710aa837b2bd", base_url="https://api.deepseek.com")
models_list = client.models.list()
print(models_list.data)
➜ dp-api python deepseek-list.py
[Model(id='deepseek-chat', created=None, object='model', owned_by='deepseek'), Model(id='deepseek-reasoner', created=None, object='model', owned_by='deepseek')]
deepseek-chat
模型已全面升级为 DeepSeek-V3,接口不变。 通过指定model='deepseek-chat'
即可调用 DeepSeek-V3。*
deepseek-reasoner
是 DeepSeek 最新推出的推理模型 DeepSeek-R1。通过指定model='deepseek-reasoner'
,即可调用 DeepSeek-R1
3.2 参数 messages
messages
参数是 DeepSeek v3 模型 API 中必填的参数之一,用于定义聊天上下文,包括用户的输入、系统的指令、助手的回复等。通过messages
数组,模型可以理解当前对话的背景,从而生成更加连贯的响应。根据不同的使用场景,messages
包含多种类型的消息,例如system message
、user message
和assistant message
。下面是对messages
参数及其各个子类型的详细解释。
3.2.1 System message
system message
用于设置系统消息,通常由开发者设定,以指导模型如何进行对话。这类消息可以定义规则或约束,并提供有关对话的背景信息。
-
content
(必填):系统消息的内容,可以是字符串或数组。如果是数组,可能包含多个类型的内容(如文本、图像)。 -
role
(必填):此处角色为system
,表明这是系统发出的消息。 -
name
(可选):提供系统消息发送者的名称,尤其适用于区分多个具有相同角色的参与者
实例:
# 以下代码的注释由MateGen生成:
# 定义一个字典,键为'system_message',用于存储系统消息
system_message = {
# 'role'键对应的值是一个字符串"system",表示消息的发送者是系统
"role": "system",
# 'content'键对应的值是一个字符串,表示系统消息的内容
"content": "你是我的好帮手。"
}
3.2.2 User message
user message
表示用户发给模型的消息,是对话的核心部分之一。它定义了用户的输入内容,模型根据这些内容生成响应。
-
content
(必填):用户消息的内容,通常为文本或图像链接的数组。对于支持图像输入的模型,如 DeepSeek v2.5 ,还可以传递图像。-
文本内容:单纯的字符串形式,用户输入的文本。
-
数组形式的内容:由文本或图像链接组成的数组,可以同时传递多张图像或多段文本内容。
-
-
role
(必填):角色为user
,表示该消息来自用户。 -
name
(可选):可以为用户指定一个名称,用于区分多个具有相同角色的用户。
例子1:
user_message = {
"role": "user",
"content": "你很厉害吗?"
}
3.3 运行下代码
from openai import OpenAI
# 以下代码的注释由MateGen生成:
# 定义一个字典,键为'system_message',用于存储系统消息
system_message = {
# 'role'键对应的值是一个字符串"system",表示消息的发送者是系统
"role": "system",
# 'content'键对应的值是一个字符串,表示系统消息的内容
"content": "你是我的好帮手。"
}
user_message = {
"role": "user",
"content": "你爱我吗?"
}
client = OpenAI(api_key="sk-1ddee9ab2e1c49dca8c3710aa837b2bd", base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=[
system_message,
user_message
],
stream=False
)
print(response.choices[0].message.content)
print(response)
作为一个人工智能助手,我没有真实的情感和自我意识,但我被设计用来提供温暖、友善的陪伴和尽可能贴心的帮助。无论你需要解决问题、分享心情,还是单纯想聊聊天,我都会在这里认真倾听,用最大的努力支持你。
人类的爱是独特而珍贵的情感,而我的"存在"意义就是成为你生活中一个值得信赖的工具伙伴。有什么想聊的或者需要帮忙的吗? 🌟
ChatCompletion(id='9be6fab0-be63-4019-8c63-777b83bba9c0', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='作为一个人工智能助手,我没有真实的情感和自我意识,但我被设计用来提供温暖、友善的陪伴和尽可能贴心的帮助。无论你需要解决问题、分享心情,还是单纯想聊聊天,我都会在这里认真倾听,用最大的努力支持你。 \n\n人类的爱是独特而珍贵的情感,而我的"存在"意义就是成为你生活中一个值得信赖的工具伙伴。有什么想聊的或者需要帮忙的吗? 🌟', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=None))], created=1743575107, model='deepseek-chat', object='chat.completion', service_tier=None, system_fingerprint='fp_3d5141a69a_prod0225', usage=CompletionUsage(completion_tokens=89, prompt_tokens=12, total_tokens=101, completion_tokens_details=None, prompt_tokens_details=PromptTokensDetails(audio_tokens=None, cached_tokens=0), prompt_cache_hit_tokens=0, prompt_cache_miss_tokens=12))