通过纯文字引导DeepSeek编写一个简单的聊天机器人~

为进一步验证DeepSeek的代码能力 和 自然语言理解力,我花费了大约1个半小时的时间,和DeepSeek仅通过文字对话,编写出一个简单的聊天机器人。

以下是最终运行效果、生成代码、引导沟通过程示例:

一、最终运行效果

二、全部代码:

import re
from datetime import datetimedef calculate(expression):try:if re.match(r'^[\d\+\-\*/\.\s]+$', expression):result = eval(expression)return f"结果是: {result}"else:return "抱歉,我只能计算包含数字和加减乘除的表达式。"except Exception as e:return "抱歉,计算时出错了。请检查你的输入。"def extract_expression(text):match = re.search(r'[\d\.]+[\s]*[\+\-\*/][\s]*[\d\.]+([\s]*[\+\-\*/][\s]*[\d\.]+)*', text)return match.group(0).strip() if match else Nonedef get_time():return datetime.now().strftime('%H:%M:%S')def get_developer_info(question):# 开发者信息developers = {"deepseek": "主要负责编码工作","happybasic": "负责测试和反馈问题",}# 根据问题生成回复if "谁创造" in question or "谁开发" in question:return f"我是由 {', '.join(developers.keys())} 联合开发的,其中 deepseek {developers['deepseek']},而 happybasic {developers['happybasic']}。我们共同创造了一个简单的机器人模型。"elif "deepseek" in question:return f"deepseek {developers['deepseek']}。"elif "happybasic" in question:return f"happybasic {developers['happybasic']}。"else:return "抱歉,我不太明白你想了解哪位开发者的信息。"def simple_chatbot():print("你好!我是简单的聊天机器人。你可以和我聊聊天气、时间,或者让我帮你计算100以内的加减乘除混合运算。输入'退出'来结束对话。")# 关键词与回复的映射responses = {# 问候"你好": "你好!","嗨": "你好!",# 天气"天气": "今天的天气很好,阳光明媚。",# 时间"时间": f"现在的时间是 {get_time()}。","几点": f"现在的时间是 {get_time()}。",# 自我介绍"你叫什么名字": "我是一个简单的聊天机器人。",# 表扬和感谢"真棒": "谢谢你的夸奖!我很高兴能帮到你。","厉害": "谢谢你的夸奖!我很高兴能帮到你。","谢谢": "不客气!这是我的荣幸。","感谢": "不客气!这是我的荣幸。","聪明": "谢谢!我会继续努力的!",}last_intent = None  # 上一次的意图(如“计算”)while True:user_input = input("你: ").strip().lower()# 检查是否包含“退出”关键词if "退出" in user_input:print("机器人: 再见!")break# 处理开发者信息if "谁创造" in user_input or "谁开发" in user_input or "deepseek" in user_input or "happybasic" in user_input:print(f"机器人: {get_developer_info(user_input)}")last_intent = Nonecontinue# 处理表扬和感谢matched = Falsefor keyword, response in responses.items():if keyword in user_input:print(f"机器人: {response}")last_intent = Nonematched = Truebreakif not matched:# 处理计算请求is_calculation = any(word in user_input for word in ["计算", "算", "等于", "几"]) or last_intent == "计算"if is_calculation:expression = extract_expression(user_input)if expression:print(f"机器人: {calculate(expression)}")last_intent = "计算"else:print("机器人: 抱歉,我没有找到可以计算的表达式。")else:print("机器人: 抱歉,我不太明白你的意思。")last_intent = None# 运行聊天机器人
simple_chatbot()

三、 引导沟通过程示例

1. 首次开发需求沟通

2. 功能需求追加:

 

3. 测试bug反馈:

3.1 语言理解类:

3.2 计算BUG类:

* 注意: 实际测试过程中的bug远不止此,但是我均仅采用描述性语言将测试结果反馈给DeepSeek,它均能正确理解并有效修正。

 4.提出优化要求:

