[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-langchain4j--langchain4j":3,"tool-langchain4j--langchain4j":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":67,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":67,"owner_website":79,"owner_url":80,"languages":81,"stars":101,"forks":102,"last_commit_at":103,"license":104,"difficulty_score":23,"env_os":77,"env_gpu":105,"env_ram":105,"env_deps":106,"category_tags":112,"github_topics":113,"view_count":134,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":135,"updated_at":136,"faqs":137,"releases":166},2815,"langchain4j\u002Flangchain4j","langchain4j","LangChain4j is an open-source Java library that simplifies the integration of LLMs into Java applications through a unified API, providing access to popular LLMs and vector databases. It makes implementing RAG, tool calling (including support for MCP), and agents easy. LangChain4j integrates seamlessly with various enterprise Java frameworks.","LangChain4j 是一款专为 Java 开发者打造的开源库，旨在简化大语言模型（LLM）在 Java 应用中的集成过程。面对市场上众多 LLM 提供商和向量数据库各自为政的专有接口，LangChain4j 通过提供统一的 API 屏蔽了底层差异，让开发者无需重复学习不同平台的细节，即可轻松切换或使用超过 20 种主流大模型及 30 多种向量存储方案。\n\n它主要解决了 Java 生态在大模型应用开发中缺乏成熟框架的痛点，将社区验证过的最佳实践转化为开箱即用的代码工具。无论是底层的提示词模板、聊天记忆管理、函数调用（含 MCP 支持），还是高层的检索增强生成（RAG）和智能体（Agents）构建，LangChain4j 都提供了丰富的实现选项。此外，它能无缝对接各类企业级 Java 框架，显著降低了开发门槛。\n\n这款工具非常适合希望利用大模型能力构建智能应用的 Java 工程师、架构师及技术研究人员。如果你正在寻找一个稳定、灵活且紧跟技术前沿的方案来快速落地聊天机器人、知识库问答或自动化代理系统，LangChain4j 能让你专注于业务逻辑创新，而无需在繁琐的基础设施适配上耗费精力。","# LangChain for Java: Supercharge your Java application with the power of LLMs\n\n[![Build Status](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Flangchain4j\u002Flangchain4j\u002Fmain.yaml?branch=main&style=for-the-badge&label=CI%20BUILD&logo=github)](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Factions\u002Fworkflows\u002Fmain.yaml)\n[![Nightly Build](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Flangchain4j\u002Flangchain4j\u002Fnightly_jdk17.yaml?branch=main&style=for-the-badge&label=NIGHTLY%20BUILD&logo=github)](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Factions\u002Fworkflows\u002Fnightly_jdk17.yaml)\n[![CODACY](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCodacy-Dashboard-blue?style=for-the-badge&logo=codacy)](https:\u002F\u002Fapp.codacy.com\u002Fgh\u002Flangchain4j\u002Flangchain4j\u002Fdashboard)\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1156626270772269217?logo=discord&style=for-the-badge)](https:\u002F\u002Fdiscord.gg\u002FJzTFvyjG6R)\n[![BlueSky](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F@langchain4j-follow-blue?logo=bluesky&style=for-the-badge)](https:\u002F\u002Fbsky.app\u002Fprofile\u002Flangchain4j.dev)\n[![X](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F@langchain4j-follow-blue?logo=x&style=for-the-badge)](https:\u002F\u002Fx.com\u002Flangchain4j)\n[![Maven Version](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fdev.langchain4j\u002Flangchain4j?logo=apachemaven&style=for-the-badge)](https:\u002F\u002Fsearch.maven.org\u002F#search|gav|1|g:\"dev.langchain4j\"%20AND%20a:\"langchain4j\")\n\n\n## Introduction\n\nWelcome!\n\nThe goal of LangChain4j is to simplify integrating LLMs into Java applications.\n\nHere's how:\n1. **Unified APIs:**\n   LLM providers (like OpenAI or Google Vertex AI) and embedding (vector) stores (such as Pinecone or Milvus)\n   use proprietary APIs. LangChain4j offers a unified API to avoid the need for learning and implementing specific APIs for each of them.\n   To experiment with different LLMs or embedding stores, you can easily switch between them without the need to rewrite your code.\n   LangChain4j currently supports [20+ popular LLM providers](https:\u002F\u002Fdocs.langchain4j.dev\u002Fintegrations\u002Flanguage-models\u002F)\n   and [30+ embedding stores](https:\u002F\u002Fdocs.langchain4j.dev\u002Fintegrations\u002Fembedding-stores\u002F).\n2. **Comprehensive Toolbox:**\n   Since early 2023, the community has been building numerous LLM-powered applications,\n   identifying common abstractions, patterns, and techniques. LangChain4j has refined these into practical code.\n   Our toolbox includes tools ranging from low-level prompt templating, chat memory management, and function calling\n   to high-level patterns like Agents and RAG.\n   For each abstraction, we provide an interface along with multiple ready-to-use implementations based on common techniques.\n   Whether you're building a chatbot or developing a RAG with a complete pipeline from data ingestion to retrieval,\n   LangChain4j offers a wide variety of options.\n3. **Numerous Examples:**\n   These [examples](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples) showcase how to begin creating various LLM-powered applications,\n   providing inspiration and enabling you to start building quickly.\n\nLangChain4j began development in early 2023 amid the ChatGPT hype.\nWe noticed a lack of Java counterparts to the numerous Python and JavaScript LLM libraries and frameworks,\nand we had to fix that!\nAlthough \"LangChain\" is in our name, the project is a fusion of ideas and concepts from LangChain, Haystack,\nLlamaIndex, and the broader community, spiced up with a touch of our own innovation.\n\nWe actively monitor community developments, aiming to quickly incorporate new techniques and integrations,\nensuring you stay up-to-date.\nThe library is under active development. While some features are still being worked on,\nthe core functionality is in place, allowing you to start building LLM-powered apps now!\n\n\n## Documentation\nDocumentation can be found [here](https:\u002F\u002Fdocs.langchain4j.dev).\n\nThe documentation chatbot (experimental) can be found [here](https:\u002F\u002Fchat.langchain4j.dev\u002F).\n\n\n## Getting Started\nGetting started guide can be found [here](https:\u002F\u002Fdocs.langchain4j.dev\u002Fget-started).\n\n\n## Code Examples\nPlease see examples of how LangChain4j can be used in [langchain4j-examples](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples) repo:\n- [Examples in plain Java](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples\u002Ftree\u002Fmain\u002Fother-examples\u002Fsrc\u002Fmain\u002Fjava)\n- [Examples with Quarkus](https:\u002F\u002Fgithub.com\u002Fquarkiverse\u002Fquarkus-langchain4j\u002Ftree\u002Fmain\u002Fsamples) (uses [quarkus-langchain4j](https:\u002F\u002Fgithub.com\u002Fquarkiverse\u002Fquarkus-langchain4j) dependency)\n- [Example with Spring Boot](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples\u002Ftree\u002Fmain\u002Fspring-boot-example\u002Fsrc\u002Fmain\u002Fjava\u002Fdev\u002Flangchain4j\u002Fexample)\n- [Examples with Helidon](https:\u002F\u002Fgithub.com\u002Fhelidon-io\u002Fhelidon-examples\u002Ftree\u002Fhelidon-4.x\u002Fexamples\u002Fintegrations\u002Flangchain4j) (uses [io.helidon.integrations.langchain4j](https:\u002F\u002Fmvnrepository.com\u002Fartifact\u002Fio.helidon.integrations.langchain4j) dependency)\n- [Examples with Micronaut](https:\u002F\u002Fgithub.com\u002Fmicronaut-projects\u002Fmicronaut-langchain4j\u002Ftree\u002F0.3.x\u002Fdoc-examples\u002Fexample-openai-java) (uses [micronaut-langchain4j](https:\u002F\u002Fmicronaut-projects.github.io\u002Fmicronaut-langchain4j\u002Flatest\u002Fguide\u002F) dependency)\n\n## Useful Materials\nUseful materials can be found [here](https:\u002F\u002Fdocs.langchain4j.dev\u002Fuseful-materials).\n\n\n## Get Help\nPlease use [Discord](https:\u002F\u002Fdiscord.gg\u002FJzTFvyjG6R) or [GitHub discussions](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fdiscussions)\nto get help.\n\n\n## Request Features\nPlease let us know what features you need by [opening an issue](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002Fnew\u002Fchoose).\n\n\n## Contribute\nContribution guidelines can be found [here](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fblob\u002Fmain\u002FCONTRIBUTING.md).\n","# LangChain for Java：用大语言模型的力量为您的 Java 应用程序赋能\n\n[![构建状态](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Flangchain4j\u002Flangchain4j\u002Fmain.yaml?branch=main&style=for-the-badge&label=CI%20BUILD&logo=github)](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Factions\u002Fworkflows\u002Fmain.yaml)\n[![夜间构建](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Flangchain4j\u002Flangchain4j\u002Fnightly_jdk17.yaml?branch=main&style=for-the-badge&label=NIGHTLY%20BUILD&logo=github)](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Factions\u002Fworkflows\u002Fnightly_jdk17.yaml)\n[![CODACY](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCodacy-Dashboard-blue?style=for-the-badge&logo=codacy)](https:\u002F\u002Fapp.codacy.com\u002Fgh\u002Flangchain4j\u002Flangchain4j\u002Fdashboard)\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1156626270772269217?logo=discord&style=for-the-badge)](https:\u002F\u002Fdiscord.gg\u002FJzTFvyjG6R)\n[![BlueSky](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F@langchain4j-follow-blue?logo=bluesky&style=for-the-badge)](https:\u002F\u002Fbsky.app\u002Fprofile\u002Flangchain4j.dev)\n[![X](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F@langchain4j-follow-blue?logo=x&style=for-the-badge)](https:\u002F\u002Fx.com\u002Flangchain4j)\n[![Maven 版本](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fdev.langchain4j\u002Flangchain4j?logo=apachemaven&style=for-the-badge)](https:\u002F\u002Fsearch.maven.org\u002F#search|gav|1|g:\"dev.langchain4j\"%20AND%20a:\"langchain4j\")\n\n\n## 简介\n\n欢迎！\n\nLangChain4j 的目标是简化将大语言模型集成到 Java 应用程序中的过程。\n\n具体做法如下：\n1. **统一的 API：**\n   大语言模型提供商（如 OpenAI 或 Google Vertex AI）以及嵌入（向量）存储系统（如 Pinecone 或 Milvus）都使用各自的专有 API。LangChain4j 提供了一个统一的 API，避免了您需要学习和实现每个平台特定 API 的麻烦。您可以轻松地在不同的大语言模型或嵌入存储之间切换，而无需重写代码。目前，LangChain4j 支持 [20 多家流行的大语言模型提供商](https:\u002F\u002Fdocs.langchain4j.dev\u002Fintegrations\u002Flanguage-models\u002F) 和 [30 多家嵌入存储](https:\u002F\u002Fdocs.langchain4j.dev\u002Fintegrations\u002Fembedding-stores\u002F)。\n2. **全面的工具箱：**\n   自 2023 年初以来，社区已经构建了许多基于大语言模型的应用程序，并从中提炼出常见的抽象概念、模式和技术。LangChain4j 将这些内容精炼成实用的代码库。我们的工具箱涵盖了从底层的提示模板化、聊天记忆管理、函数调用，到高层的 Agent 和 RAG 等多种模式。对于每一种抽象概念，我们不仅提供接口，还提供了基于常见技术的多种开箱即用的实现。无论您是在构建聊天机器人，还是开发包含数据摄取到检索完整流程的 RAG 系统，LangChain4j 都能为您提供丰富的选择。\n3. **丰富的示例：**\n   这些 [示例](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples) 展示了如何开始创建各种基于大语言模型的应用程序，既能为您带来灵感，也能让您快速上手。\n\nLangChain4j 项目始于 2023 年初，正值 ChatGPT 热潮之际。我们注意到，与数量众多的 Python 和 JavaScript 大语言模型库和框架相比，Java 生态中缺乏类似的工具，因此我们决定填补这一空白！尽管项目名称中带有“LangChain”，但我们的项目实际上是融合了 LangChain、Haystack、LlamaIndex 以及更广泛社区的思想和理念，并融入了我们自己的创新点。\n\n我们积极关注社区的发展动态，力求快速引入新的技术和集成方案，确保您始终掌握最新信息。该库目前仍在积极开发中。虽然部分功能仍在完善中，但核心功能已经就绪，您可以立即开始构建基于大语言模型的应用程序！\n\n\n## 文档\n文档可以在这里找到 [https:\u002F\u002Fdocs.langchain4j.dev](https:\u002F\u002Fdocs.langchain4j.dev)。\n\n实验性的文档聊天机器人可以在这里找到 [https:\u002F\u002Fchat.langchain4j.dev\u002F](https:\u002F\u002Fchat.langchain4j.dev\u002F).\n\n\n## 入门指南\n入门指南可以在这里找到 [https:\u002F\u002Fdocs.langchain4j.dev\u002Fget-started](https:\u002F\u002Fdocs.langchain4j.dev\u002Fget-started)。\n\n\n## 代码示例\n请参阅 [langchain4j-examples](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples) 仓库中的示例，了解如何使用 LangChain4j：\n- [纯 Java 示例](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples\u002Ftree\u002Fmain\u002Fother-examples\u002Fsrc\u002Fmain\u002Fjava)\n- [Quarkus 示例](https:\u002F\u002Fgithub.com\u002Fquarkiverse\u002Fquarkus-langchain4j\u002Ftree\u002Fmain\u002Fsamples)（使用 [quarkus-langchain4j](https:\u002F\u002Fgithub.com\u002Fquarkiverse\u002Fquarkus-langchain4j) 依赖）\n- [Spring Boot 示例](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples\u002Ftree\u002Fmain\u002Fspring-boot-example\u002Fsrc\u002Fmain\u002Fjava\u002Fdev\u002Flangchain4j\u002Fexample)\n- [Helidon 示例](https:\u002F\u002Fgithub.com\u002Fhelidon-io\u002Fhelidon-examples\u002Ftree\u002Fhelidon-4.x\u002Fexamples\u002Fintegrations\u002Flangchain4j)（使用 [io.helidon.integrations.langchain4j](https:\u002F\u002Fmvnrepository.com\u002Fartifact\u002Fio.helidon.integrations.langchain4j) 依赖）\n- [Micronaut 示例](https:\u002F\u002Fgithub.com\u002Fmicronaut-projects\u002Fmicronaut-langchain4j\u002Ftree\u002F0.3.x\u002Fdoc-examples\u002Fexample-openai-java)（使用 [micronaut-langchain4j](https:\u002F\u002Fmicronaut-projects.github.io\u002Fmicronaut-langchain4j\u002Flatest\u002Fguide\u002F) 依赖）\n\n## 有用资料\n有用资料可以在这里找到 [https:\u002F\u002Fdocs.langchain4j.dev\u002Fuseful-materials](https:\u002F\u002Fdocs.langchain4j.dev\u002Fuseful-materials)。\n\n\n## 获取帮助\n如需帮助，请使用 [Discord](https:\u002F\u002Fdiscord.gg\u002FJzTFvyjG6R) 或 [GitHub 讨论区](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fdiscussions)。\n\n\n## 功能请求\n如果您有特定的功能需求，请通过 [提交问题](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002Fnew\u002Fchoose) 告诉我们。\n\n\n## 贡献\n贡献指南可以在这里找到 [https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fblob\u002Fmain\u002FCONTRIBUTING.md](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)。","# LangChain4j 快速上手指南\n\nLangChain4j 旨在简化将大语言模型（LLM）集成到 Java 应用程序中的过程。它提供统一的 API、丰富的工具箱以及大量示例，支持 20+ 种主流 LLM 提供商和 30+ 种向量数据库。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **JDK**: 需要安装 **Java 17** 或更高版本。\n*   **构建工具**: 推荐使用 **Maven** (3.8+) 或 **Gradle**。\n*   **API Key**: 准备一个 LLM 提供商的 API Key（例如 OpenAI、Azure OpenAI、Google Vertex AI 等）。本指南以 OpenAI 为例。\n\n## 2. 安装步骤\n\n### Maven 项目\n\n在 `pom.xml` 文件中添加核心依赖及具体的模型集成依赖（以 OpenAI 为例）：\n\n```xml\n\u003Cdependencies>\n    \u003C!-- LangChain4j 核心库 -->\n    \u003Cdependency>\n        \u003CgroupId>dev.langchain4j\u003C\u002FgroupId>\n        \u003CartifactId>langchain4j\u003C\u002FartifactId>\n        \u003Cversion>0.36.2\u003C\u002Fversion> \u003C!-- 请检查 Maven Central 获取最新版本 -->\n    \u003C\u002Fdependency>\n\n    \u003C!-- OpenAI 集成模块 -->\n    \u003Cdependency>\n        \u003CgroupId>dev.langchain4j\u003C\u002FgroupId>\n        \u003CartifactId>langchain4j-open-ai\u003C\u002FartifactId>\n        \u003Cversion>0.36.2\u003C\u002Fversion>\n    \u003C\u002Fdependency>\n    \n    \u003C!-- 可选：Slf4j 日志实现 -->\n    \u003Cdependency>\n        \u003CgroupId>org.slf4j\u003C\u002FgroupId>\n        \u003CartifactId>slf4j-simple\u003C\u002FartifactId>\n        \u003Cversion>2.0.16\u003C\u002Fversion>\n    \u003C\u002Fdependency>\n\u003C\u002Fdependencies>\n```\n\n> **提示**：国内开发者若下载依赖较慢，可在 `settings.xml` 中配置阿里云 Maven 镜像：\n> ```xml\n> \u003Cmirror>\n>   \u003Cid>aliyunmaven\u003C\u002Fid>\n>   \u003CmirrorOf>*\u003C\u002FmirrorOf>\n>   \u003Cname>Aliyun Public\u003C\u002Fname>\n>   \u003Curl>https:\u002F\u002Fmaven.aliyun.com\u002Frepository\u002Fpublic\u003C\u002Furl>\n> \u003C\u002Fmirror>\n> ```\n\n### Gradle 项目\n\n在 `build.gradle` 中添加：\n\n```groovy\ndependencies {\n    implementation 'dev.langchain4j:langchain4j:0.36.2'\n    implementation 'dev.langchain4j:langchain4j-open-ai:0.36.2'\n    implementation 'org.slf4j:slf4j-simple:2.0.16'\n}\n```\n\n## 3. 基本使用\n\n以下是一个最简单的示例，展示如何初始化 OpenAI 模型并发送一条消息。\n\n### 代码示例\n\n创建一个新的 Java 类（例如 `QuickStart.java`）：\n\n```java\nimport dev.langchain4j.model.chat.ChatLanguageModel;\nimport dev.langchain4j.model.openai.OpenAiChatModel;\n\nimport static dev.langchain4j.model.openai.OpenAiChatModelName.GPT_4_O_MINI;\n\npublic class QuickStart {\n\n    public static void main(String[] args) {\n        \u002F\u002F 1. 初始化模型\n        \u002F\u002F 请将 \"your-api-key\" 替换为真实的 OpenAI API Key\n        \u002F\u002F 或者通过环境变量 OPENAI_API_KEY 自动读取\n        ChatLanguageModel model = OpenAiChatModel.builder()\n                .apiKey(System.getenv(\"OPENAI_API_KEY\")) \n                .modelName(GPT_4_O_MINI)\n                .build();\n\n        \u002F\u002F 2. 发送用户消息并获取响应\n        String userMessage = \"你好，请用一句话介绍 LangChain4j。\";\n        String response = model.generate(userMessage);\n\n        \u002F\u002F 3. 输出结果\n        System.out.println(response);\n    }\n}\n```\n\n### 运行说明\n\n1.  设置环境变量（Linux\u002FMac）：\n    ```bash\n    export OPENAI_API_KEY=\"sk-...\"\n    ```\n    或在 Windows PowerShell 中：\n    ```powershell\n    $env:OPENAI_API_KEY=\"sk-...\"\n    ```\n    *(也可以直接在代码 `.apiKey(\"sk-...\")` 中填入，但建议使用环境变量)*\n\n2.  运行 `main` 方法，控制台将输出类似以下内容：\n    ```text\n    LangChain4j 是一个强大的 Java 库，旨在简化大语言模型（LLM）在 Java 应用中的集成与开发。\n    ```\n\n### 下一步\n现在您已经成功运行了第一个 LLM 调用。您可以进一步探索 LangChain4j 的高级功能，如：\n*   **Prompt Templating**: 提示词模板\n*   **Chat Memory**: 多轮对话记忆管理\n*   **Tools & Agents**: 函数调用与智能体\n*   **RAG**: 检索增强生成（连接向量数据库）\n\n更多详细示例请参考 [langchain4j-examples](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-examples) 仓库。","某大型银行的技术团队正致力于将现有的 Java 核心业务系统与生成式 AI 结合，构建一个能实时回答内部合规政策查询的智能助手。\n\n### 没有 langchain4j 时\n- **厂商锁定严重**：若要切换不同的 LLM 提供商（如从 OpenAI 换到本地部署的模型），必须重写大量底层 HTTP 请求和解析代码，维护成本极高。\n- **RAG 实现复杂**：手动构建检索增强生成（RAG）流程极其繁琐，需要自行处理向量数据库连接、文本分块、嵌入计算及上下文拼接，容易出错且难以调试。\n- **功能扩展困难**：想让 AI 调用内部数据库或发送邮件等工具时，缺乏标准的函数调用（Function Calling）抽象，需硬编码复杂的参数解析逻辑。\n- **生态整合割裂**：难以与 Spring Boot 等企业级 Java 框架无缝集成，导致异步处理、依赖注入和日志监控等特性无法复用现有架构。\n\n### 使用 langchain4j 后\n- **统一接口灵活切换**：通过 langchain4j 提供的统一 API，仅需修改一行配置即可在不同大模型和向量存储之间自由切换，无需改动核心业务逻辑。\n- **开箱即用的 RAG**：利用内置的高级抽象，几行代码即可搭建完整的 RAG 流水线，自动处理数据摄入、检索和相关性排序，大幅缩短开发周期。\n- **标准化的工具调用**：借助原生支持的 MCP 和工具调用机制，只需定义 Java 接口注解，langchain4j 便能自动处理参数提取与方法执行，让 AI 轻松操作业务系统。\n- **深度融入企业架构**：langchain4j 完美适配 Spring 等主流框架，开发人员可直接使用熟悉的依赖注入和配置管理方式，快速构建生产级稳定的 AI 应用。\n\nlangchain4j 通过屏蔽底层异构差异并提供标准化高阶组件，让 Java 开发者能以最低成本将大模型能力安全、高效地融入企业级应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain4j_langchain4j_3d915818.png","LangChain4j","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flangchain4j_4067f7f0.png","",null,"https:\u002F\u002Fdocs.langchain4j.dev","https:\u002F\u002Fgithub.com\u002Flangchain4j",[82,86,90,94,98],{"name":83,"color":84,"percentage":85},"Java","#b07219",99.3,{"name":87,"color":88,"percentage":89},"Kotlin","#A97BFF",0.5,{"name":91,"color":92,"percentage":93},"Shell","#89e051",0.1,{"name":95,"color":96,"percentage":97},"Makefile","#427819",0,{"name":99,"color":100,"percentage":97},"Python","#3572A5",11449,2098,"2026-04-03T12:06:40","Apache-2.0","未说明",{"notes":107,"python":108,"dependencies":109},"这是一个 Java 库，不是 Python 工具，因此不需要 Python 环境。它旨在简化在 Java 应用程序中集成大语言模型（LLM），支持 20+ 个 LLM 提供商和 30+ 个向量存储。提供了适用于 Quarkus、Spring Boot、Helidon 和 Micronaut 的集成示例。具体运行资源需求取决于所调用的外部 LLM 服务或本地模型的配置，库本身无特殊硬件要求。","不适用",[110,111],"Java (JDK 17+ implied by nightly build badge)","Maven",[51,15,26,53,14,13],[114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],"huggingface","java","langchain","openai","chatgpt","gpt","llama","milvus","pinecone","onnx","embeddings","vector-database","chroma","gemini","ollama","anthropic","openai-api","pgvector","llm","llms",7,"2026-03-27T02:49:30.150509","2026-04-06T07:12:49.578295",[138,143,148,153,158,162],{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},13024,"如何在 LangChain4j 中使用 Java 模块系统（JPMS）而不遇到包分裂（split package）错误？","这是一个已知问题，当在模块化路径上使用 LangChain4j 时，可能会因为 `langchain4j` 和 `langchain4j-core` 包含相同的包（如 `dev.langchain4j.retriever` 或 `dev.langchain4j.exception`）而报错。维护者已在 PR #2466 中修复了部分问题，并创建了 Issue #2467 以自动化检查包分裂。如果在 1.0.0-alpha1 及更高版本中再次遇到此类错误（例如 `dev.langchain4j.exception` 包冲突），建议将相关异常类移动到 `langchain4j-core` 模块中，或者等待官方发布进一步的修复版本。","https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002F1066",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},13025,"如何在使用 Ollama 时发送带有自定义角色（如 \"context\"）的消息以支持 Granite Guardian 等模型？","LangChain4j 计划添加对自定义角色消息的支持。针对需要发送非标准角色（如 \"context\"）的场景，社区讨论决定引入 `CustomRoleMessage` 类型。用户可以通过创建 `CustomRoleMessage` 实例来指定任意角色名称和内容，从而兼容 Granite Guardian 等需要特殊角色格式化的模型。此功能正在通过 PR 进行集成，未来将允许更灵活的消息构造。","https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002F2391",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},13026,"当 LLM 幻觉出未注册的工具名称导致空指针异常（NPE）时，系统会如何处理？","当 LLM 返回一个不存在的工具名称（幻觉）时，默认行为可能会抛出空指针异常。根据社区讨论，可以通过配置自定义错误处理逻辑，改为向 LLM 发送一条错误消息，告知其工具不存在，而不是直接崩溃。这允许 LLM 自我纠正并重新尝试。具体的实现细节可以参考相关的 PR（如 #2271）或查看 `DefaultAiServices` 的最新更新以获取更健壮的错误处理机制。","https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002F1052",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},13027,"如何将 SearchApi 集成到 LangChain4j 中作为网络搜索引擎或工具使用？","SearchApi 已提供 bounty 计划以推动其集成。集成方案包括将其实现为 `WebSearchEngine` 和 `Tool`。开发者需要遵循 LangChain4j 的贡献指南，支持 Google Search 及其他 30+ API。实现时需注意，虽然所有引擎使用相同的 HTTP GET 请求，但参数和响应解析方式不同。对于静态类型语言，建议为不同的 API 创建独立的工具类，但底层实现应保持灵活以便扩展。如果需要更多搜索额度进行测试，可以直接联系 SearchApi 团队获取支持。","https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002F1132",{"id":159,"question_zh":160,"answer_zh":161,"source_url":157},13028,"如果我在开发过程中需要更多的 SearchApi 搜索额度进行测试，该怎么办？","SearchApi 团队愿意为 LangChain4j 的开发者提供免费搜索额度支持。你可以通过 SearchApi 网站上的 Intercom 聊天功能联系他们，提供与你的账户关联的电子邮件地址（为避免公开泄露，建议通过私密渠道发送）。团队成员核实后会将额外的积分添加到你的账户中。",{"id":163,"question_zh":164,"answer_zh":165,"source_url":152},13029,"为什么在调用工具时会收到关于 \"python\" 工具的奇怪请求，即使我只定义了 Java 工具？","这通常是因为 LLM 产生了幻觉，错误地认为存在一个名为 \"python\" 的工具（可能是由于训练数据中包含大量 Python 代码示例）。当 LangChain4j 尝试执行这个不存在的工具时，如果缺乏适当的错误处理，就会导致空指针异常。解决方案是确保在 `AiServices` 中配置了正确的工具执行器映射，并实施错误处理策略，以便在工具未找到时向 LLM 返回明确的错误信息，促使其修正请求。",[167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262],{"id":168,"version":169,"summary_zh":170,"released_at":171},71691,"1.12.2","## 变更内容\n* 文档：由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4665 中将版本更新至 1.12.1 和 1.12.1-beta21\n* 由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4666 中将版本更新至 1.13.0-SNAPSHOT 和 1.13.0-beta22-SNAPSHOT\n* 在声明式配置监督模型时传播默认聊天模型…，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4673 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fcompare\u002F1.12.1...1.12.2","2026-03-13T10:32:22",{"id":173,"version":174,"summary_zh":175,"released_at":176},71692,"1.12.1","## 重要变更\n* 智能体：由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4600 中实现，生成智能体系统拓扑和执行的 HTML 报告。\n* 智能体：允许将 MCP 工具作为非 AI 代理集成，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4630 中实现。\n* Hibernate EmbeddingStore 集成，由 @beikov 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4622 中实现。\n* 可观测性：使用 Micrometer 的指标，由 @Sus4nne 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4556 中实现。\n* 可观测性：Observation API + Micrometer 模块，由 @brunobat 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4597 中实现。\n* 可观测性：添加 ModerationModel 监听器支持，由 @jeanbisutti 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4588 中实现。\n* 代理技能支持，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4646 中实现。\n* 工具搜索，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4570 中实现。\n* Bedrock：添加结构化输出支持，由 @mohankumar27 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4552 中实现。\n* Bedrock：支持服务层级；支持另一种缓存点的策略，由 @jonathannaguin 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4563 中实现。\n\n\n## 其他变更\n* 文档：将版本更新至 1.11.0 和 1.11.0-beta19，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4536 中实现。\n* 将版本更新至 1.12.0-SNAPSHOT 和 1.12.0-beta20-SNAPSHOT，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4537 中实现。\n* 记录在 PR #4487 中新增的 UserMessage 缓存功能，由 @hetvi3012 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4533 中实现。\n* 阐明 PGVector 混合搜索配置和 RRF 打分方法，由 @YongGoose 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4539 中实现。\n* 修复\u002Ftoolid 重复问题：添加文档，由 @chq562656437 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4544 中实现。\n* 将 com.azure:azure-sdk-bom 从 1.3.3 升级至 1.3.4，由 @jdubois 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4541 中实现。\n* 依赖项更新：将 @mdx-js\u002Freact 更新至 v3.1.1，由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4545 中实现。\n* 将 openai-java 版本升级至 4.17.0，由 @jdubois 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4546 中实现。\n* Gemini 知识增强元数据未正确传播，由 @glaforge 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4555 中发现并报告。\n* 修复 Azurite 版本检查问题，由 @jdubois 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4549 中实现。\n* 当子进程退出时，使 MCP stdio 传输的操作立即失败，由 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4550 中实现。\n* 简化并泛化 HumanInTheLoop 代理，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4566 中实现。\n* 在 intro.md 中添加 Micronaut 集成链接，由 @sdelamo 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4561 中实现。\n* 集中管理 MCP 流量日志记录配置，由 @harikrishna553 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4564 中实现。\n* 功能：新增“customHeaders”参数。","2026-03-05T15:51:45",{"id":178,"version":179,"summary_zh":180,"released_at":181},71693,"1.11.0","## 重要变更\n* Agentic：@mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4350 中支持流式传输\n* Agentic：@mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4436 中支持多模态\n* Bedrock：@jonathannaguin 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3988 中支持护栏机制\n* Elasticsearch：@l-trotta 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4069 中实现了混合搜索\n* Gemini：@Bram-- 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4380 中支持 Nano Banana 和 Nano Banana Pro\n* Gemini：@mohankumar27 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4456 中支持 Google 搜索工具（Issue #4453）\n* MCP：@jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4467 中实现了将上下文注入到 Header 提供者中，并支持监听器\n* Mistral：@dskarzh 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4474 中支持推理模型\n* 可观测性：@mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4368 中允许在 AiService 和代理中监听工具执行\n* 可观测性：@LucasGois1 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4349 中为嵌入模型、嵌入存储和内容检索器添加了监听器\n* OpenAI：@maxlepikhin 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3816 中提供了实验性的 Responses API 支持\n* PgVector：@YongGoose 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4288 中实现了混合搜索\n\n## 其他变更\n* 文档：@dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4284 中将版本更新至 1.10.0 和 1.10.0-beta18\n* 版本更新：@dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4285 中将版本更新至 1.11.0-SNAPSHOT 和 1.11.0-beta19-SNAPSHOT\n* [BUG] DefaultPromptTemplateFactory 未将空格括号纳入考虑… @omarmahamid 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4291 中指出\n* 工具应支持空返回字符串 @omarmahamid 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4301 中提出\n* JUnit 6 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4305 中引入\n* 功能：InMemoryEmbeddingStore 添加 size() 和 isEmpty() 方法 @wangxuanni 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4289 中实现\n* [功能] ChatMemory 始终将系统消息保留在索引 0 处 @mr-cloud 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4304 中提出\n* isNullOrBlank 检查字段类型错误 @omarmahamid 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4319 中指出\n* AiServiceTokenStreamParameters 中的方法拼写错误 @omarmahamid 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4321 中修正\n* InMemoryEmbeddingStore 的方法性能较差 @omarmahamid 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4323 中指出\n* [BUG] Azure ACADS 文档缺少示例部分，且代码中的链接已损坏 @thswlsqls 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4325 中指出\n* [BUG] Azure 和 GCS 文档加载器在 loadDocuments() 中不会跳过失败的文档 @thswlsqls 在 https:\u002F","2026-02-04T12:21:35",{"id":183,"version":184,"summary_zh":185,"released_at":186},71694,"1.10.0","# 重要变更\n* 模型目录支持 Anthropic、Gemini、OpenAI 和 Mistral，由 @haumacher 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4240 中实现\n* Agentic：添加可观测性和监控功能，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4181 中实现\n* Anthropic：支持最新的工具功能，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4211 中实现\n* Anthropic：支持结构化输出，由 @diegoberriosr 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4220 中实现\n* Anthropic：返回原始 HTTP 响应和 SSE 事件，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4225 中实现\n* OpenAI：添加转录支持，由 @anunnakian 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4101 中实现\n* AI 服务：允许将 `ChatRequestParameters` 作为方法参数传递，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4226 中实现\n\n# 其他变更\n* 文档：更新版本号至 1.9.1 和 1.9.1-beta17，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4151 中完成\n* 更新版本号至 1.10.0-SNAPSHOT 和 1.10.0-beta18-SNAPSHOT，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4152 中完成\n* 确保查询转换器始终可以访问内存中的系统消息，由 @YSZhuoyang 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4126 中实现\n* 允许在 agentic 作用域中为键配置默认值，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4153 中实现\n* 修复 supervisor 作为子代理时的使用问题，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4161 中修复\n* Jvector 文档，由 @odysseaspenta 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4163 中完成\n* 将 \u002Fdocs 目录下的 mdast-util-to-hast 从 13.2.0 升级至 13.2.1，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4164 中完成\n* 将 \u002Fdocs 目录下的 express 从 4.21.2 升级至 4.22.1，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4168 中完成\n* 文档：添加 jlama 虚拟机选项，由 @vesense 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4155 中完成\n* 将 \u002Fdocs 目录下的 node-forge 从 1.3.1 升级至 1.3.2，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4141 中完成\n* 更新文档中聊天消息类型的计数，由 @ratomidev 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4138 中完成\n* 添加 Local 代码执行引擎的文档，由 @vesense 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4159 中完成\n* 对 MCP 注册服务器解析进行测试，由 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4149 中完成\n* 支持通过 Map 定义代理中的工具，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4169 中实现\n* 哎呀；将 GoogleAiGeminiBatchChatModel.builder() 设置为 public，由 @Bram-- 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4156 中完成\n* 添加新的 MessageModeratorInputGuardrail，由 @agoncal 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4160 中完成\n* Infinispan 16.0.3 的更新，由 @karesti 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4171 中完成\n* 修复 (sql-filter-parser)：处理 WHERE 子句中的 Function 表达式","2025-12-24T14:25:58",{"id":188,"version":189,"summary_zh":190,"released_at":191},71695,"1.9.1","## 变更内容\n* 文档：由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4139 中将版本更新至 1.9.0 和 1.9.0-beta16\n* 由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4140 中将版本更新至 1.10.0-SNAPSHOT 和 1.10.0-beta17-SNAPSHOT\n* 添加 LangChain4j 研讨会至附加资料——由 @roryp 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4142 中经 @dliubarskyi 审核\n* 由 @Bram-- 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4130 中更新 Gemini 批量处理文档\n* 修复当智能体无输出时可能出现的 NPE 问题，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4145 中实现\n* 默认禁用 `GlobalTestRetryExtension` 并移除 junit-platform.properties 文件，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4147 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fcompare\u002F1.9.0...1.9.1","2025-11-28T11:10:27",{"id":193,"version":194,"summary_zh":195,"released_at":196},71696,"1.9.0","## 重要变更\n* Agentic：@mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3929 中引入了一个通用的 agentic 计划器，并通过它重新实现了所有 agentic 模式。\n* MCP：@jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4032 中添加了 WebSocket 传输支持。\n* Gemini：@Bram-- 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3942 中实现了批量 API。\n* Anthropic：通过 Vertex AI 提供支持 #3193，由 @pbykovcoginiti 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3362 中完成。\n\n## 其他变更\n* 文档：@dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3950 中将版本更新至 1.8.0 和 1.8.0-beta15。\n* 版本更新：@dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3951 中将版本更新至 1.9.0-SNAPSHOT 和 1.9.0-beta16-SNAPSHOT。\n* 修复 OutputGuardrails 注解中的拼写错误：@edeandrea 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3948 中进行了修正。\n* 移除测试过程中不必要的 MCP 注册表客户端创建：@jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3963 中完成了此操作。\n* 文档：@vesense 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3966 中将 Agentic AI 添加到简介中。\n* 修复注解和文档中的拼写错误：@justinchoi929 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3997 中进行了修正。\n* 为代理生成一致且可重复的唯一名称：@mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3965 中实现了这一功能。\n* 反映最近的 MCP 注册表更新：@jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4016 中完成了相关调整。\n* vertex-ai-gemini：@eiselems 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4021 中在构建器中公开了 Vertex API 端点。\n* 修复 AgentBuilder 中错误的方法名：@mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4033 中进行了修正。\n* 更新 Easy RAG 的 Quarkus 文档链接：@wadajo 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4034 中完成了此操作。\n* 将 Playwright 版本更新至 1.56.0：@vesense 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4025 中进行了更新。\n* 文档：@odelpozo-denodo 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3992 中添加了 SQLServer 2025 嵌入存储集成。\n* 添加 WatsonxModerationModel 并重构 LangChain4j 集成：@andreadimaio 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3982 中完成了相关工作。\n* MCP：通过供应商方法提供自定义头部：@maff 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4036 中实现了这一功能。\n* 展平请求响应对象：@Bram-- 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3955 中完成了此操作。\n* 初始化 guardrails 模块：@agoncal 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3928 中完成了相关工作。\n* 修复 OpenAI 令牌使用类转换异常：@linnaung 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3912 中进行了修正。\n* 重构 ToolExecutionResult 以支持结果文本的惰性求值…：@hemanthsavasere 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3960 中完成了此操作。\n* 修复 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002F3968：@dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F4026 中完成了相关工作。\n* 测试：添加边界情况和错误处理…","2025-11-26T16:30:01",{"id":198,"version":199,"summary_zh":200,"released_at":201},71697,"1.8.0","# 重要变更\n* 反映 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3888 中对最新 MCP 注册表更改的更新\n* 支持 MCP 客户端的工具名称映射，由 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3799 中实现\n* 允许输出护栏重写完整的 AiMessage，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3868 中实现\n* 允许在 @Tool 注解的方法内部访问 AgenticScope，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3785 中实现\n* 兼容性改进：允许将自定义属性从 RAG 流水线传递到 ChatMemoryStore，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3898 中实现\n* 流式传输取消功能，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3910 中实现\n\n# 其他变更\n* 文档更新：首页采用卡片视图展示功能特性，由 @vijaypatidar 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3809 中完成\n* 向 BOM 添加 Markdown 和 YAML 解析器，由 @vesense 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3814 中实现\n* 测试改进：提升 PojoListOutputParser 对边界情况的测试覆盖率，由 @alxkm 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3805 中完成\n* 夜间工作流拆分为多个任务，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3822 中实现\n* OpenAI 流式聊天模型：公开原始 HTTP 响应，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3828 中实现\n* 测试覆盖：为 JSONMetadataHandler 添加全面的测试覆盖，由 @alxkm 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3823 中完成\n* 修复拼写错误，由 @jujn 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3824 中完成\n* 避免从 Gemini 返回空的 AiMessage，由 @loicmathieu 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3825 中实现\n* 允许配置用于记录 MCP 事件的日志记录器，由 @loicmathieu 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3803 中实现\n* 修复成功重新提示后的护栏结果，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3820 中完成\n* 修复：Builder 暴露了日志记录器设置方法，但 SseSubscriber 仍在内部自行构造日志记录器，由 @NeatGuyCoding 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3835 中完成\n* 测试覆盖：为 Vertex AI ContentsMapper 添加全面的测试覆盖，由 @alxkm 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3831 中完成\n* 发布自动化流程，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3838 中实现\n* 功能新增：如果会话未找到，则支持自动重新初始化会话，由 @vijaypatidar 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3833 中实现\n* 自动化文档中版本号的更新，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3845 中完成\n* 自动化文档中版本号的更新，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3847 中完成\n* 测试增强：提升 AiService 聊天内存配置的测试覆盖率，由 @alxkm 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3839 中完成\n* 修复 Markdown 测试包，由 @vesense 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3844 中完成\n* 文档更新：添加 YugabyteDB","2025-10-24T14:17:03",{"id":203,"version":204,"summary_zh":205,"released_at":206},71698,"1.7.1","# 重要变更\n* Agentic：允许基于类创建代理，由@mariofusco在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3786中实现。\n* ChromaDB：支持API V2，由@vijaypatidar和@ehsavoie在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3779中实现。\n* MCP：根据近期注册表API的变化进行调整，由@jmartisk在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3793中完成。\n* OpenAI Official：升级至SDK v4.0.0，由@jdubois在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3795中实现。\n* Anthropic：允许设置自定义参数，由@dliubarskyi在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3797中实现。\n* Azure OpenAI：支持maxCompletionTokens参数，由@dliubarskyi在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fcommit\u002Ffaa12fa8de100cf5dc1d8a3180439a30529bdcdd中实现。\n* Hugging Face：弃用HuggingFaceChatModel和HuggingFaceLanguageModel，由@dliubarskyi在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3319中完成。\n\n\n# 新集成\n* Docker MCP传输，由@loicmathieu在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3513中实现。\n* 添加Oracle文档加载器实现，由@psilberk在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3114中实现。\n* 通过TornadoVM驱动的GPULlama3.java为LangChain4j添加GPU支持，由@mikepapadim在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3654中实现。\n* 引入yaml文档解析器，由@vesense在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3748中实现。\n\n\n# 其他变更\n* 添加Logo及Logo许可，由@LizeRaes在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3739中完成。\n* 测试：为GoogleAI、IsNotEqualTo过滤器和SQL构建器添加验证及边界情况测试，由@alxkm在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3766中完成。\n* 改进AgenticScope的JSON序列化测试，由@mariofusco在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3777中完成。\n* 修复(gemini)：修正Google Gemini API字段命名，采用驼峰式命名法，由@minguncle在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3567中完成。\n* 在googleai.SchemaMapper中支持anyOf和null JSON Schema元素，由@Zalewa在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3781中完成。\n* 测试：为InvocationParameters添加全面的测试覆盖，由@alxkm在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3787中完成。\n* 禁用agentic模块中的不稳定测试，由@mariofusco在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3790中完成。\n* 测试：增强对IsEqualTo过滤器和Tablestore工具的测试覆盖率，由@alxkm在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3791中完成。\n* 修复：如果使用onCompleteResponse()，TokenStream不应再要求onPartialResponse()，由@vorburger在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3792中完成。\n* 测试：提升PojoSetOutputParser的测试覆盖率，由@alxkm在https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3798中完成。\n\n\n# 新贡献者\n* @vorburger在其首次贡献中完成了https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3792。\n* @mikepapadim在其首次贡献中完成了https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3654。\n\n**完整变更日志**：https:\u002F\u002Fgithub.","2025-10-02T14:51:21",{"id":208,"version":209,"summary_zh":210,"released_at":211},71699,"1.6.0","# 重要变更\n- 智能体相关\n  - 确保在结束根调用之前，所有待处理的异步智能体调用都已完成，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3695 中实现。\n  - 当循环因退出条件而终止时，调用输出函数，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3696 中实现。\n  - 允许混合使用声明式和编程式智能体 API，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3699 中实现。\n  - 在同一智能体系统中为各个智能体使用唯一名称，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3703 中实现。\n  - 修复声明式 API 中智能体上下文配置的传播问题，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3709 中实现。\n  - 修复引入智能体唯一名称后 A2A 客户端的问题，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3711 中实现。\n  - 将 A2A SDK 升级至 0.3.0.Beta1，由 @ehsavoie 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3710 中实现。\n  - 调整主管智能体提示词，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3726 中实现。\n  - 改进智能体循环的退出条件，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3713 中实现。\n  - 引入智能体监听器，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3718 中实现。\n  - 添加声明式“人工介入”功能，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3735 中实现。\n  - 允许在 SupervisorAgent 上配置 ChatMemoryProvider，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3740 中实现。\n  - 为 A2A 客户端添加声明式 API，由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3755 中实现。\n- MCP\n  - 根据官方 MCP 注册表的最新变化进行调整，由 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3723 中实现。\n  - 重构 MCP 客户端以支持结构化内容结果，由 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3733 中实现。\n  - 取消工具时，将 requestId 作为数字发送，由 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3707 中实现。\n  - 提升 SSE 事件解析的健壮性，由 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3724 中实现。\n- AI 服务\n  - 从 Quarkus LangChain4j 回归可观性功能，由 @edeandrea 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3679 中实现。\n  - 允许向 Tool\u002FToolProvider\u002FRAG 组件传递额外参数，并在这些组件之间传递参数，由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3569 中实现。\n\n\n# 新集成\n* Azure Container Apps 动态会话，由 @bbenz 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3266 中实现。\n* Markdown 文档解析器，由 @vesense 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3732 中实现。\n\n\n# 其他变更\n* 测试：为 AiServices、Metadata 和 StringSetOutputParser 添加全面的测试覆盖率，由 @alxkm 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3690 中实现。\n* 为 Anthropic Claude 视觉模型添加图像 URL 支持（#3691），由 @henrydo300 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull 中实现。","2025-09-26T14:16:30",{"id":213,"version":214,"summary_zh":215,"released_at":216},71700,"1.5.0","# 重要变更\n* MCP：由 @jmartisk 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3684 中实现的初始 [注册表](https:\u002F\u002Fblog.modelcontextprotocol.io\u002Fposts\u002F2025-09-08-mcp-registry-preview\u002F) 客户端实现\n* Agentic：由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3643 中实现的异步代理\n* Agentic：由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3660 中修复的工具功能缺失问题\n* Google AI Gemini：由 @minguncle 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3641 中添加的图像输出支持\n* AWS Bedrock：由 @valimikayilov 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3664 中添加的提示缓存支持\n\n# 其他变更\n* 由 @harikrishna553 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3611 中添加代理教程中缺失的 StyleEditor 实现\n* 由 @dliubarskyi 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3655 中修复 #3650 问题\n* 由 @harikrishna553 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3618 中重构 addInternal 方法，移除冗余的 HashMap 初始化\n* 由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3623 中修复在最大代理数量达到上限时主管代理调用输出函数的问题\n* 由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3625 中将主代理声明式提供的 ChatModel 传递给子代理\n* 由 @mariofusco 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3656 中修复 AgenticScope 的 JSON 序列化问题\n* 由 @jordibisbal8 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3661 中处理 #3628：对访问过的 JSON 对象模式使用接收到的描述\n* 由 @andreadimaio 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3644 中将 watsonx.ai SDK 更新至最新版本\n* 由 @mbroz2 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3640 中记录对 A2A 响应类型的支持\n* 测试：由 @alxkm 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3610 中提升 ConversationalChain 和 ConversationalRetrievalChain 的测试覆盖率\n* 依赖项修复：由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3435 中将 software.amazon.awssdk:bom 更新至 v2.33.5\n* 依赖项修复：由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3483 中将 org.mockito:mockito-bom 更新至 v5.19.0\n* 依赖项修复：由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3436 中将 ch.qos.logback:logback-classic 更新至 v1.5.18\n* 依赖项维护：由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3486 中将 org.wiremock:wiremock-standalone 更新至 v3.13.1\n* 由 @linnaung 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3616 中修复 GoogleAiGeminiTokenCountEstimator 向系统消息发送空请求的问题\n* 由 @loicmathieu 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3612 中允许配置用于记录请求和响应的日志记录器\n* 修复：由 @jiangsier-xyz 在 https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3630 中等待工具列表更新完成\n* 重构 registerContext 以提高清晰度和安全性","2025-09-16T11:44:49",{"id":218,"version":219,"summary_zh":220,"released_at":221},71701,"1.4.0","# Notable Changes\r\n* Agentic: add missing features to declarative API by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3587\r\n* Agentic: allow to manipulate the supervisor output before returning it by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3602\r\n* MCP: Streamable HTTP transport by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3534\r\n* AI Service: option to execute tools concurrently by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3512\r\n* AI Service: support immediate\u002Fdirect return from tools by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3069\r\n* AI Service: introduce tool arguments and tool execution error handlers by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3536\r\n* AI Serivce: multimodality support by @miracle-bean in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3420\r\n* Structured Outputs: introduce a raw JSON-schema element by @ivy-rew in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3374\r\n\r\n\r\n# New Integrations\r\n* Integrate watsonx.ai module by @andreadimaio in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3423\r\n* Azure OpenAI: support audio transcription model by @SandraAhlgrimm in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2110\r\n* Anthropic: add support for counting tokens by @HamzaElzarw-2022 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3381\r\n\r\n\r\n# Breaking Changes\r\n* AI Service: introduce tool arguments and tool execution error handlers by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3536\r\n* Add missing features to agentic declarative API by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3587\r\n* Use a pool of virtual threads as internal default executor by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3541\r\n\r\n\r\n# Other Changes\r\n* add mariofusco as developer of the agentic modules by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3502\r\n* minor fix to agents tutorial by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3504\r\n* Improve OrganicSearchResult Javadoc, Constructor Clarity, and Metadat… by @harikrishna553 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3505\r\n* fix in Azure Document Loader Dependency: update github-api to 1.329 to resolve commons-io security vulnerability by @SandraAhlgrimm in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3506\r\n* Remove unwanted links from images in tutorials by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3517\r\n* Allow using the MCP ToolExecutor outside of the McpToolProvider by @loicmathieu in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3494\r\n* Fix building of agentic declarative parallel workflow by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3530\r\n* fix Ollama agentic tests by @donbourne in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3539\r\n* minor wording fixes by @donbourne in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3518\r\n* Allow passing a system message to the agent via the builder by @loicmathieu in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3533\r\n* Fix: Update Vespa version to address Jetty HTTP security vulnerability by @SandraAhlgrimm in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3549\r\n* #3550 Fix typo on field name variables by @cunningt in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3551\r\n* fix:[#3552] LoggingHttpClient should not use the DefaultServerSentEve… by @codexvn in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3554\r\n* Allow passing null memory or memory provider by @loicmathieu in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3525\r\n* test: Add comprehensive edge case tests for Content class by @alxkm in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3521\r\n* chore(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.11.3 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3490\r\n* Inject business\u002Fdomain context into the planning phase by @mnhnam in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3527\r\n* Fix a NPE that occurs if there is no parsed SSE by @edeandrea in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3563\r\n* Fix code formatting in Azure OpenAI and Core modules by @SandraAhlgrimm in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3577\r\n* [minor fix] Remove unnecessary imports by @vesense in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3279\r\n* Use a pool of virtual threads as internal default executor by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3541\r\n* Add utility methods to find SystemMessage instances in chat messages by @agoncal in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3582\r\n* Allows to programmatically define the name and description of an agent by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3594\r\n* Upgrade to OpenAI SDK Java 3.1.2 by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3593\r\n* Docs: fix typo in pom type configuration tag","2025-08-28T14:39:18",{"id":223,"version":224,"summary_zh":225,"released_at":226},71702,"1.3.0","# Announcements\r\n\r\nWe're excited to announce the release of two new experimental modules - `langchain4j-agentic` and `langchain4j-agentic-a2a` - which introduce a set of abstractions and utilities for building agentic, AI-infused applications. See the [documentation](https:\u002F\u002Fdocs.langchain4j.dev\u002Ftutorials\u002Fagents) for more information.\r\n\r\n# What's Changed\r\n* Introduce new `langchain4j-agentic` module by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3458\r\n* Docs for Infinispan Embedded Store by @karesti in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3450\r\n* [Fix] Incorrect join changes in Infinispan by @karesti in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3454\r\n* Fix bug in output guardrails when maxRetries == 0 by @edeandrea in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3470\r\n* Update dependency com.couchbase.client:java-client to v3.8.3 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3440\r\n* Fixes #3461 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3477\r\n* use `withFloatVectors` instead of deprecated `withVectors` by @code2tan in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2642\r\n* Update dependency org.bouncycastle:bcprov-jdk18on to v1.81 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3491\r\n* Update dependency org.openrewrite.maven:rewrite-maven-plugin to v5.47.3 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3484\r\n* Add doc for beforeToolExecution for Token Stream by @ChiaoGeek in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3476\r\n* Allow missing 'items' in array parameter's schema by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3452\r\n* Fixes #3453 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3496\r\n* [Fix] fix missing metadataMap in LangChainItemMarshaller by @NeatGuyCoding in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3446\r\n* fix(deps): update quarkus.platform.version to v3.25.1 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3487\r\n\r\n# New Contributors\r\n* @code2tan made their first contribution in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2642\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fcompare\u002F1.2.0...1.3.0","2025-08-07T12:39:24",{"id":228,"version":229,"summary_zh":230,"released_at":231},71703,"1.2.0","# Announcements\r\n\r\nWe are excited to announce the release of the stable (`1.2.0`) version for the next batch of modules:\r\n- `langchain4j-anthropic`\r\n- `langchain4j-azure-open-ai`\r\n- `langchain4j-bedrock`\r\n- `langchain4j-google-ai-gemini`\r\n- `langchain4j-mistral-ai`\r\n- `langchain4j-ollama`\r\n\r\nMany of the other LC4j modules are released under the `1.2.0-beta8` version and remain experimental\u002Funstable.\r\n\r\nThe `langchain4j-bom` has been released with version `1.2.0` and includes the latest versions of all modules.\r\n\r\n\r\n# Notable Changes\r\n* Support thinking\u002Freasoning by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3380\r\n* Streaming partial tool calls by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3303\r\n* MCP: option to automatically expose resources as tools by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3302\r\n* OpenAI: allow setting custom chat request parameters and access raw HTTP responses and SSE events by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2694\r\n* AI Services: add possibility to transform a `ChatRequest` before it is sent to the LLM by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3378\r\n* AI Services: expose intermediate `ChatResponse`s by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3349\r\n* Azure OpenAI: report actual `TokenUsage` when using streaming chat model by @ssmogos in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3412\r\n* `TokenStream`: add callback handler before the tool is executed by @ChiaoGeek in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3179\r\n\r\n\r\n# Breaking Changes\r\n* Vertex AI Gemini: fix streaming model: introduce `Executor` to make it async by @douglas-DS in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3297\r\n* Azure OpenAI: removed `TokenCountEstimator` from streaming models by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3431\r\n\r\n\r\n# Other Changes\r\n* Ollama - Partial thinking support in Ollama by @bidek in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3135\r\n* Fix: OpenAI, Azure OpenAI: throw ContentFilteredException in case of content filtered or refusal by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3294\r\n* Update CONTRIBUTING.md to mention spotless by @glaforge in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3230\r\n* Gemini: add two boolean features by @neupanerabin in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3245\r\n* Improve DefaultMcpClient's behavior after closing by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3234\r\n* Add mcp server health check by @Cooosin in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3241\r\n* Fix typo in community BOM dependency declaration by @Cooosin in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3257\r\n* Update documentation with Neo4j features: entity retrievers, conversation memory and graph construction feature examples by @vga91 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3250\r\n* Add some docs about using MCP without AI services by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3263\r\n* support pseduo sets in the tool schema by @jtnord in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3152\r\n* Fix typo in test case names by @alfonsomunozpomer in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3239\r\n* [minor fix] Remove unnecessary casts in RetryUtils by @vesense in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3237\r\n* Update grpc-protobuf dependency version to 1.68.1 by @roryp in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3161\r\n* Missing logprobs response parameter on Google AI Gemini's `BaseGeminiChatModel` class by @glaforge in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3254\r\n* chore(deps): replace dependency com.vackosar.gitflowincrementalbuilder:gitflow-incremental-builder with io.github.gitflow-incremental-builder:gitflow-incremental-builder by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2475\r\n* Fix logging message to reflect correct number of transformed text segments by @minglu7 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3160\r\n* Fix broken MCP doc link by updating to archived repository URL by @harikrishna553 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3243\r\n* Use isNullOrEmpty and isNullOrBlank functions from Utils class by @TheJavaGuy in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3071\r\n* Remove the need for Azure dependencies at compile time by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3287\r\n* MCP: roots support by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3283\r\n* Improve JSON extraction from LLM response by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3268\r\n* Refactor Azure OpenAI tests to address flackiness by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3280\r\n* minor fix wrong example code in neo4j.md by @NeatGuyCoding in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3292\r\n* Run integration tests on PR","2025-07-29T15:21:30",{"id":233,"version":234,"summary_zh":235,"released_at":236},71704,"1.1.0","## Announcements\r\nWe are excited to announce the release of version `1.1.0-rc1` (release candidate 1) for the next set of modules:\r\n\r\n- `langchain4j-anthropic`\r\n- `langchain4j-azure-open-ai`\r\n- `langchain4j-bedrock`\r\n- `langchain4j-google-ai-gemini`\r\n- `langchain4j-mistral-ai`\r\n- `langchain4j-ollama`\r\n\r\nPlease try out version `1.1.0-rc1` and share any feedback. We plan to release the final (`1.2.0`) versions for the above-mentioned modules in July.\r\n\r\nThe rest of the modules are released under the `1.1.0` (`langchain4j-core`, `langchain4j`, `langchain4j-open-ai`, etc.) and `1.1.0-beta7` (all other modules) versions.\r\n\r\nThe `langchain4j-bom` has been released with version `1.1.0` and includes the latest versions of all modules.\r\n\r\n\r\n## Notable Changes\r\n* Input and output guardrails by @edeandrea in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2571\r\n* Allow to use AI Services as tools for another AI Service by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3095\r\n* Anthropic: full support of the new chat API by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3158\r\n* Anthropic: use HttpClient abstraction by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3220\r\n* Google AI Gemini: full support of the new chat API by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3167\r\n* Google AI Gemini: use HttpClient abstraction by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3202\r\n* Mistral: full support of the new chat API by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3208\r\n* Mistral: use HttpClient abstraction by @snophey in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2991\r\n* OpenAI: support PDFs as inputs by @jrsperry in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3177\r\n* Vertex AI Gemini: support structured outputs by @thiagohora in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3030\r\n\r\n\r\n## Breaking Changes\r\n* Amazon Bedrock: prepare for 1.0 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3217\r\n* Anthropic: use HttpClient abstraction by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3220\r\n* Anthropic: prepare for 1.0 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3221\r\n* Azure OpenAI: remove default value for temperature by @bohdan-asieiev-ah in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3178\r\n* Azure OpenAI: prepare for 1.0 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3155\r\n* Google AI Gemini: use HttpClient abstraction by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3202\r\n* Google Vertex AI Gemini: fix split package by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3084\r\n* Mistral: use HttpClient by @snophey in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2991\r\n* Mistral: prepare for 1.0 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3229\r\n\r\n\r\n## Other Changes\r\n* Introduce a way to provide a wrapper around the ToolExecutor for MCP tool calls by @geoand in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3076\r\n* Fix flaky OpenAiStreamingChatModelErrorsTest by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3097\r\n* [DOC] Add links to Micronaut's LangChain4j integration by @glaforge in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3106\r\n* Upgrade Milvus SDK to 2.5.9 by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3142\r\n* Fix spotless plugin run on CI and in Makefile by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3127\r\n* Upgrade to OpenAI Java SDK v2.2.1 by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3120\r\n* MCP: handle parameters with an empty definition as an empty JsonObjectSchema by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3145\r\n* Fix incorrect @P annotation usage in tool method example by @harikrishna553 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3124\r\n* Fix broken anchor link to 'Customizable RAG' section in RAG tutorial by @harikrishna553 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3156\r\n* Ensure that Ollama test jar is built by @geoand in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3154\r\n* Google Vertex AI Gemini: use GoogleSearch instead of GoogleSearchRetrieval by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3146\r\n* Update Metadata Documentation to Include UUID Support by @harikrishna553 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3162\r\n* Add blocking utility methods for streaming response handling by @kousen in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3165\r\n* Add Thinking Config support for Gemini 2.5 models by @neupanerabin in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3180\r\n* Gemini: Fix a test whose assertion is a bit too strict. by @glaforge in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3188\r\n* Upgrade Selenium to 4.33.0 to fix a CVE in a transitive dependency by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j","2025-06-18T16:57:07",{"id":238,"version":239,"summary_zh":240,"released_at":241},71705,"1.0.1","## What's Changed\r\n* fixing failing tests by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3012\r\n* VoyageAI: Using `HttpClient` by @Martin7-1 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2704\r\n* Switch CassandraContainer implementation by @eddumelendez in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2826\r\n* Update dependency org.apache.maven.plugins:maven-install-plugin to v3.1.4 by @renovate in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3040\r\n* Update azure-sdk-for-java monorepo by @renovate in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3035\r\n* Fix #3018, #3028 and #3055 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3061\r\n* bedrock get rid of lombok by @rndtavares in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3054\r\n* #2552 Fix Document.toTextSegment() index metadata assignment by @JJonahJson in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3041\r\n* Dynamic registration and deregistration of MCP clients by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3060\r\n* Mistral AI: Support fill-in-the-middle API for code completion models by @czelabueno in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F1569\r\n* fix issue 2975 - HuggingFace pipeline\u002Ffeature-extraction API URL was changed by @gkwan-ibm in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3020\r\n* Update dependency org.jetbrains.kotlin:kotlin-maven-plugin to v2.1.21 by @renovate in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3044\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fcompare\u002F1.0.0...1.0.1","2025-05-20T13:36:43",{"id":243,"version":244,"summary_zh":245,"released_at":246},71706,"1.0.0","## Announcements\r\nWe are excited to announce the release of version `1.0.0` for the following artifacts:\r\n- `langchain4j-core`\r\n- `langchain4j`\r\n- `langchain4j-http-client`\r\n- `langchain4j-http-client-jdk`\r\n- `langchain4j-open-ai`\r\n- `langchain4j-bom`\r\n\r\nThe rest of the modules are released under the `1.0.0-beta5` version. We are currently finalizing the remaining updates and plan to release the next set of modules as `rc1` in June.\r\n\r\nThe `langchain4j-bom` has been released with version `1.0.0` and includes the latest versions of all modules (many of which are at `1.0.0-beta5`).\r\n\r\nThank you so much to everyone who contributed in one way or another - this would not have been possible without you! 🙏 \r\n\r\n## Breaking Changes\r\n* Fix: OpenAI: map exceptions for streaming and moderation models by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2986\r\n* Fix: OpenAI: fail if `topK` parameter is specified by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2987\r\n* Ollama: return `FinishReason.TOOL_EXECUTION` when tool calls are present in the response by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2981\r\n\r\n\r\n## What's Changed\r\n* cosmos-nosql-update by @bbenz in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2958\r\n* Fix Ollama empty response metadata and support `ChatRequestParameters` by @Martin7-1 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2810\r\n* Kotlin: Add support for converting TokenStream to coroutines Flow by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2946\r\n* Update Kotlin compiler to 2.1.20 and enforce stricter checks by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2957\r\n* Properly parse anyOf arrays in tool schemas by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2963\r\n* Use info as the HTTP logging level by @geoand in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2960\r\n* fix: add getter method for `McpPingResponse#result` by @keliwang in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2971\r\n* Add timeout handling test and update dependencies by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2717\r\n* Added maven-flatten-plugin, cleaned up POMs by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2964\r\n* Fixed #2974 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2980\r\n* Enhance virtual threads support in Kotlin Coroutines by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2956\r\n* Update Java version 23 to 24 in GitHub Actions workflow by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2741\r\n* Update neo4j docs after community migration with more examples and configurations by @vga91 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2972\r\n* Reflection variable resolver by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2951\r\n* Add possibility to filter tools provided by MCP servers by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3000\r\n* Ollama: make ctors accept builders, deprecate \"format\" for removal, map exceptions, cleanup by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2984\r\n* Allow exstensibility of McpToolProvider by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3010\r\n* Add a key property to the McpClient by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F3011\r\n\r\n\r\n## New Contributors\r\n* @bbenz made their first contribution in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2958\r\n* @keliwang made their first contribution in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2971\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fcompare\u002F1.0.0-rc1...1.0.0","2025-05-14T10:07:43",{"id":248,"version":249,"summary_zh":250,"released_at":251},71707,"1.0.0-rc1","## Announcements\r\nWe are excited to announce the release of version `1.0.0-rc1` (release candidate 1) for the following modules:\r\n- `langchain4j-core`\r\n- `langchain4j`\r\n- `langchain4j-http-client`\r\n- `langchain4j-http-client-jdk`\r\n- `langchain4j-open-ai`\r\n\r\nThe rest of the modules are released under the `1.0.0-beta4` version. We are currently finalizing the remaining updates and plan to release the next set of modules as `1.0.0-rc1` in June.\r\n\r\nPlease try out version `1.0.0-rc1` and share any feedback. We plan to release the final `1.0.0` version in mid-May.\r\n\r\nIn case you are using `langchain4j-bom`, it remains at version `1.0.0-beta4`, but includes the latest versions for each module (including `1.0.0-rc1` for the modules listed above).\r\n\r\n## Breaking Changes\r\nThis release introduces the following breaking changes. Please find the details in the corresponding PRs.\r\n* Renamed `ChatLanguageModel` into `ChatModel` and `StreamingChatLanguageModel` into `StreamingChatModel` by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2866\r\n* Renamed `Tokenizer` into `TokenCountEstimator` by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2874\r\n* Fix #2794 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2906\r\n* Removed redundant `TextFile` and `TextFileContent` by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2908\r\n* Fix #2918 (`maxRetries`) by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2919\r\n* Move Kotlin extensions to separate module by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2943\r\n* Removed logging of potentially sensitive information by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2934\r\n* `ChatMemoryAccess`: moved to `dev.langchain4j.service.memory` package in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fcommit\u002F082a75815952e02c1cd0a340fffe9aa7d58e2c0d\r\n* All collections (such as `List`s, `Set`s, `Map`s, etc.) returned by the LangChain4j APIs in the `langchain4j-core`, `langchain4j` and `langchain4j-open-ai` modules are now non-nullable. Empty collections will be returned instead of `null`.\r\n* Renamed and moved around some internal utility classes (which you should not use directly, even if they are `public`). All such classes are now annotated with `@Internal`.\r\n\r\nTo make the migration easier, please use the following OpenRewrite recipe:\r\n```\r\nmvn -U org.openrewrite.maven:rewrite-maven-plugin:6.7.0:run -Drewrite.recipeArtifactCoordinates=dev.langchain4j:langchain4j-openrewrite-recipes:1.0.0-rc1 -Drewrite.activeRecipes=dev.langchain4j.UpgradeToRc1AndBeta4\r\n```\r\nPlease note that you need to run this **_before_** updating the versions to `1.0.0-rc1` and `1.0.0-beta4`.\r\n\r\n\r\n## Other Changes\r\n* fixed the bug that when mcp tool function has no args ,some openai co… by @awol2005ex in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2776\r\n* chore(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.4 by @renovate in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2850\r\n* Fixes after #2620 by @tenpigs267 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2851\r\n* Support custom headers for VertexAi Streaming Chat Model (#2835) by @anydef in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2838\r\n* Update dependency org.apache.maven.plugins:maven-failsafe-plugin to v3.5.3 by @renovate in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2860\r\n* Automatic reconnect for MCP over HTTP by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2862\r\n* Move MCP traffic logging to a logger named 'MCP' by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2869\r\n* AI Services, ChatResponseMetadata, TokenUsage improvements by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2883\r\n* fix issue #2867 by @gkwan-ibm in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2875\r\n* quarkus-mcp-server update for tests plus a minor test fix by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2902\r\n* Create a security policy by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2904\r\n* Add Documentation for Helidon Integration by @arjav-desai in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2859\r\n* Update google-vertex-ai.md by @AbiramiSukumaran in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2493\r\n* Upgrade to OpenAI Java SDK v1.4.1 by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2868\r\n* Introduce initialization timeout for MCP clients by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2912\r\n* Downgrade kotlinx-coroutines to version 1.8.1 by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2936\r\n* docs: Update DashScope documentation by @nfe-w in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2923\r\n* Update dashscope.md by @xiaomgod in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2913\r\n* Google AI Gemini: migrate from Gson to Jackson by @yangzho12138 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2933\r\n* A","2025-05-02T14:27:50",{"id":253,"version":254,"summary_zh":255,"released_at":256},71708,"1.0.0-beta3","## Notable Changes\r\n* Structured Outputs: support more return types with JSON schema by @kuraleta in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F1938\r\n* Amazon Bedrock: support for streaming and listeners\u002Fobservability by @tenpigs267 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2620\r\n* Mistral: add support for structured outputs (#2633) by @snophey in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2706\r\n* MCP: support prompts + some MCP resource handling improvements by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2691\r\n* Fix memory leak due to `ChatMemory` caching by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2692\r\n* Allow to mix static and dynamic tools by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2819\r\n* MCP: Dynamic updates and caching of the tool list by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2817\r\n\r\n\r\n## Breaking Changes\r\n* Remove deprecated `ChatModelRequest` and `ChatModelResponse` by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2702\r\n* Remove deprecated APIs by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2726\r\n* Remove deprecated `EmbeddingStore.findRelevant` API by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2750\r\n* Remove `TokenCountEstimator` interfaces by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2791\r\n* OpenAI: remove deprecated APIs by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2792\r\n* Structured Outputs: make fields optional by default by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2806\r\n\r\n\r\n## Other Changes\r\n* Apply missed testing best practices by @timtebeek in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2696\r\n* Add OpenAI Official module to the BOM by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2693\r\n* WIP: This documentation demonstrates how to implement a classification-bas… by @kuraleta in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2679\r\n* Openai errors test by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2678\r\n* Anthropic: Get rid of lombok by @Martin7-1 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2703\r\n* Allow to provide custom Kotlin Coroutine Context to ChatLanguageModel suspend functions by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2734\r\n* refactor-poms by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2723\r\n* Delombok by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2751\r\n* Prevent NPE when parsing a McpLogMessage without logger by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2780\r\n* Version upgrades for MCP tests by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2768\r\n* Quarkus extension fixes by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2807\r\n* Support type arrays for JSON schema by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2749\r\n* Fix ITs : Aws Nova models now support requiring a tool execution by @tenpigs267 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2804\r\n* docs(google-cloud-sql): add documentation by @averikitsch in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2802\r\n* Add support for Jackson Kotlin module and improve JSON handling by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2730\r\n* allow to configure max sequential tools invocations by @xstefank in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2715\r\n* Fixes #2617 by @hariprasadkc in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2690\r\n* Fix issus #2680 by @zjwqzyb in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2683\r\n* Health checks for MCP clients by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2769\r\n* Add script to check split packages by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2829\r\n* Upgrade to OpenAI Java SDK v1.2.0 by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2833\r\n* Upgrade version of Azure OpenAI to 1.0.0-beta.16 by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2720\r\n* Add documentation for tools hallucination strategy by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2840\r\n* Add support for passwordless authentication with Azure OpenAI by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2719\r\n* Updates to latest Infinispan LTS minor of 15.0 by @karesti in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2839\r\n* Update dependency org.apache.poi:poi-ooxml to v5.4.0 [SECURITY] by @renovate in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2842\r\n* Refactor AiServiceTokenStream constructor with pilot way for encapsulating parameters by @edeandrea in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2844\r\n* Update dashscope.md by @getwName in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2744\r\n* docs(google-alloydb): add documentation by @averikitsch in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2759\r\n* [DOCS] Im","2025-04-11T13:12:28",{"id":258,"version":259,"summary_zh":260,"released_at":261},71709,"1.0.0-beta2","## Notable Changes\r\n* OpenAI: migrate to `HttpClient` by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2529\r\n* Support the official OpenAI Java SDK by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2508\r\n* Expose tools hallucination strategy by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2626\r\n* MCP: support for resources by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2656\r\n* Amazon Bedrock: deprecate old models using invoke API by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2675\r\n* Anthropic: Add support for PDF inputs by @bigcyy in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2659\r\n* Anthropic: implement (limited) support for thinking by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2601\r\n* Propagate `ModelProvider` (OpenTelemetry's `gen_ai.system`) into `ChatModelListener` by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2556\r\n\r\n## Breaking Changes\r\n* OpenAI: migrate to `HttpClient` by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2529\r\n* Removed deprecated `ChatLanguageModel.generate()` API by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2621\r\n* Removed deprecated `TokenStream`'s `onNext()` and `onComplete()` methods by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2627\r\n* Removed deprecated `JsonSchemaProperty`, `ToolParameters` and some `Tokenizer` APIs by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2668\r\n* Introduce `ExceptionMapper` by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2607\r\n\r\n\r\n## Potentially Breaking Changes\r\n* Migrate from Gson to Jackson by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2595\r\n\r\n\r\n## Updates in the Spring Boot integration\r\nhttps:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j-spring\u002Freleases\u002Ftag\u002F1.0.0-beta2\r\n\r\n\r\n## Other Changes\r\n* Kotlin: Add support for StreamingChatLanguageModel.chat with flow response by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2520\r\n* Apply testing best practices to the project and future pull requests by @timtebeek in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2561\r\n* Add Kotlin streaming use case documentation, update test by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2525\r\n* Update google-ai-gemini.md by @chrischriscris in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2566\r\n* Removing amazon.titan-text-express-v1 and ai21.jamba-instruct-v1:0 in ITS by @tenpigs267 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2532\r\n* Fix deprecated methods in DefaultContentInjector by @minglu7 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2505\r\n* Adds a GitHub MCP server sample in the documentation by @agoncal in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2512\r\n* Promote logging of messages received over SSE to INFO by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2584\r\n* Fixing issue #2585: NullPointerException when using Groq streaming. by @ehsavoie in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2586\r\n* Bump com.azure:azure-ai-openai from 1.0.0-beta.13 to 1.0.0-beta.14 by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2619\r\n* Update rag.md. Fix spelling errors by @FutaoSmile in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2618\r\n* update AnthropicTokenUsage.toString to include the cache-related fields by @jbellis in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2628\r\n* Fix argument type for CoherenceEmbeddingStore.Builder.index by @aseovic in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2624\r\n* Fix for #2613, MCP Tool execution error handling is not correct by @jfdenise in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2615\r\n* docs: add a note on the required kotlin compiler arguments by @SerCeMan in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2652\r\n* Update MCP server and Quarkus version in integration tests by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2654\r\n* Kotlin extensions for DocumentLoader and DocumentParser by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2640\r\n* Streamline dependencies by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2639\r\n* Update azure-ai-inference from 1.0.0-beta.2 to 1.0.0-beta.4 by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2666\r\n* Make sure stream writes in MCP stdio transport are synchronized by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2667\r\n* Update Anthropic tests for error responses and parallelism by @kpavlov in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2670\r\n* Release 1.0.0-beta2 by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2689\r\n\r\n## New Contributors\r\n* @chrischriscris made their first contribution in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2566\r\n* @FutaoSmile made their first contribution in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2618\r\n* @jbellis made their first contribut","2025-03-13T14:28:47",{"id":263,"version":264,"summary_zh":265,"released_at":266},71710,"1.0.0-beta1","## Announcements\r\n- We are deprecating our old `ChatLanguageModel.generate(...)` and `StreamingChatLanguageModel.generate(...)` APIs in favour of the new `ChatLanguageModel.chat(...)` and `StreamingChatLanguageModel.chat(...)` APIs. We plan to fully migrate all of our chat model integrations to the new `chat()` API in the upcoming releases. If you have any concerns or comments, please [reach out](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fdiscussions\u002Fnew\u002Fchoose).\r\n- We have started [decoupling our modules from OkHttp client](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2413). Ollama is the first module that has been migrated as part of this release. When using the `langchain4j-ollama` dependency, `Ollama*Model`s will now use JDK's `HttpClient` by default. When using the `langchain4j-ollama-spring-boot-starter` dependency, `Ollama*Model`s will now use Spring's `RestClient`. This change reduces unnecessary dependencies, enables out-of-the-box observability and makes it easy to customize supported HTTP clients or integrate other HTTP clients. We plan to migrate a few other modules ([OpenAI](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002F2468), [Anthropic](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fissues\u002F2469), Mistral, Hugging Face, etc.) in the future releases. If you have any concerns or comments, please [reach out](https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fdiscussions\u002Fnew\u002Fchoose).\r\n\r\n\r\n## Notable Changes\r\n* OpenAI:\r\n  * Ensure O1\u002FO3 models are supported by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2450 and https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2500\r\n  * Support audio inputs by @sergioverde90 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2473\r\n* Azure OpenAI: support Structured Outputs in streaming mode by @jdubois in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2334\r\n* AWS Bedrock:\r\n  * Support Converse API by @tenpigs267 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2404\r\n  * Support Cohere embeddings by @LucaPizzarelliDev in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2319\r\n* Customizable HTTP clients by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2413\r\n* [Model Context Protocol](https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fmodel-context-protocol):\r\n  - Send the notifications\u002Finitialized message by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2360\r\n  - Ping responses and simplification of McpTransport by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2394\r\n  - Improvements for error handling by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2424\r\n  - Integration tests rework by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2425\r\n  - Support logging by @jmartisk in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2458\r\n* Introduce a strategy for handling tool name hallucinations by @mariofusco in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2460\r\n* MariaDB embedding store integration by @rusher in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2225\r\n* Jina: support late chunking in long-context embedding models by @ddobrin in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2301\r\n* Support `ContainsString` metadata filter by @florian-h05 in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2344\r\n* Centralise observability\u002Flistener logic for chat models by @dliubarskyi in https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2403\r\n\r\n\r\n## Breaking Changes\r\n* https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2450: Removed default values for `modelName` (`gpt-3.5-turbo`) and `temperature` (`0.7`) for `OpenAiChatModel` and `OpenAiStreamingChatModel`. Please set those values explicitly.\r\n* https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F1988: Converted `Document` and `Content` into interfaces. If you use `Document` or `Content` constructors, please either use the `Document.from(...)`\u002F`Content.from(...)` static factories, or use the `DefaultDocument`\u002F`DefaultContent` constructors.\r\n* https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2403:\r\n  * `OpenAiStreamingChatModel`: in case of errors that happen in the middle of streaming, partial response (everything that was streamed before the error occured) is not propagated into the `ChatModelListener.onError()` any more in order to simplify the design and implementation. Please reach out if you have any concerns about it.\r\n  * `OpenAiChatModel` and `OpenAiStreamingChatModel`: if the `maxCompletionTokens` property is set, it's value is now not propagated into the `ChatModelListener` via `ChatModelRequest.maxTokens()`.\r\n* https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2330: Exceptions due to content policy violation are now propagated from `AzureOpenAiImageModel`, `AzureOpenAiLanguageModel` and `AzureOpenAiStreamingLanguageModel`.\r\n* https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2436: \r\n* https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangchain4j\u002Fpull\u002F2492: Renamed `langchain4j-redis` maven artifact into `langchain4j-community-redis`.\r\n* https:\u002F\u002Fgithub.com\u002Flangchain4j\u002Flangc","2025-02-10T09:09:49"]