扣子(Coze):构建智能助手并嵌入个人网站的新选择

首发地址(欢迎大家访问):扣子(Coze):构建智能助手并嵌入个人网站的新选择


1. 前言

之前写了一篇关于使用 MaxKB 搭建个人知识库并集成到个人网站的博客;

整个技术路线我觉得还是很好的,但是也伴随着很多问题,例如:

  • 硬件资源:自己部署一个 RAG 的应用,跑起来和用起来的区别还是很大的,要达到一个较好的效果,还是得有好的硬件支撑;
  • 知识库维护:这和多方面有关,比如文档切片及向量化的方式和算法影响、知识库的更新等,同时也受硬件的制约;
  • 可拓展性弱:现在的 MaxKB 似乎是支持 Workflow 的,但是仅仅这样,很多需求还是有困难的,功能比较弱;

所以,综合这些原因,我放弃了在个人网站中使用 MaxKB,但是我并不否认它是一个很好的产品;只是对于我想集成一个智能助手到个人网站的这个需求而言,他并不是最好的选择;

当然有更好的选择,看标题就知道了,所以本文着重探索一下扣子的用法。

2. 什么是扣子(Coze)1

国内地址:https://www.coze.cn

外网地址:https://www.coze.com

扣子是新一代 AI 应用开发平台。无论你是否有编程基础,都可以在扣子上快速搭建基于大模型的各类智能体,并将智能体发布到各个社交平台、通讯软件或部署到网站等其他渠道。

  • 功能与优势
  1. 灵活的工作流设计

扣子的工作流功能可以用来处理逻辑复杂,且有较高稳定性要求的任务流。扣子提供了大量灵活可组合的节点包括大语言模型 LLM、自定义代码、判断逻辑等,无论你是否有编程基础,都可以通过拖拉拽的方式快速搭建一个工作流,例如:

  • 创建一个搜集电影评论的工作流,快速查看一部最新电影的评论与评分。
  • 创建一个撰写行业研究报告的工作流,让智能体写一份 20 页的报告。
  1. 无限拓展的能力集

扣子集成了丰富的插件工具,极大地拓展智能体的能力边界。

  • 官方插件:扣子官方发布了多款能力丰富的插件,包括资讯阅读、旅游出行、效率办公、图片理解等 API 及多模态模型。你可以直接将这些插件添加到智能体中,丰富智能体能力。例如使用新闻插件,打造一个可以播报最新时事新闻的 AI 新闻播音员。
  • 自定义插件:扣子平台也支持创建自定义插件。 你可以将已有的 API 能力通过参数配置的方式快速创建一个插件让智能体调用。自定义插件也可以发布到商店,供其他用户使用。
  1. 丰富的数据源

扣子提供了简单易用的知识库功能来管理和存储数据,支持智能体与你自己的数据进行交互。无论是内容量巨大的本地文件还是某个网站的实时信息,都可以上传到知识库中。这样,智能体就可以使用知识库中的内容回答问题了。

  • 内容格式:知识库支持添加文本格式、表格格式、照片格式的数据。
  • 内容上传: 知识库支持 TXT 等本地文件、在线网页数据、Notion 页面及数据库、API JSON 等多种数据源,你也可以直接在知识库内添加自定义数据。
  1. 持久化的记忆能力

扣子提供了方便 AI 交互的数据库记忆能力,可持久记住用户对话的重要参数或内容。

例如,创建一个数据库来记录阅读笔记,包括书名、阅读进度和个人注释。有了数据库,智能体就可以通过查询数据库中的数据来提供更准确的答案。

  • 简单理解一下

扣子是 AI 应用开发平台或者说是大模型智能应用开发平台

它里面集成了很多工具,可以自定义不同场景的智能应用,可视化的配置方式,可以不懂编程,也能制作智能应用;

然后这里我不提 Agent 和 Bot,这些概念我希望有一篇文章专门来记录一下,因为我看了很多文章,感觉大家对这两个概念的理解都有所不一样;

这两个概念并不是新的概念,就是我个人还没有梳理的特别清晰,所以就先不说了;

  • 收费

最开始接触这玩意的时候,是不收费的,现在开始各种收费了;

