“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


目录
相关文章
|
9月前
|
人工智能 安全 架构师
不只是聊天:从提示词工程看AI助手的优化策略
不只是聊天:从提示词工程看AI助手的优化策略
513 119
|
9月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
2282 89
|
10月前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
1767 88
|
9月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
870 30
|
9月前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
902 2
|
9月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
9月前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
552 3
|
9月前
|
消息中间件 人工智能 安全
构建企业级 AI 应用:为什么我们需要 AI 中间件?
阿里云发布AI中间件,涵盖AgentScope-Java、AI MQ、Higress、Nacos及可观测体系,全面开源核心技术,助力企业构建分布式多Agent架构,推动AI原生应用规模化落地。
897 0
构建企业级 AI 应用:为什么我们需要 AI 中间件?
|
9月前
|
人工智能 安全 Serverless
再看 AI 网关:助力 AI 应用创新的关键基础设施
AI 网关作为云产品推出已有半年的时间,这半年的时间里,AI 网关从内核到外在都进行了大量的进化,本文将从 AI 网关的诞生、AI 网关的产品能力、AI 网关的开放生态,以及新推出的 Serverless 版,对其进行一个全面的介绍,期望对正在进行 AI 应用落地的朋友,在 AI 基础设施选型方面提供一些参考。
1582 103
|
9月前
|
人工智能 定位技术 API
智能体(Agent):AI不再只是聊天,而是能替你干活
智能体(Agent):AI不再只是聊天,而是能替你干活
1316 99