第12章. 人工智能Java开发的高级 主题
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
正如前几章所述,借助LangChain4j和LangGraph4j等工具,Java人工智能应用开发领域已发生显著变革。至此,您已成功构建智能聊天机器人、探索向量存储库、编排人工智能工作流,甚至将图像识别功能集成到应用程序中。但当我们迈向生产级、安全且具有可扩展性的人工智能系统时,您需要进一步探索若干高级主题。
本章将提供关键工具,助您将AI应用从功能原型提升为稳健的企业级解决方案。 后续内容将深入探讨三大核心能力:
- 流处理
-
应用程序在模型生成响应时即可逐步接收结果,无需等待模型生成完整响应。
- 防护栏
-
您可通过这些防护机制验证LLM的输入/输出是否符合需求。
- 模型上下文协议
-
该开放标准定义了应用程序与语言模型的交互方式——特别是围绕上下文管理、工具和内存的交互机制。
每项特性都将强化质量、弹性与可维护性——现代AI应用的核心支柱。 让我们通过LangChain4j掌握这些技术,为您的Java AI解决方案打造未来保障。
流式处理
LLMs( )以增量方式(逐个令牌)生成文本;因此,多数模型供应商支持实时流式响应,而非强制用户等待完整生成。
这能创造更流畅的体验,用户几乎可以即时开始阅读输出内容,而非面临不可预测的延迟。 这是实现聊天机器人并为用户提供快速反馈的便捷方式。
让我们使用 LangChain4j 低级 API 实现响应流式传输的第一个示例。
基于低级API的流式传输
您首先会注意到 的变更点在于:使用dev.langchain4j.model.chat.StreamingChatModel 接口替代了ChatModel 接口。
创建 StreamingChatModel实例时,需添加模型依赖项并使用具体构建器,其代码与ChatModel 实例类似。例如针对OpenAI,我们使用dev.langchain4j.model.openai.OpenAiStreamingChatModel 类:
StreamingChatModelmodel=OpenAiStreamingChatModel.builder().apiKey("demo").baseUrl("http://langchain4j.dev/demo/openai/v1").modelName("gpt-4o-mini").build();
该接口同样包含chat 方法,但在此情况下,它额外包含一个处理LLM流式响应的处理器参数。
该处理器遵循dev.langchain4j.model.chat.response.StreamingChatResponseHandler 接口 ,包含三个在处理流程不同阶段调用的方法。
您需要为所有这些方法提供实现。
具体方法如下:
onPartialResponse-
每次模型生成部分响应时调用(通常为单个令牌)
onCompleteResponse ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access