详细的收费方案参考官网吧;

3. 用扣子创建一个智能体

这里我也就简单记录一下,扣子创建智能体里面要琢磨的东西也很多;

在coze里面新建一个智能体;

image-20241102153719393

创建好了之后就需要去编排这个智能体,具体编排是有很多知识点的,我这里先不赘述了,后面有机会再写一篇记录一下;

image-20241102153748144

4. 嵌入第三方网站

这里以嵌入 halo 2.x 为例;

  • 发布智能体

点击发布之后,选择web sdk;

image-20241102154019910

复制安装代码,注入到网站之中;

image-20241102154111553

细心的你一定发现了代码需要嵌入到 <body> 标签里面;

image-20241102155308916

而我们的 halo 是不支持直接嵌入 head 标签的,所以就得折腾一下

image-20241102155431480

写一个js,把代码嵌进去,同时把我们写的 js 嵌入到 head 标签里面;

<script>
	document.addEventListener('DOMContentLoaded', function() {
		// Create the first script element for the external JavaScript source
		const externalScript = document.createElement('script');
		externalScript.src = 'https://lf-cdn.coze.cn/obj/unpkg/flow-platform/chat-app-sdk/1.0.0-beta.2/libs/cn/index.js';
		externalScript.type = 'text/javascript';

		// Append the external script to the body, and then load the Coze WebChatClient
		externalScript.onload = function() {
			// Create the second script element for initializing the WebChatClient
			const initScript = document.createElement('script');
			initScript.type = 'text/javascript';
			initScript.textContent = `
				new CozeWebSDK.WebChatClient({
					config: {
						bot_id: '743......06220',
					},
					componentProps: {
						title: 'Coze',
					},
				});
			`;

			// Append the initialization script to the body
			document.body.appendChild(initScript);
		};

		// Append the external script to the body to start the loading process
		document.body.appendChild(externalScript);
	});
</script>

这个代码片段的主要功能是加载一个外部JavaScript库并初始化一个聊天客户端。以下是代码的分步解释:

  1. 等待页面加载完成:

    document.addEventListener('DOMContentLoaded', function() { ... });
    

    使用 DOMContentLoaded 事件确保整个页面的DOM结构已完全加载后再运行脚本。这保证脚本不会因为页面还没加载完而报错。

  2. 创建第一个脚本元素,加载外部JavaScript库:

    const externalScript = document.createElement('script');
    externalScript.src = 'https://lf-cdn.coze.cn/obj/unpkg/flow-platform/chat-app-sdk/1.0.0-beta.2/libs/cn/index.js';
    externalScript.type = 'text/javascript';
    

    代码通过 document.createElement('script') 创建一个 <script> 元素,并将其 src 属性设为指定的外部JavaScript库URL。这是一个外部资源,通常包含聊天应用SDK的核心代码。

  3. 当外部脚本加载完成后,初始化 coze:

    externalScript.onload = function() {
        const initScript = document.createElement('script');
        initScript.type = 'text/javascript';
        initScript.textContent = `
            new CozeWebSDK.WebChatClient({
                config: {
                    bot_id: '743......06220',
                },
                componentProps: {
                    title: 'Coze',
                },
            });
        `;
        document.body.appendChild(initScript);
    };
    

    onload 事件会在外部脚本成功加载并执行后触发。然后,它会创建另一个脚本元素 initScript,该脚本直接写在 textContent 中,目的是初始化 CozeWebSDK.WebChatClient

    • bot_id 是一个标识,指定了聊天机器人。
    • componentProps 包含一些自定义参数,比如聊天窗口的 title 设置为 “Coze”。
  4. 将外部脚本添加到文档中,开始加载流程:

    document.body.appendChild(externalScript);
    

    将第一个脚本元素(即外部SDK)添加到 <body> 中,开始下载和执行它。

然后注入代码就大功告成了:

image-20241102160111806

低代码编排智能应用有太多的可能性,能力相较于传统的应用肯定是提高了很多的,往后这种驱动 AI 或者 AI 驱动的应用肯定也会充满市场,所以学习一下肯定没错。

本文主要记录一下扣子 Web ADK的用法,后面再继续探索。

