当前位置: 首页 > news >正文

DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件

1 DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件

1.1 背景

  AI能力再强,如果不能在企业的自有业务上产生助益,那基本也是一无是处。将企业的自有业务上传到线上训练,那是脑子进水的做法,竞争对手不仅捡了大便宜,自己的企业可能没享受到AI红利就被干死了!
  这也是为什么DeepSeek的本地模型及硬件设备会大热,但对中小企业,特别是小微企业来说,硬件设备从几十万~几百万的成本,是无法逾越的障碍!那中小微企业就要在AI的大潮中被时代淘汰吗?
  肯定不是,也肯定不能!

自有业务场景
本文将以一个小众文本编辑器EverEdit为切入点,训练AI认识EverEdit的语法着色规则,并生成一份新的编程语言(zig)的语法着色文件。

🕮说明
  因为EverEdit够小众,所以现成的各种线上线下AI模型都不认识,需要自己进行训练,这很符合中小微企业的自有业务特点。

1.2 准备步骤

1.2.1 AI平台账号准备硅基流动注册

在这里插入图片描述

1.2.2 下载CherryStudio

注:CherryStudio工具的知识库支持训练本地素材

1.2.3 在CherryStudio中配置密钥

  配置密钥是为了能够让CherryStudio使用AI供应商(这里是硅基流动)的模型

  1. 步骤1:在siliconflow网站登录后,拷贝自己的密钥,如下图所示:
    在这里插入图片描述

  2. 步骤2:在CherryStudio中配置密钥,如下图所示:
    在这里插入图片描述

1.3 训练本地知识库(EverEdit的语法着色规则)

  1. CherryStudio中新建本地知识库,如下图所示:
    在这里插入图片描述

注:如果已经创建过EverEdit本地知识库,就不用重复创建了。

  1. EverEdit自带的语法文件丢给CherryStudio消化,如下图所示:
      知识库有两部分,一是EverEdit内置的语法着色文件,二是EverEdit的语法着色规则介绍文件(帮助文档)。
      消化完成后,会出现绿色的“√”符号
    在这里插入图片描述

1.3.1 在CherryStudio中使用本地知识库(EverEdit)和DeepSeek在线模型生成zig语法着色文件

1.3.1.1 打开知识库开关,并选择本地知识库,如下图所示:
  1. CherryStudio的导航栏选择“助手”按钮,切换到助手模式
    在这里插入图片描述

  2. 在界面的底部聊天窗口中选择本地知识库
    在这里插入图片描述

1.3.1.2 提问让AI生成zig语法文件,并不断进行修正
  1. 让AI生成一份EverEdit编辑器的zig语法着色文件
    在这里插入图片描述

注:以上是和AI的对话记录,用户内容部分即本人在CherryStudio聊天窗口中输入的内容, 下同。

  1. 顺手让AI生成1份Zig源代码用于测试

    在这里插入图片描述
    AI生成的源码内容如下:

const std = @import("std"); // 导入标准库// 定义一个结构体
const Point = struct {x: i32,y: i32,// 结构体方法pub fn move(self: *Point, dx: i32, dy: i32) void {self.x += dx;self.y += dy;}
};// 定义一个枚举
const Direction = enum {North,South,East,West,// 枚举方法pub fn opposite(self: Direction) Direction {return switch (self) {.North => .South,.South => .North,.East => .West,.West => .East,};}
};// 定义一个联合体
const Value = union(enum) {Int: i32,Float: f32,Bool: bool,// 联合体方法pub fn print(self: Value) void {switch (self) {.Int => |i| std.debug.print("Int: {}\n", .{i}),.Float => |f| std.debug.print("Float: {}\n", .{f}),.Bool => |b| std.debug.print("Bool: {}\n", .{b}),}}
};// 主函数
pub fn main() void {// 变量声明const a: i32 = 10;var b: i32 = 20;b += a;// 控制流if (b > 15) {std.debug.print("b is greater than 15\n", .{});} else {std.debug.print("b is less than or equal to 15\n", .{});}// 循环var i: u8 = 0;while (i < 5) : (i += 1) {std.debug.print("i = {}\n", .{i});}// 结构体使用var p = Point{ .x = 0, .y = 0 };p.move(5, 10);std.debug.print("Point: ({}, {})\n", .{ p.x, p.y });// 枚举使用const dir = Direction.North;const oppositeDir = dir.opposite();std.debug.print("Opposite of North is {}\n", .{oppositeDir});// 联合体使用const val = Value{ .Int = 42 };val.print();
}
  1. 将AI生成的zig.mac语法着色文件保存到EverEdit安装目录下的syntax目录

  2. 参考配置EverEdit语法着色对zig语法进行配置

  3. 告诉AI哪里出了错误,如下所示:
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    注:后面还有一些错误调试,就不一一列举了。

  4. 最终的着色结果
    在这里插入图片描述

