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 连接组件。
RAD Studio 13.0 演示存储库中还提供了一组相关的演示。如果您已将演示与产品一起安装,则可以通过 git 获取更新。
安装软件包后,请按照以下步骤开始:
1、删除 TAIConnection、分配驱动程序和分配给请求组件。
2、使用连接向导编辑和测试参数(双击 TAIConnection)。
3、或者手动配置参数(API 密钥、模型、BaseURL 等)。
以下是智能 AI 组件包安装的组件列表:
三、组件和驱动程序快速参考
以下是组件和驱动程序的列表。
- TAIConnection:拥有并连接混凝土 TAIDriver。
- 驱动因素: TAIOpenAIDriverTAIClaudeDriverTAIGeminiDriverTAIOllamaDriver
- 参数:每个驱动程序的强类型 (, , ,TAIOpenAIParamsTAIClaudeParamsTAIGeminiParamsTAIOllamaParams)
- Endpoint_*:驱动程序发布具有正确默认值的提供程序特定终结点 (基于提供程序 API 引用) 。
- 请求组件: TAIChatRequestTAIImageRequestTAIJSONRequestTAIStreamRequest
四、注意事项和最佳实践
以下部分列出了最佳实践和注意事项。
- 为了简单起见,在设计时使用连接向导。
- 驱动程序引发 、 、 错误处理异常。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
JSON_Gemini_VCL
通过(例如,审核)调用提供者(Gemini)JSON 端点的 VCL 示例,演示了设置端点/正文并显示原始 JSON 结果以及在数据集 (TFDMemTable) 中填充数据。TAIJSONRequest
JSON_OpenAI_VCL
通过(例如,审核)调用提供者(Gemini)JSON 端点的 VCL 示例,演示了设置端点/正文并显示原始 JSON 结果以及在数据集 (TFDMemTable) 中填充数据。TAIJSONRequest
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 适配器。