AI摘要

RAD Studio 13.0引入了SmartCore AI组件包,旨在帮助客户将AI功能添加到现有应用程序中或构建新的AI为中心的应用程序。该组件包模块化,简化了从Delphi和C++Builder应用程序调用AI提供商的过程,并可通过重写虚拟方法或创建新的驱动程序组件来扩展驱动程序。它包括新的AI连接组件、AI请求组件,以及针对不同数据类型的组件,可以直接与UI控件绑定以显示结果。用户可以利用这些组件集成AI到应用程序中,解决多种AI用例,如内容创建、本地化支持、智能见解和数据分析等。安装后,用户可以通过连接向导编辑和测试参数,或手动配置参数。此外,还提供了多个演示指南,帮助用户快速入门和理解如何使用SmartCore AI组件包。

SmartCore AI 组件包

从 13.0 版开始,RAD Studio 继续在 IDE 中提供 AI 驱动的编码帮助,引入一组新的核心 AI 组件,旨在帮助客户将 AI 功能添加到其现有应用程序中,或使用 Delphi 或 C++Builder 构建全新的以 AI 为中心的应用程序。

这是一个模块化组件套件,用于简化从 Delphi 和 C++Builder 应用程序调用 AI 提供商(OpenAI、Claude、Gemini、Ollama)。它将运行时单元(组件、驱动程序、类型、LiveBindings)与设计时单元(属性编辑器、连接向导、帮助程序)分开。可以通过重写虚拟方法或创建新的驱动程序组件来扩展驱动程序。

注意: 要使用 SmartCore AI 组件包,特定 AI 服务(可通过免费或付费帐户获得)或引擎的本地安装(如果是 Ollama),需要API 密钥。

一、概述

SmartCore AI 组件功能是未来的构建块和基础。这是一个核心架构,我们的客户和第三方供应商可以在其基础上构建和扩展,以与其他 AI 引擎和 UI 控件集成。

此套餐包括:

  • 新的 AI 连接组件(其角色类似于 FireDAC 中的数据库连接)。这是一个与 AI 引擎无关的组件,它使用特定的驱动程序通过 REST与不同的 AI 引擎(包括 OpenAI、Claude、Gemini 和 Ollama)进行通信。SmartCore AI引擎提供了添加额外驱动程序的能力,使 AI 提供商能够随着市场的发展扩展您的项目功能。配置通过易于使用的 AI 连接向导进行管理。
  • 一组针对不同数据类型(如文本、图像、结构化数据)的 AI 请求组件,这些组件可以与提示相关联,并且可以直接与 UI 控件绑定以显示结果。

借助 SmartCore AI 组件包,用户可以将 AI 集成到现有和新应用程序中,解决许多流行的 AI 用例,例如为生成图像和其他媒体等产品内内容创建提供支持,为动态翻译添加产品内本地化支持,提供应用内智能见解和数据分析的个性化建议,或构建应用内聊天机器人以为现有应用程序添加交互性。

二、安装和入门

从 GetIt 下载 SmartCore AI 组件包以开始使用 AI 连接组件。

image.png

RAD Studio 13.0 演示存储库中还提供了一组相关的演示。如果您已将演示与产品一起安装,则可以通过 git 获取更新。

安装软件包后,请按照以下步骤开始:

1、删除 TAIConnection、分配驱动程序和分配给请求组件。
2、使用连接向导编辑和测试参数(双击 TAIConnection)。
3、或者手动配置参数(API 密钥、模型、BaseURL 等)。

以下是智能 AI 组件包安装的组件列表:

image.png

三、组件和驱动程序快速参考

以下是组件和驱动程序的列表。

  • TAIConnection:拥有并连接混凝土 TAIDriver。
  • 驱动因素: TAIOpenAIDriverTAIClaudeDriverTAIGeminiDriverTAIOllamaDriver
  • 参数:每个驱动程序的强类型 (, , ,TAIOpenAIParamsTAIClaudeParamsTAIGeminiParamsTAIOllamaParams)
  • Endpoint_*:驱动程序发布具有正确默认值的提供程序特定终结点 (基于提供程序 API 引用) 。
  • 请求组件: TAIChatRequestTAIImageRequestTAIJSONRequestTAIStreamRequest

image.png

四、注意事项和最佳实践

以下部分列出了最佳实践和注意事项。

  • 为了简单起见,在设计时使用连接向导。
  • 驱动程序引发 、 、 错误处理异常。EAIExceptionEAIJSONExceptionEAIXxxxException
  • 驱动程序也可以在没有连接的情况下进行作,但组件依赖于 。TAIXxxxRequestTAIConnection
  • 可以在该级别注入 Http 定制器,以防您需要更多自定义的 HTTP 客户端行为。TAIConnection
  • 驱动程序也可以在没有连接的情况下进行作,但 AIRequest 组件依赖于 AIConnection。
  • 默认情况下,Synchronize events 属性是,但如果有许多异步的正在进行的请求,请在销毁组件之前使用并等待并检查,否则可能会出现意外异常或错误。TrueDriver.CancelALLDriver.IsRunning

五、演示指南

请记住,要运行演示,您需要拥有特定 AI 服务的 API 密钥(可通过免费或付费帐户获得),Ollama 除外。

