掘金 人工智能 08月01日 17:28
保姆级教程!字节全家桶秒搭扣子开源版,附赠实用 AI 智能体开发实战
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文作者分享了如何在火山引擎上轻松部署Coze开源版平台的全过程。对于想要数据私有化、深度定制化AI工具的企业而言,开源版Coze提供了比官方平台更高的自由度和安全性。文章详细介绍了利用火山引擎ECS的一键部署模板,简化了繁琐的部署流程,使得用户能够像安装普通软件一样快速搭建自己的Coze平台。此外,文章还指导了如何通过自动化脚本更新模型,并演示了如何基于最新的豆包模型创建智能体,实现新闻资讯的抓取与多格式输出,极大地降低了私有化部署的门槛,为用户提供了极大的便利。

💰 **数据私有化与深度定制化优势**:相较于官方平台,Coze开源版的核心优势在于数据私有化,所有用户数据和模型调用记录均存储在用户自有服务器,安全性极高,特别适合处理敏感数据的企业。同时,开源版本允许用户修改源代码,与企业内部系统(如飞书、钉钉)深度集成,打造真正贴合业务需求的AI工具,实现无限制、更自由的功能扩展。

🚀 **火山引擎一键部署的便捷性**:文章重点介绍了火山引擎ECS提供的一键部署Coze开源版的模板功能。这一功能极大地简化了部署流程,用户无需进行复杂的手动配置,只需通过简单的几个步骤,即可快速完成Coze Studio的部署,并自动内嵌火山方舟的API Key及模型,省去了用户申请和调用模型API Key的麻烦,体验“亲爹般”的贴心便捷。

🔧 **自动化脚本实现模型更新**:为进一步降低用户操作难度,作者提供了一个实用的自动化脚本,用于更新Coze开源版中嵌入的模型。该脚本能够自动处理模型配置文件的修改,包括提取API Key、删除原有模型配置、添加新的模型配置(如最新的豆包模型),并自动备份原文件,最后通过Docker Compose重启服务即可完成模型更新,使得模型切换过程对新手而言也变得简单易懂。

💡 **基于最新模型构建新闻推送智能体**:文章演示了如何利用最新发布的豆包模型(特别是flash版)创建一个智能体,实现新闻资讯的抓取和多格式输出。通过工作流,智能体能够自动抓取最新的AI资讯,并将其格式化为Markdown、纯文本或JSON等多种形式,方便用户随时了解行业动态,并将信息便捷地分享至飞书、钉钉等平台,展示了开源Coze平台强大的应用潜力。

📈 **低门槛私有化部署与资源福利**:作者强调,火山引擎的解决方案大幅降低了私有化部署的门槛,让用户能够以极低的成本和简便的操作,获得对AI工具的完全掌控感。此外,文章还分享了火山引擎的官方活动,用户注册即可免费获得大量使用大模型的Token,鼓励用户充分利用平台资源,享受AI技术带来的便利。

大家好,我是安仔,一个想做产品经理的程序员。

最近,大家估计都知道字节的扣子平台开源了,这时候有些小伙伴可能就想,coze.cn 官方平台不香吗?点开即用,为啥还要费劲自己部署一个开源版?

我举个比较形象的例子吧,官方平台就像一个“精装修的拎包入住公寓”。优点是方便、快捷,功能齐全。但缺点是“邻居”太多,你无法决定房子的构造,最重要的是,你的所有“家具和私人物品”(数据)都放在房东那里。

而开源版就相当于是你“自己买地盖别墅”。优点是:

    数据私有化:所有数据、模型调用记录、用户交互都在你自己的服务器里,安全感拉满,尤其适合处理敏感数据的企业。深度定制化:你可以修改源代码,“砸墙、改水电”,把它和公司的内部系统(如飞书、钉钉、企业微信)深度集成,打造真正符合业务流程的 AI 工具。无限制,更自由:不用担心平台的规则限制,可以自由接入任何模型,任意扩展功能。

这个对于一些企业来说,尤其是需要处理敏感数据和定制化 AI 能力的企业来说,是非常有必要的。

想通了这点,问题就来了:“别墅”盖在哪最好?