如果你对我的内容有不同的看法,或者好的建议,欢迎在评论区留言,非常期待与大家进行交流。


  1. 什么是扣子 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920759.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode - #139 单词拆分

文章目录 前言摘要1. 描述2. 示例3. 答案题解动态规划的思路代码实现代码解析1. **将 wordDict 转换为 Set**2. **初始化 DP 数组**3. **状态转移方程**4. **返回结果** **测试用例**示例 1:示例 2:示例 3: 时间复杂度空间复杂度总结关于我们 前言 本题由于没有合适答案为以往遗…

SpringCloud篇(服务保护 - Sentinel)

目录 一、雪崩问题及解决方案 1. 雪崩问题 2. 解决方案 方案一&#xff1a;超时处理 方案二&#xff1a;仓壁模式 方案三&#xff1a;断路器模式 方案四&#xff1a;限流 3. 总结 二、服务保护技术对比 三、Sentinel介绍与安装 1. 初识Sentinel 2. Sentinel 优势 3…

MACOS开发、使用常见问题汇总

MACOS常见问题 本文记录使用macos遇到的常见问题&#xff0c;后面会持续更新&#xff0c;觉得有用的可以收藏一下。 打不开xxx.app&#xff0c;因为它来自身份不明的开发者解决方法(开启任何来源) 打开终端&#xff08;Terminal&#xff09;程序 拷贝sudo spctl --master-di…

网络安全之国际主流网络安全架构模型

目前&#xff0c;国际主流的网络安全架构模型主要有&#xff1a; ● 信息技术咨询公司Gartner的ASA&#xff08;Adaptive Security Architecture自适应安全架构&#xff09; ● 美国政府资助的非营利研究机构MITRE的ATT&CK&#xff08;Adversarial Tactics Techniques &…

Linux下 GDB调试器的使用

文章目录 1. 可执行程序的Debug版和Release版区别一、编译选项与目的二、性能与体积三、功能与特性四、查看可执行文件 2. GDB 相关命令GDB常用命令 1. 可执行程序的Debug版和Release版区别 一、编译选项与目的 Debug版&#xff1a; 编译选项&#xff1a;通常使用包含调试信息…

RN开发搬砖经验之—Layout Inspector看不到 DecorView

最近我发现自己已经很久没有使用Layout Inspector这个工具了。今天&#xff0c;为了深入分析React Native&#xff08;RN&#xff09;框架中的一个UI问题&#xff0c;我需要查看RN组件对应的Android原生组件视图层级&#xff08;View tree&#xff09;的实际情况。因此&#xf…

go-zero(三) 数据库操作

go-zero 数据库操作 在本篇文章中&#xff0c;我们将实现一个用户注册和登录的服务。我们将为此构建一个简单而高效的 API&#xff0c;包括请求参数和响应参数的定义。 一、Mysql连接 1. 创建数据库和表 在 MySQL 中创建名为 test_zero的数据库&#xff0c;并创建user 表 …

23种设计模式-模板方法(Template Method)设计模式

文章目录 一.什么是模板方法模式&#xff1f;二.模板方法模式的特点三.模板方法模式的结构四.模板方法模式的应用场景五.模板方法模式的优缺点六.模板方法模式的C实现七.模板方法模式的JAVA实现八.代码解析九.总结 类图&#xff1a; 模板方法设计模式类图 一.什么是模板方法模…

uniapp实现开发遇到过的问题(持续更新中....)

1. 在ios模拟器上会出现底部留白的情况 解决方案&#xff1a; 在manifest.json文件&#xff0c;找到开源码视图配置&#xff0c;添加如下&#xff1a; "app-plus" : {"safearea":{"bottom":{"offset" : "none" // 底部安…

Python Matplotlib 安装指南:使用 Miniconda 实现跨 Linux、macOS 和 Windows 平台安装

Python Matplotlib 安装指南&#xff1a;使用 Miniconda 实现跨 Linux、macOS 和 Windows 平台安装 Matplotlib是Python最常用的数据可视化工具之一&#xff0c;结合Miniconda可以轻松管理安装和依赖项。在这篇文章中&#xff0c;我们将详细介绍如何使用Miniconda在Linux、mac…