控制台:

SmartCoreAI_Console_Demo
显示完全编程连接的无头示例:创建 + 驱动程序 + 在代码中,并将响应打印到控制台(无表单/IDE 设计时)。TAIConnectionTAIChatRequest

FMX:

Chat_OpenAI_FMX
FireMonkey 聊天 UI 与 + + .演示了 FMX 中的设计时布线和处理 OnResponse 和 OnError。
TAIConnectionTAIOpenAIDriverTAIChatRequest

Image_Gemini_FMX
使用 + 生成 FMX 图像。演示在 FMX 控件中生成请求 DTO 和呈现生成的图像。TAIGeminiDriverTAIImageRequest

Image_OpenAI_FMX
使用 + 生成 FMX 图像。与 Gemini FMX 演示类似,但适用于 OpenAI。TAIOpenAIDriverTAIImageRequest

JSON_OpenAI_FMX
FMX 示例,用于通过(例如,审核)调用提供商 JSON 端点,演示了设置端点/正文并显示原始 JSON 结果,以及在数据集 (TFDMemTable) 中填充数据。TAIJSONRequest

VCL:

Chat_OpenAI_VCL
VCL 与 + + 聊天。简单的表单(编辑 + 备忘录 + 按钮)用于发送提示和显示响应。
TAIConnectionTAIOpenAIDriverTAIChatRequest

Image_Gemini_VCL
使用 + 生成 VCL 图像。将生成的图像加载到 TImage 控件中。TAIGeminiDriverTAIImageRequest

Image_OpenAI_VCL
使用 + 生成 VCL 图像。镜像 OpenAI 图像 API 的 Gemini VCL 演示。TAIOpenAIDriverTAIImageRequest

image.png

JSON_Gemini_VCL
通过(例如,审核)调用提供者(Gemini)JSON 端点的 VCL 示例,演示了设置端点/正文并显示原始 JSON 结果以及在数据集 (TFDMemTable) 中填充数据。TAIJSONRequest

JSON_OpenAI_VCL
通过(例如,审核)调用提供者(Gemini)JSON 端点的 VCL 示例,演示了设置端点/正文并显示原始 JSON 结果以及在数据集 (TFDMemTable) 中填充数据。TAIJSONRequest

image.png

SmartCoreAI_LiveBindings_Demo
VCL LiveBindings 展示:使用 SmartCoreAI.Design.LiveBindings 适配器将聊天组件输出绑定到可视化控件。

Stream_OpenAI_VCL
OpenAI 的 VCL 流媒体演示(例如,音频转录、语音识别、图像理解、音频理解等)。通过 OnPartial、OnSuccess 和 OnError 事件逐步使用和更新 UI。TAIStreamRequest

六、代码结构

这是对 SmartCore AI 组件包中包含的软件包和单元的更多技术参考。


SmartCoreAI:包含组件和驱动程序的核心运行时包。
dclSmartCoreAI:设计时注册(属性编辑器、向导)。
SmartCoreAIVCL:VCL Live 绑定运行时包。
dclSmartCoreAI:VCL Live 绑定设计时包。
SmartCoreAIFMX:FMX Live 绑定运行时包。
dclSmartCoreAIFMX:FMX Live 绑定设计时包。

单位
SmartCoreAI.Comp.Connection.pas: ,基类。TAIConnectionTAIRequest
SmartCoreAI.Comp.Chat.pas:带有事件和聊天方法。TAIChatRequest
SmartCoreAI.Comp.Image.pas:(图像生成)。TAIImageRequest
SmartCoreAI.Comp.JSON.pas:(通用 JSON 终结点)。TAIJSONRequest
SmartCoreAI.Comp.Stream.pas:(流端点)。TAIStreamRequest
SmartCoreAI.Types.pas:核心 dData 类型,包括枚举、回调接口、基类。IAIDriverTAIDriver
SmartCoreAI.Serialization.pas:JSON 序列化器和帮助程序。
SmartCoreAI.Driver.Registry.pas:注册或查找驱动程序。TAIDriverRegistry
SmartCoreAI.Driver.OpenAI.pas: 和 .TAIOpenAIDriverTAIOpenAIParams
SmartCoreAI.Driver.Claude.pas: 和 .TAIClaudeDriverTAIClaudeParams
SmartCoreAI.Driver.Gemini.pas: 和 .TAIGeminiDriverTAIGeminiParams
SmartCoreAI.Driver.Ollama.pas:和 .TAIOllamaDriverTAIOllamaParams
SmartCoreAI.Consts.pas:资源字符串和常量。
SmartCoreAI.Design.Registration.pas:在设计时注册编辑器和向导。
SmartCoreAI.Design.PropertyEditors.pas:参数和模型下拉列表的属性编辑器。
SmartCoreAI.Design.ConnectionWizard.pas:(启动向导)。TAIConnectionEditor
SmartCoreAI.Design.ConnectionWizardForm.pas/.dfm: – 选择驱动程序,编辑参数。TfrmAIConnectionWizard
SmartCoreAI.Design.LiveBindings.pas:用于聊天和图像的 LiveBindings 适配器。

扫码加入猫哥的AI群
最后修改:2025 年 09 月 30 日
点赞的人是最酷的