“AI“聊天程序之极限思想的应用v1.0

简介: “AI“聊天程序之极限思想的应用v1.0

前言


高中时我就曾有过要写一个智能聊天的程序,但当时能力有限,也只是一个想法而已.


刚步入大学时学习了”图灵测试“相关知识,刚好我也在学习编程,便又产生了兴趣,但被困于实现方法,当初并未实现,当时我能想到且能实现但方法有两种:


1.编写关键词数据库,用户输入之后与关键词匹配,然后重组再输出。我认为不够智能,便作罢了.


2.根据汉字的语法结构来分析处理,但其工程量太庞大,也作罢了.


但在几次数学课的学习以后,被我找到了问题的解决方法,于是便有了这篇文章.



1.分析与架构设计

1.1 需求分析


用户角度分析:


当用户输入字符串以后,得到一个极限接近于人类语言的字符串回复.


技术角度分析:


1.需要一个处理数据的程序


2.数据处理需要数据依据,所有需要一个存储数据的地方


3.存储的数据需要一个数据来源


1.2 逻辑概念模型设计

1.2.1 总体架构设计


根据需求分析得知,我们可以将整个架构设计出三个功能组件:


组件一: 名称:训练系统;负责训练数据,生产出能被使用的数据,通过Python/Java实现;

组件二: 名称:语言库系统;负责存储数据,存储需要被使用的数据,通过Mysql实现;

组件三: 名称:对话系统;负责处理数据,调用存储的数据并结合用户输入的数据给出回馈,通过JAVA实现;


程序结构图:4a3061b4294c47c9bbf9d3df3adc4679.png



之所以分成三个独立组件,主要原因是为了避免数据来源、数据存储、数据处理之间可能存在的相互依赖。

建立组件之间的特定接口来负责传输数据,可提高程序可读性、与编写专注度,还可达到具体问题具体分析,减少调试时间。


注:该文章主要分析:如何通过极限思想实现对话系统的核心功能,固不深入探究训练系统与语言库系统的实现


1.2.2 语言库系统设计


Mysql逻辑模型 表结构如下:

2.png


列一负责存储提问数据,列n+1负责存储回答。

逻辑上按列式存储设计,物理上按行式存储编写。


注:为了数据使用方便,固不进行范式化


1.2.3 对话系统设计


通过双线程调用两个方面的数据:用户输入数据,语言库系统数据;

将这两个数据进行匹配计算,之后再将计算所生成的数据回馈给用户。


3.png



2. 极限思想实现对话核心功能


2.1 物理模型设计


到此为止,整个程序的架构设计完成了,接下来就是对话系统的核心功能了。

除了从“前言”中提到的“两个实现方法”以外,我似乎从数学课中找到了第三种实现方法——应用极限思想实现数据匹配计算功能。

极限不只是高等数学中的一个知识点,极限是一种思想,它源于生活。

在计算机中要实现对极限对描述也是很简单的,例如求0~10以内的正整数中,极限接近于10的数,那么只需要遍历1~9的正整数,再求出其最大值,便求出来了。

R语言实现:


/*
整型数组x区间:【0,10),整型y=10 
求x中极限接近y的数值的位置
*/
x = c(0,1,2,3,4,5,6,6,7,8,9)
which(a==max(a),arr.ind=TRUE);


要实现对话系统,我们不可能通过训练系统提前将所有可能发生的情况,全部都训练出数据进行存储,如果这样,编写对话系统哪还需要思考,只需要写一堆条件语句就好,但其工作量也是不容小嘘。


我们知道每个人的说话方式都不同,例如我们常用的问候语之一,南方人会说“你吃饭了吗?”,北方人则可能会说“饭你吃了吗?”,语言结构不同,但这两句话表达的意思都是一样的,其结构都是有规律的,都表示询问“吃饭”这个行为是否为过去时,所以在计算机里我们不能让数据以相等的方式来进行匹配,我们需要应用极限的思想,让两个数据极限可能相等即可。


通过训练系统我们可以找到语言的结构规律,对话系统负责分析输入数据的语言结构与数据库中已有数据的语言结构最为接近的数据项。


“你吃饭了吗?”这句话语言结构最接近的还是“饭你吃了吗?”吧~ 不可能是“现在几点了?”,如果是,那么则是开发者的问题。


所以将这种思想扩展一下:

只要当我们用户输入的数据,无限接近于数据库中某一数据元素中的某一数据项时,即当“输入”、“已存在”的两个数据极限相等时,便可以根据该数据项找到与之有依赖关系的其他数据,程序便能灵活的作出回馈了。


那么可以通过三个方法来求如输入数据的极限:1.匹配字符串长度;2.匹配字符串关键字;3.匹配语法结构;

实现思路如下:

4.png


既然当两个数据匹配成功时计算机认为其相等,“有极限近似”的两个数据,那么肯定也会“极限不近似”的数据、“极限远离”的两个数据,在数学领域我并不知道有没有这个概念,我理解“极限远离”其含义为:逻辑上存在关联,但在物理上并未建立联系的两个数据的关系,描述为极限远离。


如果这样理解,那么便能让程序更加“智能”

一般情况下当用户输入数据时程序会基于回馈,此时回馈数据是输入数据经过极限匹配所得出来的运算结果。

