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平臺賬號準備點擊進入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.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895585.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DeepSeek教unity------MessagePack-05

動態反序列化 當調用 MessagePackSerializer.Deserialize<object> 或 MessagePackSerializer.Deserialize<dynamic> 時&#xff0c;二進制數據中存在的任何值都將被轉換為基本值&#xff0c;即 bool、char、sbyte、byte、short、int、long、ushort、uint、ulong、…

C++入門之《拷貝構造函數》詳解

拷貝構造函數是構造函數的一個重載 拷貝構造函數是特殊的構造函數&#xff0c;用于基于已存在對象創建新對象。比如定義一個 Person 類&#xff1a; class Person { private:std::string name;int age; public:Person(const std::string& n, int a) : name(n), age(a…

Ollama命令使用指南

Ollama 命令使用指南 Ollama 命令使用指南1. Ollama 命令概覽2. Ollama 命令詳解2.1 啟動 Ollama2.2 創建模型2.3 查看模型信息2.4 運行模型2.5 停止運行的模型2.6 從注冊表拉取模型2.7 推送模型到注冊表2.8 列出本地模型2.9 查看正在運行的模型2.10 復制模型2.11 刪除模型 3. …

為什么配置Redis時候要序列化配置呢

序列化和反序列化&#xff1f;&#xff1a; 序列化&#xff1a;將對象轉換為二進制數據&#xff0c;以便存儲到Redis中。 反序列化&#xff1a;將Redis中的二進制數據轉換回對象&#xff0c;以便在應用程序中使用。 1. 默認序列化器的問題 如果不配置序列化器&#xff0c;Re…

【問】強學如何支持 遷移學習呢?

案例&#xff1a;從CartPole-v1遷移到MountainCar-v0 在源環境&#xff08;CartPole-v1&#xff09;中訓練模型 首先&#xff0c;我們使用DQN算法在CartPole-v1環境中訓練一個強化學習模型。以下是代碼示例&#xff1a; import gym import torch import torch.nn as nn impor…

深入淺出Java反射:掌握動態編程的藝術

小程一言反射何為反射反射核心類反射的基本使用獲取Class對象創建對象調用方法訪問字段 示例程序應用場景優缺點分析優點缺點 注意 再深入一些反射與泛型反射與注解反射與動態代理反射與類加載器 結語 小程一言 本專欄是對Java知識點的總結。在學習Java的過程中&#xff0c;學習…

【算法與數據結構】并查集詳解+題目

目錄 一&#xff0c;什么是并查集 二&#xff0c;并查集的結構 三&#xff0c;并查集的代碼實現 1&#xff0c;并查集的大致結構和初始化 2&#xff0c;find操作 3&#xff0c;Union操作 4&#xff0c;優化 小結&#xff1a; 四&#xff0c;并查集的應用場景 省份…

C語言簡單練習題

文章目錄 練習題一、計算n的階乘bool類型 二、計算1!2!3!...10!三、計算數組arr中的元素個數二分法查找 四、動態打印字符Sleep()ms延時函數system("cls")清屏函數 五、模擬用戶登錄strcmp()函數 六、猜數字小游戲產生一個隨機數randsrandRAND_MAX時間戳time() 示例 …

ShenNiusModularity項目源碼學習(8:數據庫操作)

ShenNiusModularity項目使用SqlSugar操作數據庫。在ShenNius.Repository項目中定義了ServiceCollectionExtensions.AddSqlsugarSetup函數注冊SqlSugar服務&#xff0c;并在ShenNius.Admin.API項目的ShenniusAdminApiModule.OnConfigureServices函數中調用&#xff0c;SqlSugar所…

MATLAB圖像處理:圖像特征概念及提取方法HOG、SIFT

圖像特征是計算機視覺中用于描述圖像內容的關鍵信息&#xff0c;其提取質量直接影響后續的目標檢測、分類和匹配等任務性能。本文將系統解析 全局與局部特征的核心概念&#xff0c;深入講解 HOG&#xff08;方向梯度直方圖&#xff09;與SIFT&#xff08;尺度不變特征變換&…