注:一般的编辑器都没有部署LSP,因此对库函数中的关键字是不识别的,如:std.debug

1.4 附录:AI生成的EverEdit规范的zig语言语法着色文件zig.mac

'******************************************************************************
' @file    zig.mac
' @brief   Zig 语言语法着色文件
' @author  tyysoft & DeepSeek-V3 & CherryStudio
' @date    2025-2-13
' @version 1.0
' @note    本文件定义了 Zig 语言的语法着色规则,包括注释、字符串、关键字、数据类型等的着色
'          通过包含 const.mac 文件获取颜色常量,并使用 Doxygen 风格注释进行说明。
'******************************************************************************' 包含颜色定义文件
Include ".\const.mac"' 创建 Zig 语法着色对象
Dim zig
Set zig = Parser.CreateParser()' 设置最大解析字符数
zig.SetParseMax(1000)' 定义注释
Dim regionLineComment, regionBlockComment
Set regionLineComment = zig.CreateRegion(COLOR_COMMENT1, "+//+", "$", True)
Set regionBlockComment = zig.CreateRegion(COLOR_COMMENT1, "+/*+", "+*/+", True)' 定义字符串
Dim regionString
Set regionString = zig.CreateStringRegion(COLOR_STRING1, """", """", False)' 定义关键字
Dim itemKeyword
Set itemKeyword = zig.CreateWord(COLOR_WORD1, "const var fn if else while for switch case break continue return struct enum union error defer try catch unreachable async await suspend resume using comptime noalias volatile align linksection export extern packed anytype undefined null true false and or xor not pub", True)' 定义数据类型
Dim itemDataType
Set itemDataType = zig.CreateWord(COLOR_WORD2, "i8 i16 i32 i64 u8 u16 u32 u64 f16 f32 f64 bool void anyerror anytype anyframe", True)' 定义函数
Dim itemFunction
Set itemFunction = zig.CreateItem(COLOR_FUNCTION, "\b[a-zA-Z_]\w*\s*\(", True)' 定义数字
Dim itemNumber
Set itemNumber = zig.CreateItem(COLOR_NUMBER, "\b\d+(\.\d+)?\b", False)' 定义操作符
Dim itemOperator
Set itemOperator = zig.CreateItem(COLOR_OPERATOR, "[+\-*/%&|^<>=!]+", False)' 将定义的元素添加到语法着色对象
zig.AddRegion regionLineComment
zig.AddRegion regionBlockComment
zig.AddRegion regionString
zig.AddItem itemKeyword
zig.AddItem itemDataType
zig.AddItem itemFunction
zig.AddItem itemNumber
zig.AddItem itemOperator' 设置代码折叠规则
zig.FoldText "{", False, "}", False' 设置括号匹配
zig.SetPairs "(){}[]"' 定义注释快捷键
zig.CommentLine "//"
zig.CommentBlock "/*", "*/"' 添加自定义高亮(示例:高亮注释中的TODO)
Dim itemTodo
Set itemTodo = zig.CreateItem(COLOR_HIGHLIGHT1, "\bTODO\b", True)
regionLineComment.AddItem itemTodo
regionBlockComment.AddItem itemTodo

作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来源自豆包AI,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

相关文章:

DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件

1 DeepSeek处理自有业务的案例&#xff1a;让AI给你写一份小众编辑器(EverEdit)的语法着色文件 1.1 背景 AI能力再强&#xff0c;如果不能在企业的自有业务上产生助益&#xff0c;那基本也是一无是处。将企业的自有业务上传到线上训练&#xff0c;那是脑子进水的做法&#xff…...

【鸿蒙HarmonyOS Next实战开发】lottie动画库

简介 lottie是一个适用于OpenHarmony和HarmonyOS的动画库&#xff0c;它可以解析Adobe After Effects软件通过Bodymovin插件导出的json格式的动画&#xff0c;并在移动设备上进行本地渲染。 下载安裝 ohpm install ohos/lottieOpenHarmony ohpm 环境配置等更多内容&#xff0c…...

PAT乙级真题 — 1084 外观数列(java)

外观数列是指具有以下特点的整数序列&#xff1a; d, d1, d111, d113, d11231, d112213111, ...它从不等于 1 的数字 d 开始&#xff0c;序列的第 n1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d&#xff0c;所以就是 d1&#xff1b;第 2 项是 1 个 d&#xff08;对…...

从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地

导读&#xff1a;日志数据已成为企业洞察系统状态、监控网络安全及分析业务动态的宝贵资源。网易云音乐引入 Apache Doris 作为日志库新方案&#xff0c;替换了 ClickHouse。解决了 ClickHouse 运维复杂、不支持倒排索引的问题。目前已经稳定运行 3 个季度&#xff0c;规模达到…...

STM32——HAL库开发笔记19(串口中断接收实验)(参考来源:b站铁头山羊)

本实验&#xff0c;我们以中断的方式使得串口发送数据控制LED的闪烁速度&#xff0c;发送1&#xff0c;慢闪&#xff1b;发送2&#xff0c;速度正常&#xff1b;发送3&#xff0c;快闪。 一、电路连接图 二、实现思路&CubeMx配置 1、实现控制LED的闪烁速度 uint32_t bli…...

清影2.0(AI视频生成)技术浅析(二):自然语言处理

清影2.0(AI视频生成)中的自然语言处理(NLP)技术是其核心组件之一,负责将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指导后续的视频生成过程。 一、基本原理 1. 目标 清影2.0的NLP技术旨在将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指…...

Unity序列化多态数组

文档 Json序列化 脚本序列化 问题 Unity序列化数组时&#xff0c;只能存储基类内容&#xff0c;子类内容缺少。 Unity版本 2019.4.40 原因&#xff1a;Unity序列化不支持多态 测试类 将testarray类序列化时&#xff0c;多态列表personlist只转换了基类数据&#xff0c;子类…...

Spring Framework 中文官方文档

spring的部分中文文档。给总结在下面了&#xff1a; 看英文的大佬可以绕路了哈哈哈 一、 历史、设计理念、反馈、入门。 二、 IoC 容器、事件、资源、i18n、验证、数据绑定、类型转换、SpEL、AOP 三、 模拟对象、TestContext 框架、Spring MVC 测试、WebTestClient。 四、 事…...

力扣-二叉树-257 二叉树的所有路径

思路 除去根节点&#xff0c;每一层添加->val&#xff0c;然后使用前序遍历的顺序 代码 class Solution { public:vector<string> res;void getTreePaths(string s, TreeNode* root){s "->";s to_string(root->val);if(root->left nullptr &…...

如何调整 Nginx工作进程数以提升性能

&#x1f3e1;作者主页&#xff1a;点击&#xff01; Nginx-从零开始的服务器之旅专栏&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年2月15日14点20分 Nginx 的工作进程数&#xff0…...

FreeRTOS-rust食用指南

Rust 环境安装 rustup 是 Rust 的安装程序&#xff0c;也是它的版本管理程序&#xff0c;Linux 命令行下使用如下方式安装 # 安装 rustup curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh #更新 rustup rustup update# 版本检查 rustc -V cargo -VFreeRTOS-rust…...

如何使用智能化RFID管控系统,对涉密物品进行安全有效的管理?

载体主要包括纸质文件、笔记本电脑、优盘、光盘、移动硬盘、打印机、复印机、录音设备等&#xff0c;载体&#xff08;特别是涉密载体&#xff09;是各保密、机要单位保证涉密信息安全、防止涉密信息泄露的重要信息载体。载体管控系统主要采用RFID射频识别及物联网技术&#xf…...

0基础学LabVIEW

对于零基础的朋友来说&#xff0c;学习LabVIEW需要一个科学的学习路径和方法。通过观看优质的B站教程打好基础&#xff0c;再结合实际项目进行实践操作&#xff0c;能够快速提升LabVIEW的应用能力。以下是从入门到进阶的学习建议。 ​ 一、利用B站入门教程打基础 筛选优质教程…...

Go语言精进之路读书笔记(第二部分-项目结构、代码风格与标识符命名)

说明&#xff1a;《Go语言精进之路》第一部分-熟知Go语言的一切&#xff0c;不在博客中做读书笔记了&#xff0c;大家可以自己读一读&#xff0c;每个人心里都会有自己对Go语言的认识和理解。 直接从第二部分-项目接口、代码风格与标识符命名开始 第二章目录如下 第5条 使用…...

Windows server 2016 无法部署docker问题

根据流程winserver16安装docker ee&#xff0c;发现服务器管理器的添加角色和功能-功能中没有 container 根据流程winserver16安装docker desktop&#xff0c;发现安装 hyper-v 报错 原因&#xff1a; 本人测试用windows server 2016使用vmware搭建&#xff0c;而vmware本身可…...

智能AI之隐私安全,尤其是医疗

前言 智能AI能更好的服务我们的生活&#xff0c;各行各业都将会有她的影子。我们在依赖她的情况下&#xff0c;我们的隐私安全吗&#xff1f; 前两天分享了用她分析CT拍片、还有一份血检报告单&#xff0c;回复的确实比有些医生都说的专业全面。以至于我都有冲动依赖她开…...

【hot100】054螺旋矩阵

一、思路 这个题目主要有两个问题&#xff0c;一是什么时候切换方向&#xff0c;二是如何切换方向 问题一&#xff1a;此步移动完后&#xff0c;判断下一个元素&#xff0c;如果大于等于边界值&#xff08;从0开始&#xff09;或者小于边界值时或者访问数组为真时 问题二&am…...

【Java学习】类和对象

目录 一、选择取块解 二、类变量 三、似复刻变量 四、类变量的指向对象 五、变量的解引用访问 1.new 类变量(参) 2.this(参) 3.类变量/似复刻变量. 六、代码块 七、复制变量的赋值顺序 八、访问限定符 1.private 2.default 九、导类 一、选择取块解 解引用都有可以…...

TestHubo基础教程-创建项目

TestHubo是一款国产开源一站式测试工具&#xff0c;涵盖功能测试、接口测试、性能测试&#xff0c;以及 Web 和 App 测试&#xff0c;可以满足不同类型项目的测试需求。本文将介绍如何快速创建第一个项目&#xff0c;以快速入门上手。 1、创建项目 在 TestHubo 中&#xff0c;…...

JS 链表

文章目录 链表题的一些总结两种链表定义set存储链表节点&#xff0c;存的是整个空间同时处理长短不一的两个链表处理方法 while(l1 || l2)处理方法 while(l1 & l2) dummyhead的使用 链表题的一些总结 两种链表定义 class class ListNode {val;next null;constructor(va…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...