基于DeepSeek大模型实现一个聊天机器人
1.1 任务介绍
本任务介绍如何在PC环境下实现人与机器人的对话聊天,通过PC端采集文字问题信息,并将文本通过API传输到DeepSeek大模型进行识别,识别成功以后,将大模型反馈的文字信息合成为语音信息,通过电脑进行语音播报。整个实现流程如下图所示:

1.2 知识储备
1.2.1 DeepSeek大模型介绍
DeepSeek(深度求索)作为我国领先的自主研发大模型企业,由幻方量化孵化培育,专注于通用人工智能(AGI)底层技术研发,以“低成本、高性能、开源普惠”为核心发展特色,在技术创新突破、产业落地应用等方面成效显著,具体情况介绍如下:
(1)DeepSeek公司概况
DeepSeek全称为杭州深度求索人工智能基础技术研究有限公司,于2023年7月正式成立,总部设于杭州。公司创始团队由量化领域专家梁文锋领衔,汇聚了国内外顶尖高校科研人才及国际机构技术专家,核心聚焦大语言模型、多模态技术等底层领域的创新研发。公司以“让机器像人类一样思考”为使命,全力攻坚通用人工智能核心技术,成立初期即获得数亿元天使轮融资,快速搭建超大规模算力集群,为技术研发与成果转化奠定了坚实基础。凭借较强的工程化落地能力,公司在团队规模不足200人的情况下,创造了多项行业标杆成果,已发展成为国产人工智能领域的核心骨干力量。
(2)DeepSeek大模型体系
DeepSeek大模型是公司核心技术产品,于2024年1月发布首代基础模型,经过多轮迭代优化,已形成完整的模型家族,技术水平达到国际领先水准,部分核心能力对标GPT-4o。核心模型系列具体如下:
一是基础模型(V系列)。2024年1月首发DeepSeek-LLM(67B参数),2024年5月推出混合专家架构(MoE)V2版本,2024年12月发布V3版本(671B总参数、37B激活参数),2026年4月推出V4系列(Pro/Flash双版本),该系列支持100万Tokens超长上下文,是全球首个将百万上下文设为标配的大模型。其中,V4-Pro版本面向复杂推理场景,V4-Flash版本主打高效低成本,均采用MIT协议开源,免费开放模型权重,供开发者进行本地部署与二次开发。
二是垂类专用模型。重点覆盖代码、数学、视觉等专业领域,包括DeepSeek-Coder(代码生成领域,性能处于行业领先水平)、DeepSeekMath(数学推理领域,具备较强逻辑分析能力)、DeepSeek-VL(视觉语言多模态领域),可充分满足各专业场景的深度应用需求。
三是推理模型(R系列)。2025年1月发布DeepSeek-R1模型,主打强化推理与科学思考模式,支持140种语言交互,上线7天即登顶全球140个国家应用下载榜,成为首个登顶国际主流市场榜首的中国人工智能产品。
该模型体系核心技术优势突出:采用混合专家架构(MoE),将推理成本降至传统模型的1/10;多头潜在注意力(MLA)技术,使128K长文本显存占用量仅为行业标准的13%;FP8混合精度训练技术,将训练速度提升50%;混合注意力机制,将百万字上下文计算量降至前代模型的27%,算力消耗降低73%。
(3)DeepSeek产品与服务生态
DeepSeek构建了“模型+平台+应用”全栈生态体系,兼顾个人用户(C端)体验与企业用户(B端)落地需求,核心产品与服务如下:
一是C端智能助手。通过官方网页(chat.deepseek.com)及客户端提供对话交互服务,支持思考/非思考模式切换,具备智能问答、文案创作、编程辅助、多语言翻译、长文档分析等核心能力,适配学习、办公、科研等各类场景,以严谨的推理能力和专业的解答服务为核心特色。
二是B端API服务。提供兼容OpenAI格式的API接口,支持V4-Pro/Flash、R1等各类模型调用,新用户注册即赠送免费额度(约10元),可满足个人用户长期使用需求。定价具有极强的市场竞争力,V4-Pro版本叠加限时折扣后,低至0.025元/百万Tokens,创下全球同类产品价格新低;支持JSON输出、工具调用、对话续写等功能,适配智能体开发需求。
三是开源生态。V4系列全系模型采用MIT协议完全开源,免费开放代码及模型权重,支持开发者进行本地部署、二次开发及商业化应用,有效降低了人工智能技术的应用门槛,推动技术普惠普及。
四是行业解决方案。覆盖金融、教育、医疗、科技等多个重点领域,提供定制化模型部署、长文档分析、智能客服、代码开发等一站式服务,助力各类企业以低成本实现人工智能转型发展。
(4)DeepSeek的核心优势与定位
DeepSeek定位为“高性能、低成本、开源化”的通用大模型服务商,核心优势主要体现在三个方面:
一是技术领先。自主研发混合专家架构(MoE)、多头潜在注意力(MLA)等核心架构,具备百万上下文处理、超强逻辑推理、低成本训练等优势,性能对标国际顶尖闭源模型,技术实力处于国内领先水平。
二是成本极致。模型训练成本仅为OpenAI的3%左右,API调用定价处于全球最低水平,且免费额度设置友好,实现了个人用户与中小企业零门槛使用,大幅降低了人工智能技术的应用成本。
三是开源普惠。核心模型完全开源,支持本地部署与商业化应用,有效打破了闭源模型的技术垄断,赋能全球开发者生态建设,推动国产人工智能技术自主创新与普及应用。
与豆包侧重C端全能型体验、依托字节跳动生态布局不同,DeepSeek更聚焦技术底层创新、专业推理能力提升与低成本开源落地,适配科研攻关、编程开发、长文档分析、企业私有化部署等专业场景,与豆包形成差异化互补格局,共同推动我国人工智能产业高质量发展。
(5)DeepSeek和豆包的发展定位不同
DeepSeek(深度求索)以B 端 + 专业领域硬核推理引擎,主打 “技术自主、开源普惠、超长上下文、极致性价比”,面向政务、金融、法律、科研、开发者等专业用户,聚焦复杂逻辑推理、长文档处理、代码生成、数据建模等硬核能力,月活约1.3 亿,以高价值用户为主;而豆包(字节跳动)以C 端国民级全能 AI 助手,主打 “生活化、多模态、高易用、生态化”,面向大众用户,覆盖日常问答、内容创作、语音交互、图文视频生成、生活服务等全场景,依托字节生态(抖音、剪映等)快速渗透,月活超3.4 亿。
|
对比维度 |
豆包 |
DeepSeek |
|
推理能力 |
日常对话强,复杂长链推理弱,幻觉率约 4% |
数学 / 逻辑 / 代码推理国内顶尖,AIME 数学竞赛正确率87.5%,代码通过率89% |
|
上下文窗口 |
主流10 万 Token,满足日常办公 |
标配 100 万 Token,一次性处理百万字文档(如政策汇编、行业白皮书) |
|
多模态能力 |
全模态领先:文生图 / 视频、方言语音、老照片修复、短视频脚本生成 |
以文本为核心,多模态偏弱,专注文档解析与推理 |
|
部署与安全 |
公有云为主,私有化成本高 |
全链路国产化适配(华为昇腾芯片),支持内网私有化、本地离线部署,符合政务安全合规要求 |
|
成本与开源 |
免费基础版 + 增值服务,API 定价中等 |
新用户免费额度充足,V4-Flash API 低至1.25 元 / 百万 Tokens;核心模型 MIT 开源,支持二次开发与商用 |
1.2.2 相关第三方库
(1)Python requests库
Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。requests模块比urllib模块更简洁。
使用 requests 发送HTTP 请求需要先导入 requests 模块:
import requests
导入后就可以发送HTTP请求,使用requests提供的方法向指定URL发送 HTTP 请求,例如:
# 导入 requests 包
import requests
# 发送请求
x = requests.get('https://www.runoob.com/')
# 返回网页内容
print(x.text)
每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息,如状态码、响应头、响应内容等:
print(response.status_code) # 获取响应状态码
print(response.headers) # 获取响应头
print(response.content) # 获取响应内容
附加请求参数
发送请求我们可以在请求中附加额外的参数,例如请求头、查询参数、请求体等,例如:
headers = {'User-Agent': 'Mozilla/5.0'} # 设置请求头
params = {'key1': 'value1', 'key2': 'value2'} # 设置查询参数
data = {'username': 'example', 'password': '123456'} # 设置请求体
response = requests.post('https://www.runoob.com', headers=headers, params=params, data=data)
(2)Python pywin32库
pywin32 是 Windows 专属的 Python 扩展库,作用是让 Python 能直接调用 Windows 原生 API 与 COM 组件,实现系统控制、Office 自动化、窗口 / 键鼠模拟、服务 / 注册表管理等深度操作。使用前需要先安装pywin32模块:
pip install pywin32
安装完成后,你的代码import win32com.client就可以正常使用了。
import win32com.client #Windows自带语音库
# 创建语音播报对象(使用Windows自带的SAPI语音)
speaker = win32com.client.Dispatch("SAPI.SpVoice")
# 播报文字
speaker.Speak("你好,这是Windows自带的语音播报")
1.3 任务要求
1.能够注册和登录DeepSeek。
2.能够创建并获取DeepSeek API key。
3.能够撰写前端代码和DeepSeek大模型进行交互。
4.能够理解数据链路:将输入的文本传送给DeepSeek大模型->DeepSeek大模型反馈的文本进行流式输出->同时将输出的流式文本解析并合成为音频进行播报。
1.4 任务准备
•Vmware虚拟机
•电脑(Windows 10)
•DeepSeek云账号
1.5 任务实施
1.5.1 注册并登录DeepSeek
登录网址如下:
通过手机号进行注册和登录。