所以这时候就有不少大佬直接出了本地部署的教程,虽然都是保姆级,跟着做也挺友好,但是都有个问题,那就是都需要比较繁琐复杂的操作步骤。

那我就在想,有没有可以一键部署的方案呢?

这不,昨天字节的火山引擎举行了新品发布会,小弟也有幸现场参与到了,而就在字节刚发布的新品里,火山引擎 ECS 现在居然就直接提供了一键部署扣子开源版的模板

“亲爹”给的福利,那必须得用上啊!

这里,我就来手把手教学下,在火山引擎上部署扣子开源版到底有多丝滑。

首先,大家如果没有火山引擎账号的,可以先去火山引擎官网注册一个账号,然后登录进去,官网地址如下:

console.volcengine.com/

注册完后,我先给大家一个官方指导“一键部署 Coze Studio”的文档地址:

www.volcengine.com/docs/6662/1…

这里“Coze Studio”就是扣子开源版平台,这个文档是主要给大家参考的,但仅供参考就好了,动手步骤看我下面的就可以了。

我本来以为会有一堆复杂的选项,结果整个过程就像安装普通软件一样简单,选好配置,点个授权,然后泡杯咖啡的功夫,我的 Coze Studio 就部署好了!网址和账号直接发给我,这‘亲爹’般的体验,太贴心了。

以下是具体的步骤:

    访问如下地址:www.volcengine.com/activity/de…

    在下图所示的地方,直接点击立即部署

    之后你会跳转到一个部署配置页面:

    在这个一键部署模板过程中,你就直接点击一键添加策略开通授权,以用于创建扣子开源版应用时提供权限开放。

    然后再设置个管理员邮箱,这是用于登录扣子开源版平台的初始管理员账号,填自己个人邮箱就可以了,这里我就填写了自己的一个个人邮箱地址。

    接下来就是等它自动部署完成了,可以去喝个咖啡,等它部署完成。

    当你看到状态部署成功后,就可以直接复制Web UI 访问入口地址来直接访问属于你自己的扣子开源版平台了!这个地址一般的格式是http://xxx.xxx.xxx.xxx:8888

    熟悉的画面出现了,接下来就是填写你的管理员邮箱,输入自己想好的密码,那个“注册”按钮就会变成可点击的状态,然后点击它,就可以开始使用扣子开源版平台了。

    平台默认是英文界面,可以点击左下角的本身人形图标,然后点击Account,会弹出一个弹窗,在弹窗中点击Language,选择Chinese,然后点击Save,就可以切换到中文界面了。

    就这样,你的第一个扣子开源版平台就部署好了,是不是很简单?

而且这里有个不起眼的重点是什么?

在这个一键部署的模板中,它会基于你当前的账号自动创建一个火山方舟 API Key,并为你的这个 Coze Studio 应用直接内嵌了 Doubao-Seed-1.6 和 Embedding 模型,这省下你申请和调用模型 API Key 的麻烦。

接下来我们可以快速试试创建个智能体玩玩。

直接在主界面创建一个测试智能体,随便起个名字,然后按步骤指引创建:

又是一个熟悉的画面,智能体创建成功了:

我们直接加一个插件,看看效果,我这里选了一个搜狐热闻插件,然后也看到这个智能体已经默认选择了 Doubao-Seed-1.6 模型,我们来提个简单问题:

今天有什么AI新闻?

可以看到,这个智能体已经可以正常工作了,不错,这跟官方平台使用起来没啥区别!

部署好的扣子开源版自带了模型,但我昨天听火山方舟就上了豆包 1.6 thinking 和 flash 0715 最新版模型,尤其是 flash 版的,主打一个超低延迟和超强理解力,做问答助手再合适不过了。

但是,在扣子开源版中,换模型会很‘硬核’吗?

别怕,实际操作下来发现,其实倒还好,接下来我也来手把手教教大家。

