New Integrations
- Integration with Jlama by @tjake in #1379
- Integration with Workers AI (Cloudflare) by @clun in #1262
- Selenium document loader by @Wadimz in #1166
New Core Features
- Support custom POJOs as
@Tool
method parameters by @gs-snagaraj in #708 - Support optional
@Tool
method parameters by @Kugaaa in #1370 - Support configuring tools programmatically by @langchain4j in #1364
- Implement
EmbeddingModel.dimension()
by @Martin7-1 in #1250
Notable Changes
- Gemini updates by @glaforge in #1278
- Implement embedding removal methods for Milvus by @1402564807 in #1172
- Implement embedding removal methods for Elasticsearch by @zambrinf in #1198
- Implement embedding removal methods for InMemoryEmbeddingStore by @InAnYan in #1220
- Implement embedding removal methods for Weaviate by @kiratkumar47 in #1196
- Add ChatModelListener support for Azure OpenAI by @qiaoleiatms in #1305
- Add ChatModelListener support for ZhipuAI by @1402564807 in #1378
- Support metadata filtering for Azure AI Search by @fb33 in #1291
Notable Changes in langchain4j-embeddings
- Parallelize the embedding process by @langchain4j in langchain4j/langchain4j-embeddings#31
Notable Changes in langchain4j-spring
- New Baseline: Spring Boot 3 and Java 17 by @ThomasVitale in langchain4j/langchain4j-spring#24
- Spring Boot starter for Google Vertex AI Gemini by @zambrinf in langchain4j/langchain4j-spring#26
- Spring Boot starter for Elasticsearch by @Martin7-1 in langchain4j/langchain4j-spring#27
- Spring Boot starter for QianFan by @fanjia1024 in langchain4j/langchain4j-spring#19
- Spring Boot starter for Redis by @Martin7-1 in langchain4j/langchain4j-spring#2
- Spring Boot starter for Milvus by @Martin7-1 in langchain4j/langchain4j-spring#28
Breaking Changes
- Observability: Updated model listener API to be more integration friendly by @langchain4j in #1229
- Migrate Mistral AI from Gson to Jackson by @czelabueno in #1226
Other Changes
- fixes #827 by @glaforge in #1158
- Add image model by @1402564807 in #1152
- Add langchain4j-embeddings-bge-small-zh-v15 into bom by @jiangsier-xyz in #1154
- Qianfan Models support http proxy setting(#951) by @Yellow-- in #1159
- Update qianfan.md by @xiaoyu171222853 in #1149
- Support Blank Strings Tokenization by @jiangsier-xyz in #1150
- Support Embedding for Large Amounts of Texts by @jiangsier-xyz in #1142
- update qianfan.md by @xiaoyu171222853 in #1177
- Fix null pointer issue in SqlDatabaseContentRetriever when column value is null by @hongliangzhang07 in #1161
- Bump dashscope-sdk-java from 2.13.0 to 2.14.4 by @jiangsier-xyz in #1189
- Bump com.azure:azure-search-documents from 11.6.4 to 11.6.5 by @jdubois in #1195
- Update to the latest Azure OpenAI models by @agoncal in #1200
- Refactor Azure OpenAI models into enums by @agoncal in #1205
- Nightly build by @langchain4j in #1162
- Update SegmentBuilder.java by @yangyu6 in #1121
- baidu qianfan model support stop、system、maxOutputTokens params by @jacksonhu in #1233
- Fix @Usermessage does not work by @Wadimz in #740
- Allow HtmlTextExtractor to extract relative links from document by @Wadimz in #726
- Implementation of a lambda based streaming response handler by @glaforge in #1148
- Add a Tokenizer to Azure OpenAI by @agoncal in #1222
- 增加智谱model类型 by @bitloveCN in #1239
- Bugfix 1218 - MistralAi streaming blank by @czelabueno in #1243
- Add qianfan free model "ERNIE-Speed-128K" by @song27149 in #1253
- Feature #1210 Support Tongyi Qianwen(QwenChatModel) function call by @Kugaaa in #1254
- Bump com.azure:azure-storage-common from 12.25.0 to 12.25.1 by @jdubois in #1256
- Bump com.azure:azure-storage-blob from 12.26.0 to 12.26.1 by @jdubois in #1257
- Add Spring Boot artifacts to BOM by @agoncal in #1240
- Support ToolExecutionResultMessage on Qwen Models by @jiangsier-xyz in #1260
- Bump latest version of Docusaurus by @agoncal in #1241
- Bump braces from 3.0.2 to 3.0.3 in /docs by @dependabot in #1264
- Apply minor polish to intro.md by @geoand in #1268
- Add Qwen2 Models by @jiangsier-xyz in #1265
- AzureAiSearchEmbeddingStore with index creation by @jdubois in #1259
- Bump com.azure:azure-identity from 1.12.1 to 1.12.2 by @jdubois in #1273
- fix issue 940 - Anthropic API requires 1st message to be a UserMessage by @johnsosoka in #1197
- Fix deprecated methods by @alxkm in #1213
- Fix 1079 by @1402564807 in #1095
- Open up access to ServiceOutputParser#jsonStructure by @geoand in #1279
- [BUG] Nightly and release jobs should not be run on fork repositories #1302 by @Wadimz in #1303
- Issue 972: [FEATURE] Add name to dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever to improve logs by @alwa in #1007
- Fix issue 1281 WeaviateEmbeddingStore does not work if .metadataKeys(singletonList("id")) is not set. by @ehsavoie in #1309
- Qianfan: clear throw exception when call qianfan api has error code (… by @yao-wenbin in #1186
- [FEATURE] Metadata UUID Support by @humcqc in #1211
- Polish OpenSearch and Vearch IT by @eddumelendez in #1325
- Initialize the LangChain4j GitHub Bot config files by @gsmet in #1329
- Add github bot rule for Gemini by @langchain4j in #1334
- [Fix] fix VearchEmbeddingStoreIT by @Martin7-1 in #1336
- Do not run CI for files not impacting CI by @gsmet in #1338
- enable userAgentSuffix in azure open ai by @KaiqianYang in #1315
- feat(finishReason): add finishReason in Result by @fb33 in #1342
- [minor fix] optimize badges by @vesense in #1328
- Remove synchronized to avoid VT pinned threads in JDK 21 by @jbescos in #1343
- Fix 1266 Allow using streaming AI Service with tools without memory by @Kugaaa in #1280
- Bump com.azure:azure-identity from 1.12.2 to 1.13.0 by @jdubois in #1345
- fix(TokenUsage): Token can't be null in AI Response by @fb33 in #1295
- Typo by @agoncal in #1365
- Azure OpenAI: AzureOpenAiStreamingChatModel should work without Tokenizer (when using tools) by @langchain4j in #1354
- Fix AzureOpenAiStreamingChatModel constructor get or default new Tokenizer by @Kugaaa in #1282
- [BUG-1339] - removed trailing commas from tool execution request argu… by @cvalorereply in #1352
- Check for duplicate method names in a list of tool specifications by @agoncal in #1375
- Allows constructing a DefaultToolExecutor with a ToolRequest by @agoncal in #1381
- a way to merge multiple in-memory embedding stores by @langchain4j in #723
- Bump com.azure:azure-search-documents from 11.6.5 to 11.6.6 by @jdubois in #1387
- #527: automatically prepend "/" to resource name if it was not found, but it is in resources root by @langchain4j in #781
- Add docusaurus-lunr-search plugin by @InAnYan in #1221
- Adding Azure CLI script to deploy the Azure AI Search resources by @agoncal in #1396
- Add comments about Azure CLI usage by @agoncal in #1403
- Bump com.azure:azure-ai-openai from 1.0.0-beta.8 to 1.0.0-beta.10 by @jdubois in #1401
- Release 0.32.0 by @langchain4j in #1409
New Contributors
- @Yellow-- made their first contribution in #1159
- @xiaoyu171222853 made their first contribution in #1149
- @hongliangzhang07 made their first contribution in #1161
- @yangyu6 made their first contribution in #1121
- @jacksonhu made their first contribution in #1233
- @bitloveCN made their first contribution in #1239
- @song27149 made their first contribution in #1253
- @johnsosoka made their first contribution in #1197
- @zambrinf made their first contribution in #1198
- @alxkm made their first contribution in #1213
- @kiratkumar47 made their first contribution in #1196
- @alwa made their first contribution in #1007
- @yao-wenbin made their first contribution in #1186
- @gsmet made their first contribution in #1329
- @qiaoleiatms made their first contribution in #1305
- @gs-snagaraj made their first contribution in #708
- @KaiqianYang made their first contribution in #1315
- @fb33 made their first contribution in #1342
- @vesense made their first contribution in #1328
- @jbescos made their first contribution in #1343
- @cvalorereply made their first contribution in #1352
- @tjake made their first contribution in #1379
Full Changelog: 0.31.0...0.32.0