程序回馈完数据以后,就相当于程序运行了一次,并且完全结束了,第一次运算与第二次运算显然是无任何联系的。


但从逻辑上是存在关联的,把用户也想像成另一个对话系统即可,用户得到了输入数据(该输入数据为对话系统的回馈),经过用户大脑的对话系统判断以后会给程序一个回馈(该回馈为对话系统的输入数据)

如下:

对话系统回馈数据 == 用户输入数据

对话系统输入数据 == 用户回馈数据


我设计的对话系统给出的回馈是经过计算的、是有道理依据的,用户给出的回馈更是经过强大计算的、有道理依据的、因为其本就是经过人类思考的。


既然训练系统中的依据是“人”,那么在对话系统中也可以把“人的思考”纳入程序计算中的一部分。

实现方法如图:

4a3061b4294c47c9bbf9d3df3adc4679.png


从“极限远离”的两个数据中分析其可能存在逻辑联系,并建立其物理连接,保存至数据库中。

让程序“边用边学”、“边学边用”,实现自我迭代。


2.2 JAVA代码实现方法


使用JAVA实现 依赖与极限思想的数据匹配 算法

需要注意的是整个数据匹配算法,就是一个极限的实现:找出极限相等的两个数据


1.引用数据库中的数据

2.引用用户输入的数据


6.png


例此时:

输入数据:hadoop

数据库数据: asfdsdsa sfdggtr dv haoppd aodpw dsafdffwfcdcwe hadpod hadoops

第一步数据匹配,进行字符串匹配

7.png


第一次匹配运算后:

输入数据:hadoop

数据库数据: asfdsdsa sfdggtr haoppd aodpw hadpod hadoops


第二步数据匹配,进行关键字匹配

8.png


第二次匹配运算后:

输入数据:hadoop

数据库数据: haopp hadpod hadoops aodpw


第三步数据匹配,进行语法结构匹配

9.png


第三次匹配运算后:

输入数据:hadoop

数据库数据:hadoops


回馈举例:

https://hadoop.apache.org/


实现对话系统代码的模块化设计:

10.png


在主方法中实现整个程序:


11.png


3. 后记


1.在终端中运行该程序:

12.png


2.程序功能展示:

13.png



拓展思考:

既然是使用极限思想探究出的算法,那么是否可以将该算法使用其他语言实现?

又可怎么应用?


答:

可以,基于HTML/CSS/Javascript可以在网页上实现该功能;

使用Python实现更为惊艳,使用基于itchat的Python库:wxpy,可实现类似“微软小冰”的智能聊天程序,尽管不可能达到“微软小冰”的智能程度,但也能当个玩具。

将此程序使用Python重新开发,安置于服务器上,对外提供访问接口,任何开发者只需要调用接口便能使用,开发者向Api Post数据由服务器处理并Get回馈。

设计框架如下:

14.png


目录
相关文章
|
4天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
54 14
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
转载:【AI系统】AI的领域、场景与行业应用
本文概述了AI的历史、现状及发展趋势,探讨了AI在计算机视觉、自然语言处理、语音识别等领域的应用,以及在金融、医疗、教育、互联网等行业中的实践案例。随着技术进步,AI模型正从单一走向多样化,从小规模到大规模分布式训练,企业级AI系统设计面临更多挑战,同时也带来了新的研究与工程实践机遇。文中强调了AI基础设施的重要性,并鼓励读者深入了解AI系统的设计原则与研究方法,共同推动AI技术的发展。
转载:【AI系统】AI的领域、场景与行业应用
|
1天前
|
机器学习/深度学习 人工智能 算法
探索AI在医疗诊断中的应用与挑战
【10月更文挑战第21天】 本文深入探讨了人工智能(AI)技术在医疗诊断领域的应用现状与面临的挑战,旨在为读者提供一个全面的视角,了解AI如何改变传统医疗模式,以及这一变革过程中所伴随的技术、伦理和法律问题。通过分析AI技术的优势和局限性,本文旨在促进对AI在医疗领域应用的更深层次理解和讨论。
|
7天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
6天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
12月05日,由中国软件行业校园招聘与实习公共服务平台携手阿里魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·电子科技大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
|
12天前
|
机器学习/深度学习 人工智能 JSON
【实战干货】AI大模型工程应用于车联网场景的实战总结
本文介绍了图像生成技术在AIGC领域的发展历程、关键技术和当前趋势,以及这些技术如何应用于新能源汽车行业的车联网服务中。
188 32
|
13天前
|
人工智能 自然语言处理 前端开发
Lobe Vidol:AI数字人交互平台,可与虚拟人和3D模型聊天互动
Lobe Vidol是一款开源的AI数字人交互平台,允许用户创建和互动自己的虚拟偶像。该平台提供流畅的对话体验、丰富的动作姿势库、优雅的用户界面设计以及多种技术支持,如文本到语音和语音到文本技术。Lobe Vidol适用于娱乐互动、在线教育、客户服务、品牌营销和社交媒体等多个应用场景。
67 7
Lobe Vidol:AI数字人交互平台,可与虚拟人和3D模型聊天互动
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
36 10
|
2天前
|
传感器 机器学习/深度学习 人工智能
AI在自动驾驶汽车中的应用与未来展望
AI在自动驾驶汽车中的应用与未来展望
22 9
|
7天前
|
人工智能 Kubernetes 安全
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
43 13