使用 Svelte 和 ElizaBot 构建简单的聊天机器人

使用 svelte 和 elizabot 构建简单的聊天机器人

使用 svelte 和 elizabot 构建简单的聊天机器人

您是否曾经想过创建一个简单的聊天机器人?在本文中,我们将使用 svelte 和经典的 elizabot 构建一个轻量级聊天机器人应用程序。您将学习如何处理用户交互、管理反应状态,甚至模拟打字延迟以获得真实的体验。

让我们开始吧!

先决条件

要继续操作,您需要:

svelte的基本知识。构建 svelte 应用程序的工作环境。如果您没有,请查看 svelte 入门指南。

设置项目

首先安装 elizabot,一个简单的聊天机器人库:

npm install elizabot

登录后复制

使用您喜欢的方法创建一个新的 svelte 应用程序,然后将以下代码包含在 svelte 组件文件中(例如 chatbot.svelte)。

守则

这是聊天机器人的完整代码:

脚本

    import eliza from 'elizabot';    import { afterupdate, beforeupdate } from 'svelte';    let div;    let autoscroll;    const eliza = new eliza();    let comments = [{ author: 'eliza', text: eliza.getinitial() }];    function handlekeydown(event) {        if (event.key === 'enter') {            const text = event.target.value.trim();            if (!text) return;            comments = comments.concat({ author: 'user', text });            event.target.value = '';            const reply = eliza.transform(text);            settimeout(() => {                comments = comments.concat({ author: 'eliza', text: '...', placeholder: true });                settimeout(() => {                    comments = comments.filter((comment) => !comment.placeholder).concat({                        author: 'eliza',                        text: reply                    });                }, math.random() * 500);            }, math.random() * 200);        }    }    beforeupdate(() => {        autoscroll = div && (div.offsetheight + div.scrolltop) > (div.scrollheight - 20);    });    afterupdate(() => {        if (autoscroll) div.scrollto(0, div.scrollheight);    });

登录后复制

