开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[开发教程] 这次成果比较好 • 手搓AI日记 • 这次的主要语言是js

 发表于 2024-1-29 20:39:46 来自手机|显示全部楼层|阅读模式 IP:河北省
本帖最后由 我是李君子 于 2024-1-29 20:46 编辑

我不知道是教程还是其他诶
总之是编程就暂时扔这个板里罢
 GramoJS.zip(32.91 KB, 下载次数: 4)

目录
• 实现模仿
• 实现过滤
• 生成训练成果
• 载入训练成果

实现模仿 和 实现过滤
打开压缩文件呢,我们可以看到我们使用了两个js作为支持,一个是我们的jQuery一个是用来对比相似度的函数
Index.js里的load不用管,这是写的时候的废弃代码,不过后面把他移到click事件里然后声明mum等于JSON.parse(json元素)就能实现读档,不过比较懒所以没弄,以及自动读档仅在有后端的情况下,我们要用的语言是原生js,加入后端只是方便保存调教结果
然后我们可以开始了
搭建架子 ( 让 jQuery HTMLDOM 启动 生成表单 )

  1. //先生成一个HTML架子
  2. document.write("<center><h1>Gramo Free --- Chat Ai</h1>");
  3. document.write("\
  4.     <input type='text' value='Question?' id='input'>\
  5.     <button id='output'>Think Now</button>\
  6.     <br><user>Text please</user>\
  7.     <br><bot>...</bot><br><br>\
  8.     <br><a href='head/info.json'>download data infojson</a><br>/*下载条件结果*/\
  9.     <em>Let's try Like as 'HELLO' and other sentences</em>\
  10. </center>");
  11. //设置与body的间隔为20px
  12. document.body.style.padding = "20px";

  13. //jQuery准备
  14. $(document).ready( function(){
  15.     $("#output").click( function(){
  16.     //id为output的点击事件
  17.     }
  18. })
复制代码

然后写事件
咱们先实现一下简单的复述( 方便不熟悉jQuery的人熟悉设置内容 )
在事件函数中写入如下代码
  1. var user = $("#input").val();
  2. var bot = $("#input").val();
  3. //获得用户输入的内容
  4. $("user").html("You: " + user);
  5. $("bot").html("bot: " + bot);
  6. //输出输入内容
复制代码

Ok,然后你就得到了一个复述者
但是这玩意这么搞就没意思了,我们得让他记住然后用,而不是一味的复数
我们在bot输出前加上这句代码
  1. mum[num] = user;
  2. //将输入内容放到mum的num位置上
复制代码

注意: num变量应该在jQuery准备前声明为0或者在click事件里声明为mum的长度
Mum在head/think.html中声明
Head里的json是储存条件结果的,txt是你说话的记录(我忘清除了,你清一下谢谢
然后将bot输出内容代码更换为
  1. $("bot").html("bot: " + mum[Math.floor(Math.random()*mum.length)]);
  2. //bot说的话为数组mum的第随机数0-mum长度位的字符
  3. num++
复制代码

然后就实现了随机使用玩家说的语句了
但是他还是会答非所问
我们要让他分析我们说的内容
搞这么一段代码
另外zero变量记得在jQuery准备前声明为0
  1. var nml = mum.length - 2;
  2.         var num = mum.length;
  3.         function contrast(){
  4.             if(typeof user !== "undefined"){/*判断是否存在*/
  5.                 while(similar(user,mum[zero]) < Math.floor(Math.random()*7)/10 && zero < mum.length - 1){/*循环得出和玩家差不多的字符同时不超过玩家输入的内容*/
  6.                     zero++;/*返回值然后自加*/
  7.                 }
  8.                 if(zero >= mum.length){/*没有则随机*/
  9.                     zero = Math.floor(Math.random()*nml);
  10.                 }
  11.                 return mum[zero];/*返回值*/
  12.             } else {
  13.                 return 0;
  14.             }
  15.         }
  16.         $("user").html("You: " + user);
  17.         mum[num] = user;
  18.         $("bot").html("bot: " +contrast());
  19. //函数调用值
复制代码

就是这样了,然后就实现了纯js差不多的可学习然后可以回答的ai了,而不借用if递归

生成训练成果
注意这里可以使用你会的后端语言
不过我推荐Php和Node因为方便
在js里加上post请求
  1. $.post("head/think.php",
  2.         {
  3.             info: user,
  4.             c: num,
  5. //传递用户输入和记录数组
  6.             array: mum
  7.         },
  8.         function(){
  9.             num++;
  10. //请求完毕后num自加(记得把前面的自加删掉
  11.         });
复制代码

Php代码(当时没太注意代码质量 有点烂别喷
  1. <?php
  2.     $info = $_POST["info"]." ";
  3. //获取info
  4.     $file = fopen("info.txt","r+");
  5. //打开
  6.     fread($file,filesize("info.txt"));
  7. //读到结尾
  8.     fwrite($file,$info);
  9. //写入记录
  10.     fclose($file);
  11. //关闭
  12. //在给的包里中间还有一段破代码,那段代码也是废弃的,不用管没用
  13. file_put_contents("info.json",json_encode($_POST["array"]));
  14. //传递来的数组转json写入json
  15. //方便以后下载
  16. ?>
复制代码

然后就ok了

读取训练结果
点a就可以下载了
下载后将json内容全部替换掉think.js里的mum值然后把index.js中num的值改为mum的长度或者mum.length-1读取
然后把var children = [];删掉
Ok,这样就读上训练结果啦,你学会了嘛
 GramoJS.zip(32.91 KB, 下载次数: 4)
苦力怕论坛,感谢有您~
 楼主|  发表于 2024-1-29 20:51:35 来自手机|显示全部楼层 IP:河北省
本作品公开使用权给看完帖子的klp网友以和Fds FDO 魅音幻想四方所有
来自 3# 2024-1-29 20:51:35回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 楼主|  发表于 2024-1-29 20:46:04 来自手机|显示全部楼层 IP:河北省
我把他用做⑨Chat的语言模型了
可以参考下这个
因为我后面是边写⑨chat边改他的,所以⑨chat这边的代码测试过,可以看看
Screenshot_2024-01-29-20-43-45-797_bin.mt.plus-edit.jpg
2#2024-1-29 20:46:04回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-1-29 22:00:51 来自手机|显示全部楼层 IP:安徽省
我有使用权但我不会用
4#2024-1-29 22:00:51回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-1-30 07:26:01 来自手机|显示全部楼层 IP:广东省
本帖最后由 portedboar44215 于 2024-1-30 07:30 编辑
jxhdamjr 发表于 2024-1-29 22:00
我有使用权但我不会用


解压后浏览器打开index.html
草,好像带PHP的
可以装个ksweb,将手机作为服务器,然后浏览器访问http://localhost:端口
5#2024-1-30 07:26:01回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-11-28 07:10

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号-3