java枚舉類型的查找

AllArgsConstructor Getter public enum FileFilterRangeEnum {FILE_NAME("文件名稱","fileName"),FILE_CONTENT("文件內容","fileContent");private final String text;private final String value;// 根據傳入的字符串值查找對應的枚…

小白win10安裝并配置yt-dlp

需要yt-dlp和ffmpeg 注意存放路徑最好都是全英文 win10安裝并配置yt-dlp 一、下載1.下載yt-dlp2. fffmpeg下載 二、配置環境三、cmd操作四、yt-dlp下視頻操作 一、下載 1.下載yt-dlp yt-dlp地址 找到win的壓縮包點下載&#xff0c;并解壓 2. fffmpeg下載 ffmpeg官方下載 …

【技術解析】MultiPatchFormer:多尺度時間序列預測的全新突破

今天給我大家帶來一篇最新的時間序列預測論文——MultiPatchFormer。這篇論文提出了一種基于Transformer的創新模型&#xff0c;旨在解決時間序列預測中的關鍵挑戰&#xff0c;特別是在處理多尺度時間依賴性和復雜通道間相關性時的難題。MultiPatchFormer通過引入一維卷積技術&…

145,【5】 buuctf web [GWCTF 2019]mypassword

進入靶場 修改了url后才到了注冊頁面 注測后再登錄 查看源碼 都點進去看看 有個反饋頁面 再查看源碼 又有收獲 // 檢查$feedback是否為數組 if (is_array($feedback)) {// 如果是數組&#xff0c;彈出提示框提示反饋不合法echo "<script>alert(反饋不合法);<…

CTF-WEB: 利用iframe標簽利用xss,waf過濾后再轉換漏洞-- N1ctf Junior display

核心邏輯 // 獲取 URL 查詢參數的值 function getQueryParam(param) { // 使用 URLSearchParams 從 URL 查詢字符串中提取參數 const urlParams new URLSearchParams(window.location.search); // 返回查詢參數的值 return urlParams.get(param); } // 使用 DOMPuri…

晶閘管主要參數分析與損耗計算

1. 主要參數 斷態正向可重復峰值電壓 :是晶閘管在不損壞的情況下能夠承受的正向最大阻斷電壓。斷態正向不可重復峰值電壓 :是晶閘管只有一次可以超過的正向最大阻斷電壓,一旦晶閘管超過此值就會損壞,一般情況下 反向可重復峰值電壓 :是指晶閘管在不損壞的情況下能夠承受的…

el-select 設置寬度 沒效果

想實現下面的效果&#xff0c;一行兩個&#xff0c;充滿el-col12 然后設置了 width100%,當時一直沒有效果 解決原因&#xff1a; el-form 添加了 inline 所以刪除inline屬性 即可

Python創建FastApi項目模板

1. 項目結構規范 myproject/ ├── app/ │ ├── core/ # 核心配置 │ │ ├── config.py # 環境配置 │ │ └── security.py # 安全配置 │ ├── routers/ # 路由模塊 │ │ └── users.py # 用戶路由 │ ├…

面試完整回答:SQL 分頁查詢中 limit 500000,10和 limit 10 速度一樣快嗎?

首先&#xff1a;在 SQL 分頁查詢中&#xff0c;LIMIT 500000, 10 和 LIMIT 10 的速度不會一樣快&#xff0c;以下是原因和優化建議&#xff1a; 性能差異的原因 LIMIT 10&#xff1a; 只需要掃描前 10 條記錄&#xff0c;然后返回結果。 性能非常高&#xff0c;因為數據庫只…

一款利器提升 StarRocks 表結構設計效率

CloudDM 個人版是一款數據庫數據管理客戶端工具&#xff0c;支持 StarRocks 可視化建表&#xff0c;創建表時可選擇分桶、配置數據模型。目前版本持續更新&#xff0c;在修改 StarRocks 表結構方面進一步優化&#xff0c;大幅提升 StarRocks 表結構設計效率。當前 CloudDM 個人…