可以充值10元,获取一定的token数。

1.5.2 创建并获取API key
点击进入API keys,如下图所示:

点击创建API key,如下图所示:

可以创建多个API key,如下图所示:

API key只显示一次,请注意保存,本任务的API key为:
sk-b73fc242292f49dcb713374086c28bd4
1.5.3 任务测试
在Jupyter中输入以下代码,命名为talk_to_deepseek_llm,意思是跟大语言模型进行聊天。注意,要将API_KEY,MODEL_NAME,API_URL赋值到python测试程序中。
更多详情信息请查看deepseek开发文档,网址为:https://api-docs.deepseek.com/
请求代码示例:
# -*- coding: utf-8 -*-
# 导入所需库
import win32com.client # Windows 自带语音库
import requests # 发送网络请求
import json # 处理 JSON 数据格式
# ======================================================
# 配置区:改成你的 DeepSeek 信息
# ======================================================
DEEPSEEK_API_KEY = "sk-b73fc242292f49dcb713374086c28bd4" # 你的 DeepSeek API Key
'''
# 常用
deepseek-v4-flash
deepseek-v4-pro
deepseek-chat (to be deprecated on 2026/07/24)
deepseek-reasoner (to be deprecated on 2026/07/24)
'''
MODEL_NAME = "deepseek-v4-pro"
API_URL = "https://api.deepseek.com/v1/chat/completions" # DeepSeek 接口地址
# ======================================================
# 初始化语音引擎(Windows 自带 SAPI,稳定)
# ======================================================
speaker = win32com.client.Dispatch("SAPI.SpVoice")
def speak(text):
"""让电脑朗读一段文字"""
speaker.Speak(text)
def chat_with_deepseek(history):
"""调用 DeepSeek API,返回回复文字"""
headers = {
"Authorization": f"Bearer {DEEPSEEK_API_KEY}",
"Content-Type": "application/json; charset=utf-8"
}
payload = json.dumps({
"model": MODEL_NAME,
"messages": history,
"temperature": 0.7,
"max_tokens": 1024
}, ensure_ascii=False).encode("utf-8")
try:
resp = requests.post(API_URL, headers=headers, data=payload, timeout=30)
js = resp.json()
if "error" in js:
return f"服务器错误:{js['error']['message']}"
contents = js["choices"][0]["message"].get("content", "")
return contents.strip() or "没有获取到回复"
except Exception as e:
return f"请求失败:{str(e)}"
def ask(your_name, ai_name, history):
q = input(f"\n{your_name}:").strip()
if q == "0":
return False
speak(q)
history.append({"role": "user", "content": q})
print("(正在思考中...)")
ans = chat_with_deepseek(history)
print(f"\n{ai_name}:{ans}")
speak(ans)
history.append({"role": "assistant", "content": ans})
return True
def main():
print("=" * 40)
print(" 欢迎使用 DeepSeek 聊天室")
print("=" * 40)
your_name = input("请问你的名字:").strip() or "我"
ai_name = input("请给 AI 取个名字:").strip() or "DeepSeek"
history = [
{"role": "system", "content": "你是一个聊天助手,回答要简洁,问什么答什么,就像聊天一样,不要做多余介绍,不要用编号列表。"}
]
print(f"\n{ai_name}:你好,{your_name}!输入 0 退出。")
speak(f"你好,{your_name}")
print("-" * 40)
while True:
if not ask(your_name, ai_name, history):
print(f"\n{ai_name}:再见,{your_name}!")
speak(f"再见,{your_name}")
break
if __name__ == "__main__":
main()
实验现象如下:
输入你是的聊天名字,比如“vincent”,AI的聊天名字,取名“ai”。接着进行提问,
例如,问题一:明朝第一个皇帝是谁?问题二:上海朋友结婚,一般随礼给多少钱?
这些问题都会上传给DeepSeek大模型来回答,最后返回的文字结果进行显示和语音播报,如下:

视频如下:
和DeepSeek大模型聊天测试
大语言模型的聊天会消耗token,聊天数据小,消耗的token很小,所以基本上处于安心体验的状态,如下图所示:

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)