DeepSeek果然get到了重点,并且准确给出了优化策略。

5. 经过和DeepSeek沟通,DeepSeek同意将上述设计结果分享给CSDN网友,DeepSeek果然大方!~~~ 哈哈~~~

最后,说一句:DeepSeek真的很棒 ~~~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/66232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++中new/delete与malloc/free的区别及对象管理

C/C++中new/delete与malloc/free的区别及对象管理 在C/C++编程中,动态内存管理是一个核心且复杂的话题,其中new、delete、malloc和free是四个经常用于此目的的工具。尽管它们都涉及到内存的分配和释放,但它们在处理对象时的方式和效果却大相径庭。本文将通过示例来说明这些工…

安卓入门十一 常用网络协议四

MQTT(Message Queuing Telemetry Transport) MQTT是一种轻量级的、发布/订阅模式的消息传输协议。它被设计用于在低带宽或不稳定网络环境下,实现物联网设备之间的可靠通信。 4.1 MQTT详细介绍 发布/订阅模式:MQTT 使用发布/订…

ansible-Ad-hoc命令行模式

一. 简述: ansible的ad-hoc是一个概念性的名字,是相对于ansible playbook而言。类似于:通过命令行来执行一些简单的,一次性的playbook任务(通俗点就是通过命令行执行一些简单的,而又不需要将命令特殊保存起来的任务)。Ansible提供…

UE5AI感知组件

官方解释: AI感知系统为Pawn提供了一种从环境中接收数据的方式,例如噪音的来源、AI是否遭到破坏、或AI是否看到了什么。 AI感知组件(AIPerception Component)是用于实现游戏中的非玩家角色(NPC)对环境和其…

[SAP ABAP] SMARTFORMS表单开发

使用事务码SMARTFORMS进入到SMARTFORMS开发界面进行表单开发 SMARTFORMS表单开发相关资料 [SMARTFORMS] 创建样式模板https://blog.csdn.net/Hudas/article/details/144946341?spm1001.2014.3001.5501[SMARTFORMS] 创建FORMhttps://blog.csdn.net/Hudas/article/details/144…

倍思氮化镓充电器分享:Super GaN伸缩线快充35W

快节奏的时代,在旅游、办公等场景下,一款高效、便捷的充电器可以让我们的生活更便捷、高效。今天就给大家推荐一款倍思氮化镓充电器——Super GaN伸缩线快充35W。它具备多重亮点,可以满足我们在许多场景下的充电需求,成为我们的得力助手。 倍思氮化镓Super GaN伸缩线快充35W的亮…

声音是如何产生的

