多年前,一位喜爱的前同事离职时写了一封独特的告别邮件,以 Jenkins 通知邮件形式表示 Maven 构建失败,因他离职导致。此经历让作者想到如果能询问,应用会如何描述自身,如对运行操作系统的感受、硬盘空间需求等。于是借助 LangChain4j 库和 GPT4o 聊天模型在Spring Boot 应用上进行实验,创建带有管理端点的应用,可与个性化自身的 AI 助手通信,相关代码可在GitHub上找到。
知识部分:通常将助手个性化为应用时,它不了解技术细节。Spring Boot 应用可利用现成的actuators,可轻松为助手定义工具,通过工具获取 actuator 结果可与助手聊天获取应用当前状态。需在 application.properties 文件中启用health、info、metrics actuator,还创建了用于收集各 actuator 信息的收集器类,如HealthCollector
、InfoCollector
、MetricsCollector
。创建工具的一种方式是为 LangChain4j 中的助手配置ToolExecutors
。
助手部分:简单用例中助手接口可如ApplicationAssistant
,需配置ChatLanguageModel
(此处为 GPT4-o 模型),重要部分是助手配置,定义系统消息个性化为应用,配置创建的ToolExecutors
并添加简单内存ChatMemory
使其成为真实对话。
端点部分:定义对话 actuator 端点DialogueManagementEndpoint
用于测试助手,还配置了两个额外的HealthIndicators
(一个始终健康的虚拟用户服务和一个始终服务异常的虚拟订单服务),以及GreetingController
用于查看助手根据 metrics 工具能否告知接收请求情况。
工作原理部分:尝试通过 POST 消息到应用,助手能根据配置的工具获取和处理相关信息,如询问自身对当前 OS 的感受、健康状况、需求等,还能通过调用GreetingController
后询问请求情况。
结论部分:希望此实验能带来启发,虽此应用商业价值小,但可进一步思考,如创建定期检查 actuator 并根据重要情况反应的计划任务,使 AI 成为更主动的助手,让应用更智能和自主。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。