快速开发实现一个网页AI对话智能体(简单意图识别+联网+知识库+源码)
本文将介绍本人利用OpenCode桌面版免费模型首次尝试开发AI聊天机器人的全过程,全程自然语言交流并且没任何花费。最终开发出来的是python后端+html前端,如果想要正式使用或给其他人使用还需要进行部署调优。

一、潦草地启动项目
OpenCode桌面版跟各家智能体都差不多,都是创建文件夹工作目录选择后直接开新任务就可以了。在做这个智能体前我并没有特别的想法,可谓是随心所至,只发了个简单的指令“怎么快速开发实现一个ai 智能体”。

发完后它并没有直接开发而是会跟你沟通确认一些必要的信息,我这里是想要最小化的实现这个AI聊天智能体所以技术栈不用选特别复杂,付费API我只买了DeepSeek的所以也提了下大模型用DS,如果你是开通的阿里或别的也可以说明因为他们的调用api的地址可能不同厂家会有区别。

57秒就开发完了,然后告诉我设置环境变量或在代码中设置API_KEY、运行后端即可。

二、对接&测试
1、准备好LLM大模型的key。
之前DeepSeek生成了很多API KEY但是都没单独存,这次也只能重新生成一个了(API_KEY前往别泄露了,不然别人拿着也可以消费)


2、配置大模型key的两种方式
硬编码方式:按opencode的提示可以在代码中写入key(一般不推荐这么做,否则万一你一高兴把文件分享给别人了,别人就能继续用你的key),如果你不知道在代码哪一行,你也可以把key直接发给opencode让它自己写到代码中。

环境变量方式:推荐环境变量方式配置,不会的也可以问AI怎么配置,因为是python项目我是直接先启动cmd窗口后设置环境变量然后再运行项目。我这里设置环境变量、启动后端服务都是按照前面OpenCode给的教程来的哦,只是把API_KEY换成了我自己的(这种方式每次打开项目前都需要设置一遍环境变量)。
文末分享了完整源码,运行start.bat会提示输入deepseek的apikey,输入后回车直接启动项目(需要python环境及安装相关包才能成功,启动失败可以复制错误信息给AI解决)。

3、测试AI聊天
因为架构选的简单直接一个html网页作为前端,双击打开就可以聊天了(截图是我写文章时的最终版本,所以能看到已经有联网、知识库开关了)。这里因为直接对接apikey所以核心就是python程序后端来进行请求及返回,没什么好测的,一次性完成没有bug。

python程序这边大概可以看出它是将apikey放到了Authorization头中并发起POST请求,流式获取响应(就是感觉在一句一句吐字的那种效果)。

到这里如果仅仅要开发实现AI聊天其实已经结束了,正常其实还应该python后端那边做账号登录 接口鉴权等逻辑。
三、大模型联网功能
1、实时查询搜索
前面实现的聊天功能只能基于大模型自己的训练数据来回答(从上面聊天测试可看出知识库是截至2025年12月),如果想要一些时效性比较高的信息,就没办法了。

我们都知道在早之前在线聊天的AI工具都有个联网功能开关可以手动打开,那么我们自己做的这个是不是也可以呢?当然可以把需求发给Opencode 然后让它帮你实现,测试中遇到的问题也让它帮你搞定!这个联网功能折腾了不少时间没搞定后面就让它增加了日志用来排查问题。

最后发现第一个方案用的DuckDuckGo搜索引擎国内网络无法访问,后面又让它换了搜狗、百度,然后测试次数多了发现被搜狗、百度限流了打开就展示验证码。

经过一番调整,好像ok了,能正常查到汇率了(这里其实是后面优化后的,最早的版本搜索准确度不高,见后文)。

2、意图识别初接触
前面增加联网搜索后使用的搜狗,但是每次发消息它都会先给我搜索一遍,然后把搜索出的结果提交给大模型进行整理回复(这个可以看它的任务过程看出来),导致的问题是如果我的问题里面带有网址 它也会直接搜索,这结果就灾难了(大家可以尝试把具体网址放到搜索框里面直接搜索看看什么效果),我原本目的是想让AI看看那个网页是什么内容!

从上面可以看出它是通过在python后端接收消息时判断里面有没有url,如果有就先抓取结果然后再一起发给AI,到这里基本的联网效果已经凑合用了。这里虽然只是一个简单判断用户消息里面是不是有url 有的话就抓取网页内容,但它确实算是一个意图识别!这是聪明智能体的基础功能,因为用户发的消息你必须知道它的意图才能更好地调用不同工具或大模型来生成高质量的符合用户意图、预期的内容!
3、把意图识别交给AI
前面是python代码判断url来实现 网址抓取内容这种意图,但是转念一想你可以先调用AI一次让AI帮你进行意图识别返回你支持的意图后再进行后续流程(抓取网页、实时查询、调用大模型)。

上图可以看到修改后的意图识别逻辑,其实识别后归拢为3种意图: 先搜索再回答、先抓取再回答、直接回答。这次版本修改后基本算是满足我的联网需求了,大厂里面的联网搜索肯定是自己的搜索引擎也有更高的准确度、匹配度,我这里百度、搜狗轮流切 测试多了容易出限流验证码。

4、被丢弃的上下文
在上面开发工作完成后遇到一个问题,当我继续提问时发现AI已经忘记了上一个指令中的网址,需要我重新提供网址才行。这是因为AI必须靠上下文来维持“会话记忆”,所以聊天时其实是你每次只发送了一句,但是智能体会把前面的内容也一起发包发送,这就是上下文!现在基本所有的智能体都会处理压缩上下文,毕竟上下文窗口有限不可能无限增加,这也是为什么对话轮次多了后你会发现AI有点“健忘”因为压缩时总会丢弃一些东西。

这次改完AI是带上6条对话历史,这个是用于分析意图所需的历史记录。实际工程里面处理方式可能更复杂,这里我们不再深入研究了。

5、有没有更好的意图识别方案
前面做完后可能效果不是太好,这时可以尝试让AI替你想解决方案,我就直接采用了它推荐的方案。


其实这里改完后就是上面第4节最后的效果图了(本文是后补的)。
四、集成知识库
集成知识库也是一时兴起做的,因为OpenCode当天的免费模型额度还没用完,就再加个知识库需求吧。知识库一般用于辅助或限制AI在 企业/个人的知识库里面进行检索匹配后再由大模型进行整合输出,补足AI不懂私有化知识而“胡说八道”。

AI的思考、处理过程一定要看,时间长了你会潜意识里面学到东西。另外一个就是一定要会提问,让AI准确清晰地知道你的意思。

我是直接把记录apikey的txt文件上传作为知识库文档了,然后打开“知识库”提问就可以了。

一般知识库回答不上来就会使用LLM大模型自己的方式来回答(如果是内容知识库或客服系统的话显然这很不合理),如果你想要所有回答都基于知识库也可以让AI给你开发。

是否匹配命中知识库是根据相似度分数阈值来判断的,AI给的是0.3应该算是一个常见的参数值,也可以手动改高一点。

五、结束
上面已经完整体验过一遍个人对话式AI智能体的开发过程,个人用用迭代着玩还是可以的,如果正式企业使用还是有很多可以改进的地方,而且市面上也有一些开源的方案,包括字节、腾讯、阿里都可以在线创建AI智能体、工作流的产品。
网盘文件:简单AI智能体(聊天、联网、知识库)
链接: https://pan.baidu.com/s/1y_SPDbEg7OlSJW93AdrRXg?pwd=etaf 提取码: etaf
推荐阅读相关文章:
发表评论