Releases: langchain4j/langchain4j
Releases · langchain4j/langchain4j
0.27.1
What's Changed
- #575 fix the case when POJO has final fields by @langchain4j in #620
Full Changelog: 0.27.0...0.27.1
0.27.0
New Integrations
Embedding Stores
- Integration with Infinispan by @karesti in #552
- Integration with MongoDB by @Martin7-1 in #535
Embedding Models
- NomicEmbeddingModel by @langchain4j in #592
Notable Updates
- Reworked support of AstraDB and Cassandra by @clun in #548
- Nested POJO extract by @tenpigs267 in #575
- Azure OpenAI: added support for responseFormat and other parameters by @jdubois in #605
- #588: Implemented a fallback strategy for
LanguageModelQueryRouterby @langchain4j in #593
Other Updates
- Beautifying Maven output by @agoncal in #572
- [ci] publish snapshots with every commit to main by @Shastick in #16
- Docs updates by @amithkoujalgi in #599
- [Docs] Summary table of the integration capabilities by @czelabueno in #609
- Adding disabled implementation of all model interfaces by @edeandrea in #549
- Update language models and tests for Azure OpenAI by @jdubois in #573
- langchain/d.l.data.document test coverage. by @crutcher in #577
- IllegalConfigurationException coverage tests. by @crutcher in #578
- set default lifecycle plugins versions by @hboutemy in #569
- langchain4j/memory.chat test coverage. by @crutcher in #580
- langchain4j/model.output coverage tests. by @crutcher in #581
- Add IT for Azure Blob Storage with Testcontainers by @eddumelendez in #591
- Upgrade com.azure:azure-identity from 1.11.1 to 1.11.2 by @jdubois in #607
- Azure OpenAI : Configure the langchain4j user-agent for reporting by @jdubois in #611
New Contributors
- @agoncal made their first contribution in #572
- @karesti made their first contribution in #552
- @tenpigs267 made their first contribution in #575
Full Changelog: 0.26.1...0.27.0
0.26.1
New Core Features:
- Advanced RAG by @langchain4j in #538
- Multimodality: support image inputs by @langchain4j in #428
- ConversationalRetrievalChain: adding metadata in the prompt by @mateusscheper in #431
New Integrations:
Model providers:
- Mistral AI by @czelabueno in #514
- Wenxin Qianfan by @lane12138 in #499
- Cohere Rerank by @langchain4j in #539
Embedding Stores:
Document Loaders:
Notable Updates:
- OpenAI: support image inputs by @langchain4j in #428
- OpenAI: support shortened embeddings by @langchain4j in #555
- OpenAI: support native images by @langchain4j in #497
- Vertex AI Gemini: support image inputs by @langchain4j in #428
- Vertex AI: image generation by @glaforge in #456
- Ollama: support image inputs by @bidek in #462
- Ollama: list available models by @bidek in #533
- Ollama: Spring Boot starter by @langchain4j in langchain4j/langchain4j-spring#3
- Qwen: support image inputs by @jiangsier-xyz in #537
Technical Improvements and Bugfixes:
- Pre-built ollama models by @langchain4j in #419
- Image tests and docs. by @crutcher in #401
- Add documentation and tests for Document class by @crutcher in #376
- Add DocumentSplitterTest class by @crutcher in #378
- Add DocumentLoaderTest class and update DocumentLoader by @crutcher in #379
- Add DocumentTransformerTest class. by @crutcher in #380
- Add ChatLanguageModelTest class. by @crutcher in #381
- Add Javadoc to TokenCountEstimator and create TokenCountEstimatorTest by @crutcher in #382
- Retriever Interface Add a default method with memoryId by @leojames in #358
- Tests and docs for ImageModel api. by @crutcher in #383
- Tests and docs for JsonSchemaProperty api. by @crutcher in #387
- ToolExecutionRequest docs and tests. by @crutcher in #388
- Tests and docs for ToolParameters by @crutcher in #389
- Implement Metadata class tests and enhance documentation by @crutcher in #377
- ToolSpecification and ToolSpecifications docs and tests. by @crutcher in #390
- TextClassifier tests. by @crutcher in #391
- CosineSimilarity protection from zeros; full coverage tests. by @crutcher in #392
- InMemoryChatMemoryStore, tests by @crutcher in #393
- EmbeddingMatch tests by @crutcher in #394
- Utils test coverage and docs. by @crutcher in #396
- Exceptions utility docs and tests. by @crutcher in #397
- TokenUsage docs and tests. by @crutcher in #398
- Embedding tests and docs. by @crutcher in #399
- ChatMessage, UserMessage, AiMessage tests by @crutcher in #403
- Fix another Neo4jEmbeddingStoreTest error by @vga91 in #441
- Fix function without params for Azure Open AI by @kumlien in #443
- Added skeleton structure for docs by @amithkoujalgi in #458
- Full unittest coverage and docs for ValidationUtils. by @crutcher in #445
- Full test coverage of EmbeddingMatch. by @crutcher in #446
- Ensure that Redis pipelines are closed after usage by @gdarmont in #449
- Add support to Anthropic Claude v2.1 by @sergioa in #450
- Refactor ServiceHelper and add tests and docs. by @crutcher in #452
- Docs and default-case tests for Retriever. by @crutcher in #453
- Restructure ChatMessageType to structured enums. by @crutcher in #457
- set up documentation structure by @LizeRaes in #473
- Tests and Docs for default EmbeddingModel methods. by @crutcher in #454
- Test coverage for EmbeddingStore defaults. by @crutcher in #465
- Coverage test for Image.Builder.url(String) by @crutcher in #466
- GsonJsonCodec tests by @crutcher in #467
- TextSegment and TextSegmentTransformer tests. by @crutcher in #468
- Fix #460: no overlap when previous segment is shorter than maxOverlapSize by @langchain4j in #464
- UserMessage tests. by @crutcher in #469
- EmbeddingStoreIngestor test coverage. by @crutcher in #470
- Prompt test coverage. by @crutcher in #471
- Basic test for StreamingResponseHandler. by @crutcher in #475
- Utils.readBytes() test. by @crutcher in #472
- Add jacoco coverage targets to langchain4j-core, attached to the
verifystage. by @crutcher in #474 - Tokenizer default methods tests. by @crutcher in #476
- ContentType migrated to structured enum. by @crutcher in #477
- Move RetryUtilsTest to langchain4j-core with RetryUtils. by @crutcher in #478
- Bump follow-redirects from 1.15.3 to 1.15.4 in /docs by @dependabot in #480
- Fix #444: Added missing GraalVM metadata for Gson and excluded commons-logging by @langchain4j in #482
- Fix #451: SentenceDetectorME is not thread-safe by @langchain4j in #481
- Document VertexAI authentication by @langchain4j in #463
- Add IntelliJ icon by @geoand in #495
- Updated Docs by @amithkoujalgi in #500
- Docu logos and domain by @amithkoujalgi in #503
- action to build and publish javadoc to pages by @LizeRaes in #504
- Flesh out RetryUtils with a policy mechanism. by @crutcher in #484
- ServiceHelper.{loadService, loadFactoryService}() by @crutcher in #485
- SystemMessage tests. by @crutcher in #486
- ImageContent tests. by @crutcher in #487
- ToolExecutionResultMessage tests. by @crutcher in #488
- Make PromptTemplateFactory.Input a FunctionalInterface. by @crutcher in #489
- LanguageModel and StreamingLanguageModel tests. by @crutcher in #491
- Moderation tests. by @crutcher in #492
- Response tests. by @crutcher in #493
- language.TokenCountEstimator tests. by @crutcher in #494
- StructuredPrompt refactor and tests. by @crutcher in #490
- Tighten coverage ratchet. by @crutcher in #483
- Unify langchang4j-core coverage to ...
0.25.0
What's Changed
- Update README.md by @aashish13 in #281
- Cleanup Testcontainers deps by @eddumelendez in #292
- Feature/elastic search restclient constructor by @aphethean1 in #291
- build most modules with jdk 8 by @langchain4j in #295
- Graal Integration for Local JS and Python Execution by @janglada in #263
- graal: cleanup by @langchain4j in #297
- Fix a token usage statistical issue in DefaultAiServices by @jiangsier-xyz in #280
- pass OpenSearchClient directly to OpenSearchEmbeddingStore by @sboeckelmann in #309
- #299 Add null check for ToolsParameters in tokenCountEstimation by @kumlien in #303
- Add note about Quarkus specific examples by @geoand in #329
- Fix PG Vector Index creation statement incorrect by @pascalconfluent in #302
- Use Testcontainers annotation by @eddumelendez in #310
- Use ElasticsearchContainer in Elasticsearch IT by @eddumelendez in #312
- Use Testcontainers in Chroma IT by @eddumelendez in #313
- Enable Milvus IT by using Testcontainers by @eddumelendez in #314
- Use Testcontainers in Ollama IT by @eddumelendez in #315
- Enhanced QWen Model Features and Tokenizer Implementation by @jiangsier-xyz in #317
- Use Testcontainers to run LocalAI by @eddumelendez in #331
- enable langchain4j-graal build in workflow by @shalk in #333
- Use Testcontainers for Weaviate IT by @eddumelendez in #332
- Migration of the AzureOpenAiChatModel to use the Azure OpenAI SDK by @jdubois in #328
- OpenAI: Support parallel tool calling by @langchain4j in #338
- spring-boot-starter add azure openai support by @QuantumBear in #339
- make OpenAI tokenizer more precise by @langchain4j in #346
- Support Java 21 by @jdubois in #336
- Bump org.json:json from 20230618 to 20231013 in /langchain4j-cassandra by @dependabot in #341
- Add Dev Container support by @jdubois in #337
- Correctly configure Maven wrapper by @jdubois in #348
- fix the thread safety issue in InMemoryEmbeddingStore. by @lexluo09 in #351
- Remove quarkus module by @geoand in #345
- Migrate to the new Azure OpenAI 1.0.0-beta.6 SDK by @jdubois in #356
- Update GitHub Actions versions by @jdubois in #357
- Extract document loaders and parsers into separate modules by @langchain4j in #354
- Allow for specifying the organization id in the configuration by @edeandrea in #364
- Fixes #241: Added support for Neo4j Vector Index by @vga91 in #282
- feat: add OllamaChatModel and its corresponding integration test by @fintanmm in #323
- OpenAI DALL·E support by @Heezer in #298
- bumped version to 0.25.0-SNAPSHOT by @langchain4j in #369
- Removed generic AiMessage ctor by @langchain4j in #370
- Fix Neo4jEmbeddingStoreTest error by @vga91 in #368
- Integration with ChatGLM by @Martin7-1 in #360
- Add image generation support with Azure OpenAI by @jdubois in #359
- #365: handle enum arguments in tools properly by @langchain4j in #367
- Add support for "stop" in Azure OpenAI by @jdubois in #372
- Azure OpenAI: add tests for GPT 4 by @jdubois in #371
- Extracted OpenAI Spring Boot starter into a separate module by @langchain4j in #361
- Update Ollama by @langchain4j in #373
- OpenAI: added missing parameters (logit_bias, response_format, seed, user) by @langchain4j in #374
- Support Google Vertex AI Gemini by @langchain4j in #402
- rename langchain4j-graal module by @langchain4j in #405
- Add support for the 3 authentication methods to Azure OpenAI by @jdubois in #375
- fix pinecone QueryRequest usage, upgrade from 0.2.1 to 0.6.0 by @shalk in #406
- fixed pinecone client CVEs by @langchain4j in #409
- Replace Mustache templates with simple implementation to reduce transitive dependencies by @langchain4j in #408
- 385 Metadata takes ownership of its construction Map<String, String> by @langchain4j in #412
- Metadata: deprecated potentially confusing add/from/metadata(String, Object) methods by @langchain4j in #413
- Fixed (#264) by @langchain4j in #414
New Contributors
- @aashish13 made their first contribution in #281
- @eddumelendez made their first contribution in #292
- @aphethean1 made their first contribution in #291
- @janglada made their first contribution in #263
- @sboeckelmann made their first contribution in #309
- @kumlien made their first contribution in #303
- @shalk made their first contribution in #333
- @jdubois made their first contribution in #328
- @QuantumBear made their first contribution in #339
- @dependabot made their first contribution in #341
- @lexluo09 made their first contribution in #351
- @edeandrea made their first contribution in #364
- @vga91 made their first contribution in #282
- @fintanmm made their first contribution in #323
Breaking Changes
langchain4j-azure-open-aimodule was completely reworked (using official Azure SDK now), there might be breaking changes when constructing models in the builderslangchain4j-spring-boot-startermodule is replaced by separatelangchain4j-*-spring-boot-startermodules for each provider, e.g.langchain4j-open-ai-spring-boot-starter, all available starters are here- Spring Boot properties changed:
langchain4j.{model type}.{provider}.{property}->langchain4j.{provider}.{model type}.{property} dev.langchain4j.data.document.FileSystemDocumentLoader->dev.langchain4j.data.document.loader.FileSystemDocumentLoader- Document parsers (PDF, MS Office) were extracted into their own modules,
TextDocumentParserstays inlangchain4jmodule - Amazon S3 loaders migrated to langchain4j-document-loader-amazon-s3 module
EmbeddingStoreIngestormoved intolangchain4j-core, keeping the same package name- potential problems: mustache templates were replaced with simple implementation, but should be backwards compatible unless you used advanced features. You can still plug in mustache using SPI.
Full Changelog: 0.24.0...0.25.0
0.24.0
- Integration with OpenSearch by @riferrei
- Vertex AI: embed in batches of 5
- Support of database name configuration for Milvus by @Heezer
- OpenAI: added option to setup a custom Tokenizer, increased default timeouts to 60 seconds
- Azure OpenAI: increased default timeouts to 60 seconds
- Add support for custom base url for OpenAI model in Spring Boot starter by @marlukcz
- Make some aspects of the project swappable by external integrations by @geoand
- In case a model like Vertex does not have a ToolSpecification do not use the generate method expecting one by @SimonVerhoeven
- Include metadata for custom Spring Boot properties by @ThomasVitale
- Add support for loading documents from S3 by @jmgang
- Add BOM to manage artifacts by @Martin7-1
- Integration with PGVector by @kevin-wu-os
- Add support for autocompletion of Boot configuration properties by @jkuipers
- Integration with Ollama by @Martin7-1
- Make AiServices swappable by external implementations by @geoand
- Introduce SPI for HuggingFace by @geoand
- Allow using another metadata key than text_segment in Pinecone by @Artur-
- Typo fix in VertexAI support by @Heezer
- Integration with Amazon Bedrock by @pascalconfluent
- Adding Memory Id to Tool Method Call by @benedictstrube
0.23.0
- Updates to models API: return
Response<T>instead ofT.Response<T>contains token usage and finish reason. - All model and embedding store integrations now live in their own modules
- Integration with Vespa by @Heezer
- Integration with Elasticsearch by @Martin7-1
- Integration with Redis by @Martin7-1
- Integration with Milvus by @IuriiKoval
- Integration with Astra DB and Cassandra by @clun
- Added support for overlap in document splitters
- Some bugfixes and smaller improvements
0.22.0
- Integration with Google Vertex AI by @kuraleta
- Offline text classification with embeddings
- Reworked document splitters
InMemoryEmbeddingStorecan now be easily persisted and restored, seeserializeToJson(),serializeToFile(),fromJson()andfromFile()- Added option to easily extract metadata in
HtmlTextExtractor - Fixed #126 and #127
0.21.0
- Integration with Azure OpenAI by @kuraleta
- Integration with Qwen models (DashScope) by @jiangsier-xyz
- Integration with Chroma by @kuraleta
- Support for persistent ChatMemory
0.20.0
0.19.0
- Weaviate integration by @Heezer
- DOC, XLS and PPT loaders by @oognuyh
- Separate chat memory for each user
- Custom in-process embedding models
- Added lots of Javadoc
- Added
DocumentTransformerand it's first implementation:HtmlTextExtractor OpenAiTokenizeris now more precise and can estimate tokens for tools/functions- Added option to force tool/function execution in
OpenAiChatModelandOpenAiStreamingChatModel - Some bugfixes and improvements