我们为什么要这么做

泰山老父官网,我们过去六个月一直在构建Codolex AI,这是一款完全用Delphi编写的全栈网页应用。一路上,我们不断遇到没有好Delphi解决方案的问题。所以我们自己构建了。

这些库最初是内部工具。他们解决了我们在生产型AI平台发布时遇到的具体问题。但它们本身确实非常有用,我们相信Delphi社区理应获得它们的访问权限。

以下是全部五种内容,现已在GitHub上公开发布。

JavaScript4D:一个完整的JavaScript解释器

大型语言模型可以写Delphi,但他们对JavaScript的掌握远比Delphi更好。当我们需要在Delphi应用内运行AI生成的代码时,要求模型生成JavaScript并在本地执行,比实时生成Delphi更可靠。我们只需要一个不需要Node.js或浏览器的解释器。

JavaScript4D 是一个完整的 ECMAScript 5.1 解释器,采用纯 Delphi 编写。它遵循经典编译器架构(lexer、解析器、AST、树步解释器),支持闭包、高阶函数、try/catch/finally,以及涵盖数组、字符串、数学、JSON和对象的59种内置方法。

Engine := TJSEngine.Create;
try
  Engine.Execute('var data = [1, 2, 3, 4, 5];');
  Result := Engine.Evaluate(
    'data.map(function(n) { return n * 2; })' +
    '    .filter(function(n) { return n > 4; })' +
    '    .reduce(function(a, b) { return a + b; }, 0)'
  );
  // Result: 24
finally
  Engine.Free;
end;

超过11,000行代码。没有DLL,没有外部依赖。只要把这些单元添加到你的项目中即可。

GitHub:github.com/GDKsoftware/Javascript4D

OfficeXML4D:读写Word和Excel文件

用户上传并提交聊天内容,平台需要读取并生成这些内容。我们不想依赖 Microsoft Office 安装在我们的 Linux 服务器上。.docx.xlsx

OfficeXML4D 仅使用 Delphi 内置和 XML 单元来读写 Office Open XML 文档。带有段落、表格、页眉、超链接和格式的Word文档。包含多个表格、单元格样式、公式、合并单元格和共享字符串优化的Excel工作簿。System.Zip

Doc := TWordDocumentFactory.CreateDocument;

Para := Doc.AddParagraph;
Run := Para.AddRun('Quarterly Report');
Run.Bold := True;
Run.FontSize := 32; // half-points, so 32 = 16pt

Doc.SaveToFile('report.docx');

135个单元测试。基于接口的API用于干净的依赖注入。

GitHub:github.com/GDKsoftware/OfficeXML4D

Microsoft365-4D:图 API 集成

Codolex AI 连接 Microsoft 365,用于阅读邮件、管理日历、搜索 SharePoint 以及联系人管理。我们需要一个能正确处理 PKCE 的 OAuth2 并提供打字回复的 Delphi 客户端。

Microsoft365-4D 涵盖邮件(搜索、阅读、写作、发送、附件、文件夹)、日历(事件、可用性)、联系人(CRUD)和 SharePoint(网站、文件、搜索)。它包含完整的OAuth2 PKCE实现,支持线程安全令牌管理。

Http := TGraphHttpClient.Create(AccessToken);
Mail := TMailClient.Create(Http);

Result := Mail.SearchMessages('from:client@example.com', '', 20, 0);
for Msg in Result.Messages do
  WriteLn(Msg.Subject, ' - ', Msg.From.Address);

所有客户端共享一个 HTTP 连接。仅依赖于 。System.Net.HttpClient

GitHub:github.com/GDKsoftware/Microsoft365-4D

Toon4D:减少在LLM代币上的花费

你发送给LLM的每个代币都需要钱,还会增加延迟。当你传递客户记录、产品目录或API响应等结构化数据时,标准JSON会浪费重复的键和标点符号。

Toon4D 将 JSON 转换为 TOON(令牌导向对象符号表示法),这是一种紧凑的格式,LLM 同样易于读取。具有相同键的对象数组会变成 CSV 风格的表。重复的结构会被折叠。结果是:代币数量减少了30%到60%。

// JSON input (37 tokens):
{"employees":[
  {"id":1,"name":"Alice","role":"admin"},
  {"id":2,"name":"Bob","role":"user"}
]}

// TOON output (15 tokens):
employees[2]{id,name,role}:
1,Alice,admin
2,Bob,user
Options := [TToonOption.PreferTabular];
ToonOutput := TToon.JsonToToon(JsonString, Options);

340+ 符合 TOON v2.0 规范的测试。

GitHub:github.com/GDKsoftware/Toon4D

Delphi MCP 服务器:将 AI 助手连接到 Delphi

模型上下文协议让像Claude这样的AI助手能够与外部工具互动。我们今年早些时候发布的MCP服务器实现提供了协议框架。它使用 RTTI 进行自动工具发现,并支持 Windows 和 Linux。

GitHub:github.com/GDKsoftware/delphi-mcp-server

它们的共同点

这五个库共享一些设计原则:

  • 完全没有外部依赖。他们只使用Delphi RTL单元。没有第三方包需要管理,也没有DLL需要部署。
  • 基于接口的API。干净的合同让测试和模拟变得简单明了。
  • 在生产环境中测试过。这些不是周末的实验。它们运行在Codolex AI,每天处理真实工作量。
  • MIT认证。随你喜欢用。商业、开源,任何东西。
  • Delphi 12 雅典或更高版本(OfficeXML4D 运行于 Delphi 10.3 里约)。

更宏观的局面

我们打造Codolex AI,是为了证明Delphi是一个严肃的现代应用平台:网页应用、AI集成、云部署,所有这些。这些库是实现这一目标的基石。

开放源代码是我们回馈过去三十年来给予我们很多帮助的社区的方式。如果他们帮你节省时间或解决了你面临的问题,那对所有人来说都是胜利。

我们很想听听你用它们打造的作品。

所有库均可在GDK Software的GitHub上获取。欢迎访问泰山老父官网提出问题、问题或拉取请求。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