具体步骤如下:

    首先,我们去到火山方舟的控制台,地址如下:console.volcengine.com/ark/region:…

    然后我们开通以下两个最新的模型,我拿其中一个来演示,另外一个也是类似的操作,如下:

    这里我们演示点击Doubao-Seed-1.6-thinking,然后会跳进它的详情页面,点击下图中的推理按钮:

    然后去到下图的STEP 2配置这里,点击“开通模型”即可,这样我们才能使用对应的模型:

    接下来,我们回到刚刚应用市场中“我的应用”界面,你会看到你刚刚创建的 Coze Studio 应用,地址如下:

    然后点击你应用的名字进入配置界面,然后可以看到下图中有个一键部署个边有个跳转按钮,点击它,如下:

    这时候,你就会在一个新页面看到以下类似的 ECS 配置界面:

    然后我们点击右上角的配置选项,最后点击“发送指令”:

    接下来,我们按照下图的提示,为了让大家更简单、傻瓜式去更新模型,我专门写了个自动化脚本,直接复制粘贴进去就行,然后修改对应执行路径:脚本详情如下:

    #!/bin/bash# 配置文件路径ENV_FILE=".env"# 检查 .env 文件是否存在if [ ! -f "$ENV_FILE" ]; then    echo "❌ 错误: 找不到 .env 文件"    exit 1fiecho "🚀 开始更新模型配置..."# 步骤1: 提取第一个 API Keyecho "🔍 步骤1: 提取第一个 API Key..."# 提取第一個 API Key,使用更簡單的方法SHARED_API_KEY=""while IFS= read -r line; do    if [[ $line =~ MODEL_API_KEY_[0-9]+=\"([^\"]*)\" ]]; then        SHARED_API_KEY="${BASH_REMATCH[1]}"        break    fidone < "$ENV_FILE"if [ -z "$SHARED_API_KEY" ]; then    echo "⚠️  警告: 未找到现有的 API Key,请手动设置"    SHARED_API_KEY="YOUR_API_KEY_HERE"else    MASKED_KEY="${SHARED_API_KEY:0:8}..."    echo "  找到 API Key: $MASKED_KEY"fi# 步骤2: 删除原有模型配置echo "🗑️  步骤2: 删除原有模型配置..."# 使用 sed 删除从 "# Settings for Model" 开始的所有模型配置# 创建临时文件TEMP_FILE=$(mktemp)# 标记是否在模型配置区域内IN_MODEL_SECTION=falsewhile IFS= read -r line; do    # 检测模型配置区域开始    if [[ "$line" == *"# Settings for Model"* ]]; then        IN_MODEL_SECTION=true        # echo "  删除模型配置区域开始: $line"        continue    fi    # 如果在模型配置区域内    if [ "$IN_MODEL_SECTION" = true ]; then        # 跳过模型相关的注释和配置        if [[ "$line" =~ ^[[:space:]]*#.*[Mm]odel.* ]] || \           [[ "$line" =~ ^export[[:space:]]+MODEL_.* ]] || \           [[ -z "${line// }" ]]; then            continue        else            # 遇到非模型相关内容,结束模型区域            IN_MODEL_SECTION=false        fi    fi    # 保留其他所有内容    echo "$line" >> "$TEMP_FILE"done < "$ENV_FILE"echo "  已删除原有模型配置"# 步骤3: 添加新的模型配置echo "➕ 步骤3: 在文件末尾添加新的模型配置..."# 定义新的模型配置cat >> "$TEMP_FILE" << EOF# Settings for Model# Model for agent & workflow# add suffix number to add different modelsexport MODEL_PROTOCOL_0="ark"       # protocolexport MODEL_OPENCOZE_ID_0="100001" # id for recordexport MODEL_NAME_0="doubao-seed-1-6-250615"export MODEL_ID_0="doubao-seed-1-6-250615"export MODEL_API_KEY_0="$SHARED_API_KEY"export MODEL_BASE_URL_0=""           # model base urlexport MODEL_PROTOCOL_1="ark"       # protocolexport MODEL_OPENCOZE_ID_1="100002" # id for recordexport MODEL_NAME_1="doubao-seed-1-6-thinking-250715"export MODEL_ID_1="doubao-seed-1-6-thinking-250715"export MODEL_API_KEY_1="$SHARED_API_KEY"export MODEL_BASE_URL_1=""           # model base urlexport MODEL_PROTOCOL_2="ark"       # protocolexport MODEL_OPENCOZE_ID_2="100003" # id for recordexport MODEL_NAME_2="doubao-seed-1-6-flash-250715"export MODEL_ID_2="doubao-seed-1-6-flash-250715"export MODEL_API_KEY_2="$SHARED_API_KEY"export MODEL_BASE_URL_2=""           # model base urlEOFecho "  已添加 3 个模型的配置"# 步骤4: 备份原文件并替换echo "💾 步骤4: 备份原文件并保存更新后的配置..."echo "  创建备份文件: .env.backup"cp "$ENV_FILE" ".env.backup"mv "$TEMP_FILE" "$ENV_FILE"echo "✅ 模型配置更新完成!"echo ""echo "📋 新增的模型:"echo "  - doubao-seed-1-6-250615 (ID: 100001)"echo "  - doubao-seed-1-6-thinking-250715 (ID: 100002)"echo "  - doubao-seed-1-6-flash-250715 (ID: 100003)"echo ""echo "💾 备份文件已保存为: .env.backup"echo "🔧 提示: 如需修改 API Key,请手动编辑 .env 文件"docker compose --profile "*" restart coze-server

    执行路径如下:

    /root/workspace/opencoze

    然后下面都是默认选项即可,点击“确定”,然后就会跳到一个运维编排界面去执行配置更改,等待它运行知道成功为止即可,如下:

    然后你的模型更新就完成了!直接去回扣子平台的页面刷新一下,你就能看到你刚刚更新的模型了,如下:

还是多亏了上面的脚本配置,不然要大家去手动进去 ECS 服务器重置密码,在命令行上改配置,执行上述命令,对于新手来说,这个有点太难了...

好了,现在万事俱备,只欠东风了,这次我打算直接基于最新的 doubao-seed-1-6-flash-250715 模型来写一个新闻推送的智能体,毕竟谁不想第一次时间知道最新的 AI 动态呢?

所以首先,我在扣子的资源库直接创建了一个获取新闻的工作流,如下:

其实自己原意是通过这个工作流,写的第一个代码节点 - 获取当天 AI新闻就是为了自动抓取网络上最新的 AI 资讯,以保证信息是最新的。

拿到原始新闻数据后,再通过第二个格式化新闻的代码节点 - 格式化新闻内容,将新闻内容按我们需要可以生成多种格式的新闻,比如:

这样,除了自己可以第一时间了解到最新的 AI 资讯,还可以将这些新闻推送一直复制粘贴到自己的飞书、钉钉、微信等渠道,实用方便不少。

接下来,我们来试试效果,新建一个智能体,选择对应的大模型,这里我选择的是 doubao-seed-1-6-flash-250715 模型,然后添加这个工作流到这个智能体中,如下:

接下来,我们直接提个问题 - 获取今天的新闻推送,看看效果:

新版 flash 模型的回答反应果然很快,不一会,整个新闻消息的结果就出来了。

好,我们继续问它,我要 JSON 格式的新闻内容,再看看效果:

你看,也是一下子全部出来了,我们再来试试让他输出普通文本的格式 - 我要纯文本格式的新闻内容

再来进阶一点,试试 Markdown 格式 - 我要你分类好对应新闻后以 Markdown 格式输出,可以适当加些合适的表情符号

这个效果就更好了,不仅分类清晰,而且还有表情符号,阅读起来更加友好了。

我这里演示的智能体只是一个雏形,里面其实还有很多可以迭代和想象的空间,剩下的留给你们去探索了~

说真的,以前私有化部署门槛高,现在火山引擎直接帮你打好地基、备好装修队,你只管“挑窗帘颜色”。低门槛的掌控感,对于新手来说,真的越来越友好了。

最后,我这里也顺便给大家分享下火山引擎官方的活动,只要注册就可以每天免费获得大额使用大模型的 token:

下面的详情的介绍链接,这羊毛不薅亏了:

www.volcengine.com/docs/82379/…

我是安仔,今天学到的产品思维又+1,希望上面的教程能帮到你从零开始部署一个扣子开源版平台。

如果希望喜欢我的内容,可以关注我的公众号,我会持续分享更多实用和有趣的内容给大家

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Coze开源版 火山引擎 一键部署 AI模型 私有化部署
相关文章