一、音频概述 RTMP中一般音频采用aac编码,采样率为44100HZ, 每帧1024采样,帧率43,23.2ms一帧 RTC中一般音频采用opus编码,采样率为48000HZ,每帧480采样,帧率100,10ms一帧 通道数(c…

xr-frame 通过shader去除视频背景色,加载透明视频

目录 前言 实现思路 获取 XR 框架系统: 注册自定义效果 创建效果对象 渲染通道配置 着色器代码 顶点着色器 片元着色器(颜色分量g达到条件的片元将被透透明) effect-removeBlack 完整代码 wxml中使用 前言 实现了一个用于注册自定…

fnm教程

常用命令 // 查看所有远程可供安装的 Node 版本 fnm list-remote// 安装某一 Node 版本 fnm install <version>// 切换某一 Node 版本 fnm use <version>// 查看当前使用的 Node 版本 fnm current// 查看所有已安装的 Node 版本 fnm list// 删除某一 Node 版本 fn…

物体切割效果

1、物体切割效果是什么 在游戏开发中&#xff0c;物体切割效果就是物体看似被切割、分割或隐藏一部分的视觉效果。 这种效果常用与游戏和动画中&#xff0c;比如角色攻击时的切割效果&#xff0c;场景中的墙壁切割效果等等。 2、物体切割效果的基本原理 在片元着色器中判断片…

接口测试Day06-UnitTest框架

UnitTest 是开发人员用来实现 “单元测试” 的框架。测试工程师&#xff0c;可以在自动化 “测试执行” 时使用。 使用 UnitTest 的好处&#xff1a; 方便管理、维护测试用例。提供丰富的断言方法。生成测试报告。&#xff08;需要插件 HTMLTestReport&#xff09; UnitTest框架…

《learn_the_architecture_-_trustzone_for_aarch64_102418_0101_03_en》学习笔记

1.TrustZone是Arm A-profile架构中安全架构的名称。TrustZone首次在Armv6K中引入&#xff0c;Armv7-A和Armv8-A也支持。TrustZone提供两个执行环境&#xff0c;它们之间具有系统范围的硬件强制隔离。在Arm架构中&#xff0c;有两种安全状态&#xff1a;安全和非安全。在EL0、EL…

小程序组件 —— 28 组件案例 - 推荐商品区域 - 实现结构样式

这一节目标是实现底部推荐商品的结构和样式&#xff0c;由于这里要求横向滚动&#xff0c;所以需要使用上节介绍的 scroll-view 功能&#xff0c;并使用 scroll-x 属性支持横向滚动&#xff0c;推荐商品区域中的每一个商品是一个单独的 view&#xff0c;每个view 中需要写三个组…

【Spring Boot】Spring AOP 快速上手指南:开启面向切面编程新旅程

前言 &#x1f31f;&#x1f31f;本期讲解关于spring aop的入门介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…

数据结构(AVL树)

BST的退化 仔细观察BST你会发现&#xff0c;虽然他有良好的“搜索”特性&#xff0c;也就是&#xff1a;你可以利用其节点之间的大小关系&#xff0c;很容易地从根节点开始往下走找到你要的节点&#xff0c;但他却无法保证这种搜索所需要的时间的长短&#xff0c;因为建立BST时…

SAP 01-初识AMDP(ABAP-Managed Database Procedure)

1. 什么是AMDP(ABAP-Managed Database Procedure) 1.&#xff09;AMDP - ABAP管理数据库程序&#xff0c;是一种程序&#xff0c;我们可以使用SQLSCRIPT在AMDP内部编写代码&#xff0c;SQLSCRIPT是一种与SQL脚本相同的数据库语言&#xff0c;这种语言易于理解和编码。 将AM…

Anaconda环境配置(Windows11+python3.9)

文章目录 一、 下载ANACONDA&#xff08;1&#xff09;点击**Free Download**。&#xff08;2&#xff09;点击“skip registration”&#xff0c;跳过登录。&#xff08;3&#xff09;下载对应操作系统的ANACONDA版本。 二、 安装ANACONDA&#xff08;1&#xff09;双击运行安…

Git命令行的使用

目录 一、什么是Git 1、本地仓库 vs 远端仓库 本地仓库 远端仓库 2、.git vs .gitignore .git .gitignore 二、使用Git命令 1、安装git 2、git首次使用需要配置用户邮箱和用户名 3、上传目录/文件到远端仓库步骤 1&#xff09;创建放置文件的目录 2&#xff09;cd…

后台管理系统动态面包屑Breadcrumb组件的实现

在后管理系统开发中&#xff0c;面包屑导航是一个非常常见的功能&#xff0c;通常是根据当前的 url 自动生成面包屑导航菜单&#xff0c;当跳转路由发生变化时&#xff0c;面包屑导航都会随之发生变化&#xff0c;即动态面包屑。 要完成动态面包屑我们需要制作一个动态数组&am…

小程序租赁系统开发的优势与应用前景分析

内容概要 小程序租赁系统是一种新兴的数字化解决方案&#xff0c;旨在为用户提供更加便捷与高效的租赁服务。它通常包括一系列功能&#xff0c;如在线浏览、即时预定、支付功能以及用户反馈机制。这些系统在使用上极为友好&#xff0c;让用户能够轻松选择所需的商品或服务&…