造型

    .chat {        display: flex;        flex-direction: column;        height: 100%;        max-width: 320px;    }    .scrollable {        flex: 1 1 auto;        border-top: 1px solid #eee;        margin: 0 0 0.5em 0;        overflow-y: auto;    }    article {        margin: 0.5em 0;    }    .user {        text-align: right;    }    span {        padding: 0.5em 1em;        display: inline-block;    }    .eliza span {        background-color: #eee;        border-radius: 1em 1em 1em 0;    }    .user span {        background-color: #ea0a0a;        color: white;        border-radius: 1em 1em 0 1em;        word-break: break-all;    }

登录后复制

html 标记

Eliza

{#each comments as comment}
{comment.text}
{/each}

登录后复制

它是如何运作的

用户输入处理:

当用户键入消息并按“enter”键时,该消息就会添加到评论数组中,并将作者设置为用户。

elizabot 回复

消息通过 eliza.transform(text) 传递给 elizabot 进行响应。在模拟打字延迟期间会显示占位符消息 (…)。然后在短暂的随机延迟后显示最终响应以模拟打字。

自动滚动:

beforeupdate 和 afterupdate 生命周期挂钩确保聊天自动滚动到最新消息,除非用户手动向上滚动。

造型

来自机器人和用户的消息使用动态 css 类(eliza 和用户)设置不同的样式。这有助于在视觉上区分机器人的响应和用户的输入。

运行应用程序

启动您的 svelte 应用程序,您将看到与 elizabot 的聊天界面。尝试输入消息并观察机器人的响应。延迟给交互带来自然的感觉。

增强功能

想要更进一步吗?这里有一些想法:

添加发送按钮:除了按“enter”之外,还包括一个发送消息的按钮。这可以提高可访问性和用户体验。特定于关键字的响应:通过为某些关键字或短语添加自定义逻辑来增强 elizabot 的响应。消息时间戳:显示每条消息的时间戳,让聊天感觉更真实。保留聊天历史记录:将聊天历史记录保存在本地存储或数据库中,以便用户可以重新访问之前的对话。打字动画:为 elizabot 添加动画或旋转器,使打字延迟更具视觉吸引力。移动响应能力:确保聊天界面能够很好地适应不同的屏幕尺寸,从而在移动设备上提供无缝体验。

结论

在本教程中,我们使用 svelte 和 elizabot 构建了一个简单的聊天机器人。此示例演示了 svelte 的反应性和生命周期挂钩的实际应用,同时还提供了一种有趣且交互式的方式来试验聊天机器人。

以上就是使用 Svelte 和 ElizaBot 构建简单的聊天机器人的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2646361.html

(0)
上一篇 2025年3月7日 07:45:52
下一篇 2025年3月3日 12:44:15

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 我的 Web 开发思维方式如何让我在 React Native 中误入歧途

    当我构建第一个 React Native 应用程序时,我之前有一些 Web 开发经验。在 iOS 和 Android 上使用 React 似乎是我技能的自然延伸。 但我很快发现——这是一个艰难的过程——网络开发人员的思维方式并不总是能很好地…

    2025年3月7日
    200
  • 掌握 HTML:从基础到中级

    掌握 html:从基础到中级 html(超文本标记语言)是每个网站的支柱,也是任何进入 web 开发的人的基本技能。它允许开发人员在网络上构建内容,使其成为创建用户友好、具有视觉吸引力的网站的重要工具。在本文中,我们将探索从 html 基础…

    2025年3月7日
    200
  • React v 稳定版本和新增功能

    react 19 正式登陆,带来了大量新功能和增强功能,可简化开发并提高应用程序性能。从改进的状态管理到更好的服务器端集成,react 19 适合每个人。 react 19 的主要特性: 1.简化异步状态管理的操作 管理 api 请求等异步…

    2025年3月7日
    200
  • 使用 css 和 html5 对按钮动画幻觉的霓虹灯效果

    illusionistic 3d neon button click me 登录后复制 * { margin: 0; padding: 0; box-sizing: border-box;}body { height: 100vh; dis…

    2025年3月7日
    200
  • 现代Web开发中卡片的设计与实现

    卡片是现代网页设计中最通用的组件之一。它们用于以简洁且具有视觉吸引力的方式呈现信息,从在线商店中的产品到博客上的文章。在本指南中,我们将探索不同的实现和最佳实践。 卡片剖析 一张典型的卡片由几个元素组成: @@##@@ título de …

    2025年3月7日 编程技术
    200
  • typescript4.2

    TypeScript 4.2 引入了以下主要新特性:改进了模板字符串类型推断,允许开发人员直接使用表达式并推断其类型。添加了对全局异常处理的支持,使开发人员能够在应用程序顶层捕获未处理的异常。扩展了 JSX 中 CSS 属性的支持,允许开发…

    2025年3月7日
    200
  • 使用 html css 和 javascript 的计算器 ui 的未来

    Neon Glass Calculator *{ box-sizing: border-box; margin: 0; padding: 0; } body{ font-family: “Poppins”,sans-serif; backg…

    2025年3月7日
    200
  • 准备前端项目以进行实时部署

    准备前端项目以进行实时部署 部署前端项目不仅仅是将文件上传到服务器。需要仔细规划、优化并充分了解托管环境,才能确保您的网站或应用程序快速、轻量级且可靠。在本文中,我们将介绍准备前端项目进行实时部署的关键步骤。我们将重点关注优化代码、管理资产…

    2025年3月7日
    200
  • 5m 初学者如何使用网络

    您将了解在计算机或手机上的网络浏览器中查看网页时发生的情况的简化视图。 客户端和服务器 连接到互联网的计算机称为客户端和服务器。简化版 客户端是典型网络用户的互联网连接设备(例如,连接到 Wi-Fi 的计算机)以及这些设备上可用的网络访问软…

    2025年3月7日
    200
  • 4年前端开发必备技术

    前端开发市场发展迅速,带来了新的工具和实践,改变了创建 Web 应用程序的体验。对于开发人员来说,无论是初学者、全职人员,还是想要了解自己要寻找什么的招聘人员,了解当今不可或缺的技术至关重要。让我们探讨一下 2024 年市场真正发生变化的因…

    2025年3月7日
    200

发表回复

登录后才能评论