【element-tiptap】Tiptap编辑器核心概念----结构篇

core-concepts 前言&#xff1a;这篇文章来介绍一下 Tiptap 编辑器的一些核心概念 &#xff08;一&#xff09;结构 1、 Schemas 定义文档组成方式。一个文档就是标题、段落以及其他的节点组成的一棵树。 每一个 ProseMirror 的文档都有一个与之相关联的 schema&#xff0c;…

window的wsl(Ubuntu)安装kafka步骤

环境&#xff1a;Win11 WSL(Linux子系统Ubuntu) apache-zookeeper-3.9.3-bin kafka_2.12-3.8.1 思路&#xff1a;apache上分别下载zookeeper和kafka&#xff0c;在wsl环境安装。在kafka上创建消息的topic&#xff0c;发送消息&#xff0c;接受消息&#xff0c;验证是否安…

Notepad++--在开头快速添加行号

原文网址&#xff1a;Notepad--在开头快速添加行号_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Notepad怎样在开头快速添加行号。 需求 原文件 想要的效果 方法 1.添加点号 Alt鼠标左键&#xff0c;从首行选中首列下拉&#xff0c;选中需要添加序号的所有行的首列&#xff…

机器学习基础06_梯度下降

目录 一、为什么使用梯度下降 二、什么是梯度下降 三、为什么要用梯度下降 四、怎么进行梯度下降 1、微分 1.单变量的微分 2.多变量的微分 2、梯度 3、步骤 (1)学习率α (2)梯度(导数)前的负号 4、实例实现 五、sklearn梯度下降 一、为什么使用梯度下降 前面利用正…

《Vue零基础入门教程》第二课:搭建开发环境

往期内容&#xff1a; 《Vue零基础入门教程》第一课&#xff1a;Vue简介 1 搭建开发环境 Vue环境分为两种 不使用构建工具使用构建丁具 首先&#xff0c;我们会介绍 不使用构建工具 的环境,在组件化章节中介绍 使用构建工具 的方式 1) 初始化 使用如下指令初始化 npm i…

【IDEA】解决总是自动导入全部类(.*)问题

文章目录 问题描述解决方法 我是一名立志把细节说清楚的博主&#xff0c;欢迎【关注】&#x1f389; ~ 原创不易&#xff0c; 如果有帮助 &#xff0c;记得【点赞】【收藏】 哦~ ❥(^_-)~ 如有错误、疑惑&#xff0c;欢迎【评论】指正探讨&#xff0c;我会尽可能第一时间回复…

Acme PHP - Let‘s Encrypt

Lets Encrypt是一个于2015年三季度推出的数字证书认证机构&#xff0c;旨在以自动化流程消除手动创建和安装证书的复杂流程&#xff0c;并推广使万维网服务器的加密连接无所不在&#xff0c;为安全网站提供免费的SSL/TLS证书。 使用PHP来更新证书&#xff1a; Acme PHP | Rob…

【Linux清空显存占用】Linux 系统中清理 GPU 显存

操作指令 # 查看NVIDIA GPU状态和进程 nvidia-smi # 查找所有包含"python"的进程 ps -ef grep python # 强制结束进程号为3023的进程 kill -9 3023截图演示 在 Linux 系统中清理 GPU 显存可以采用以下方法&#xff1a; 1. 终止特定进程&#xff08;常用方法&#x…

【网络】网络抓包与协议分析

网络抓包与协议分析 一. 以太网帧格式分析 这是以太网数据帧的基本格式&#xff0c;包含目的地址(6 Byte)、源地址(6 Byte)、类型(2 Byte)、数据(46~1500 Byte)、FCS(4 Byte)。 Mac 地址类型 分为单播地址、组播地址、广播地址。 单播地址&#xff1a;是指第一个字节的最低位…

IC脚本之perl

Perl 是一种功能丰富的计算机程序语言&#xff0c;运行在超过100种计算机平台上。IC flow 的 流传的古老版本大多是也是使用这种语言&#xff0c;这里会对Perl的常用知识点进行总结。 Note: 所有的语句必须以 “ &#xff1b;”结尾&#xff1b;所有的数据必须先定义才可以使…