Releases: langchain4j/langchain4j
0.31.0
New Core Features
- [RAG] Web search engine as a retriever for RAG and as a tool by @czelabueno in #642
- [RAG] Option to return retrieved
Content
s/TextSegment
s when using AI Services by @KaisNeffati in #1015 - [RAG] (Experimental) SQL database content retriever (
SqlDatabaseContentRetriever
) by @langchain4j in #1056 - LLM Observability: Part 1 (OpenAI) by @langchain4j in #1058
New Integrations
- Cohere: embedding model by @stephanj in #1145
- Google: web search engine by @czelabueno in #641
- Tavily: web search engine by @kuraleta in #676
- Jina: embedding model by @lucifer-Hell in #997
- Jina: scoring (re-ranking) model by @One16-KS in #1053
- Azure Cosmos DB for NoSQL: embedding store by @aayush3011 in #1115
Notable Changes
- Azure OpenAI: migrate from functions to tools by @jdubois in #529
- Vertex AI Gemini: support system messages and parallel tools by @glaforge in #1141
- PgVector: implement metadata filtering (3 implementations: JSON, JSONB and separate columns) by @humcqc in #851
- PgVector: implement removal (all, by ID, by IDs, by filter) by @humcqc in #1113
- Weaviate: implement storing metadata and support gRPC by @ehsavoie in #800
- AWS Bedrock: add streaming model for Anthropic by @michalkozminski in #1006
- OpenAI: allow adding custom HTTP headers by @ProstoSanja in #858
Breaking Changes
- Anthropic: migrate from Gson to Jackson by @langchain4j in #1043
- Judge0: extract into a separate module by @anunnakian in #1051
- Judge0: change package name by @anunnakian in #1136
Other Changes
- fix Example with Spring Boot url typo in README by @Kugaaa in #959
- Create a Code of Conduct by @jdubois in #825
- Update to actions/checkout@v4 and actions/setup-java@v4 by @jdubois in #824
- fix ollama client response handle by @HashJang in #867
- Update to Azure Identity 1.12.0 by @jdubois in #912
- Fix #876 by @1402564807 in #925
- #904 Support advanced POJO/JSON extraction features by @remyohajinwa in #975
- Refactor the code to avoid duplication between integrations by @karesti in #845
- Bump com.azure:azure-storage-common from 12.24.3 to 12.24.4 by @jdubois in #1017
- Bump com.azure:azure-search-documents from 11.6.3 to 11.6.4 by @jdubois in #1016
- Bump dashscope-sdk-java from 2.10.1 to 2.13.0. by @jiangsier-xyz in #1024
- Bump com.azure:azure-storage-blob from 12.25.3 to 12.25.4 by @jdubois in #1018
- Upgrade to com.azure:azure-ai-openai 1.0.0-beta.8 by @jdubois in #991
- fix: introduce OpenAIAsyncClient for AzureOpenAiStreamingChatModel by @emivoz in #879
- [BUG] Introduce parser supplier support in FileSystemDocumentLoader by @KaisNeffati in #1031
- Bugfix/fix 0 retry times by @VaderKai in #981
- Ollama add OkhttpClient inject by @Martin7-1 in #911
- Bump com.azure:azure-identity from 1.12.0 to 1.12.1. by @jdubois in #1082
- feat : create llama3 model image by @rajadilipkolli in #1083
- Handle misconfigured tools by @anunnakian in #1054
- Fix #1124: preserve metadata during query compression by @langchain4j in #1133
- Adding missing -azure-ai-search and azure-cosmos-mongo-vcore to the BOM by @agoncal in #1127
- Upgrade com.azure:azure-storage-common from 12.24.4 to 12.25.0. by @jdubois in #1130
- Upgrade com.azure:azure-storage-blob from 12.25.4 to 12.26.0 by @jdubois in #1131
- Fix #935 by @langchain4j in #1119
- Instructions for adding base langchain4j dependency by @thesteve0 in #1138
- AzureAiSearchEmbeddingStore - add "indexName" to the builder by @jdubois in #1084
- add logs for OllamaClient by @HashJang in #662
- Support GTP-4o with Azure OpenAI by @jdubois in #1144
- gpt-o by @kuraleta in #1099
- New Mistral open mixtral8x22b model by @czelabueno in #978
- [Documentation] Mistral open mixtral8x22b docs by @czelabueno in #979
- Fix: #950 ZhipuAiChatModel does not support tools without parameters by @1402564807 in #999
New Contributors
- @HashJang made their first contribution in #867
- @ProstoSanja made their first contribution in #858
- @humcqc made their first contribution in #851
- @emivoz made their first contribution in #879
- @KaisNeffati made their first contribution in #1031
- @VaderKai made their first contribution in #981
- @ehsavoie made their first contribution in #800
- @anunnakian made their first contribution in #1054
- @thesteve0 made their first contribution in #1138
- @lucifer-Hell made their first contribution in #997
- @One16-KS made their first contribution in #1053
Full Changelog: 0.30.0...0.31.0
0.30.0
Highlights
- AI Services: Allow defining system message dynamically/programmatically by @mariofusco in #862
- AI Services: Support template variables in method parameter annotated with
@UserMessage
by @daixi98 in #930 - Anthropic: Support tools by @langchain4j in #897
Other Changes
- Add getters to AnthropicCreateMessageRequest and change scope of attributes by @edeandrea in #873
- refactor: redefine HuggingFaceModelName constant class by @vegetablest in #870
- refactor: Update AstraDbEmbeddingStoreIT.java by @eltociear in #863
- Simplifiable conditional expression by @qmonmert in #849
- Bump express from 4.18.2 to 4.19.2 in /docs by @dependabot in #831
- AI Services: testing, refactoring and documentation by @langchain4j in #933
- Add getters for AnthropicMessage by @geoand in #944
Bug Fixes
- Fix baseUrl misconfiguration in ZhipuAiClient builder by @Glarme in #872
- Removing incorrect end comma in jsonStructure for POJO extracting AI Services by @LizeRaes in #894
- Fix #880: RAG + TOOLS broken link by @remyohajinwa in #889
- Fix #913: FileSystemDocumentLoader: ignore empty/blank documents, improved error/warn messages by @langchain4j in #920
- Fix #921: AI Services: Do not fail streaming when TokenUsage is null by @langchain4j in #939
- Fix #601: Do not restrict Map key/value types when deserializing from JSON by @langchain4j in #918
New Contributors
- @Glarme made their first contribution in #872
- @vegetablest made their first contribution in #870
- @remyohajinwa made their first contribution in #889
- @mariofusco made their first contribution in #862
- @daixi98 made their first contribution in #930
Full Changelog: 0.29.1...0.30.0
0.29.1
What's Changed
- Make Mistral tool related enums public by @geoand in #838
- Improvements: Common part can be extracted removing branch by @qmonmert in #836
- Fix some typos by @qmonmert in #835
- Introduce SPI for creating Anthropic client by @edeandrea in #834
- Docu: RAG by @langchain4j in #846
- Removing classname before the json structure by @tenpigs267 in #844
- Fix #833: DocumentByParagraphSplitter regex JDK version adaptation by @Kugaaa in #843
- Fix #804 by @langchain4j in #856
New Contributors
Full Changelog: 0.29.0...0.29.1
0.29.0
Highlights
- Easy RAG by @langchain4j in #686
- Advanced RAG with Azure AI Search by @jdubois in #587
- Declarative AI Services for Spring Boot by @langchain4j in langchain4j/langchain4j-spring#12
- Tool/function support for Mistral AI by @czelabueno in #767
- New embedding store integration: Azure Cosmos DB for MongoDB by @aayush3011 in #691
- Advanced RAG with Neo4j knowledge graphs by @theawesomenayak in #741
- Anthropic: added support for streaming, native images and Spring Boot starter by @langchain4j in #750 and langchain4j/langchain4j-spring#11
- New in-process embedding model: BAAI/bge-small-en-v1.5 by @langchain4j in langchain4j/langchain4j-embeddings#17
Other Changes
-
Configure the OpenAI user-agent for LangChain4J by @jdubois in #733
-
Introduce SPI for creating Mistral AI Client by @geoand in #744
-
OpenAI: OpenAiTokenizer now has a default constructor which should be suitable for all current models by @langchain4j in #745
-
Use Testcontainers Ollama module by @eddumelendez in #702
-
Update usage of PostgreSQLContainer with pgvector/pgvector image by @eddumelendez in #703
-
Create MongoDBAtlasContainer by @eddumelendez in #713
-
Bumps com.azure:azure-identity from 1.11.3 to 1.11.4. by @jdubois in #762
-
Adds other embeddings dependencies to BOM by @agoncal in #779
-
Bump follow-redirects from 1.15.4 to 1.15.6 in /docs by @dependabot in #771
-
[DOCS] Update overview integration table with new integrations by @czelabueno in #766
-
updated openai4j version by @langchain4j in #780
-
Fix #748: qianfan model throw exception the length of messages must b⦠by @yangxb2010000 in #749
-
Azure AI Search: dimension shouldn't be mandatory for full text search by @jdubois in #796
-
DefaultRetrievalAugmentor: improve logging by @langchain4j in #798
-
Fix #770: do not invoke scoring model when there is no content ro rerank by @langchain4j in #797
-
Fix #756: Allow blank content in AiMessage, propagate failures into streaming handler (Ollama) by @langchain4j in #782
-
adds PGVector Store example by @rajadilipkolli in #792
-
[DOCS] MistralAI function calling docs by @czelabueno in #765
-
Bump com.azure:azure-storage-common from 12.24.2 to 12.24.3 by @jdubois in #809
-
Bump com.azure:azure-search-documents from 11.6.2 to 11.6.3. by @jdubois in #810
-
Bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /docs by @dependabot in #807
-
Fix #757: Gemini: allow SystemMessage(s), merge them into the first UserMessage, warn in logs by @langchain4j in #812
-
[FEATURE] #734 Add missing foundational Bedrock models by @bottlerocketjonny in #773
-
Add streaming API for Bedrock Anthropics by @michalkozminski in #679
-
Support relative paths without parent directory by @InAnYan in #817
-
Allow using AI Service with tools without memory by @langchain4j in #819
-
Add a variable to optionally update the index in AzureAISearchContentRetriver by @jdubois in #822
-
Bump com.azure:azure-storage-blob from 12.25.2 to 12.25.3 by @jdubois in #811
-
Release 0.29.0 by @langchain4j in #830
New Contributors
- @yangxb2010000 made their first contribution in #749
- @rajadilipkolli made their first contribution in #792
- @aayush3011 made their first contribution in #691
- @bottlerocketjonny made their first contribution in #773
- @michalkozminski made their first contribution in #679
- @InAnYan made their first contribution in #817
Full Changelog: 0.28.0...0.29.0
0.28.0
New Integrations
- Integration with Anthropic by @kuraleta in #727
- Integration with ZhipuAI by @1402564807 in #558
New Core Features
- EmbeddingStore (Metadata) Filter API by @langchain4j in #610
Notable Updates
- Gemini function calling support by @glaforge in #692
- Allow reading prompt (both system & user) message from a resource by @gkfirst8 in #527
- Make the Vertex AI embedding model adapt automatically the number of batch calls to make by @glaforge in #626
- Add type to array parameter in tool specification by @Wadimz in #624
- Implement missing parameters in Azure OpenAI by @jdubois in #616
- Upgrade langchain4j-opensearch to use latest version of opensearch-java client which enables Java 8 support by @Hrvojeee in #663
- FileSystemDocumentLoader: add possibility to load recursively and with glob/regex filtering by @langchain4j in #657
- Ability to specify the task type for calculating embeddings by @glaforge in #722
Other Updates
- fix for issue #633 adding instructions for additional artifact for Op⦠by @sshaaf in #634
- [Documentation] Add Mistralai docs by @czelabueno in #623
- Fill in some details of the Quarkus integration in the docs by @holly-cummins in #632
- Remove unneeded waiting strategy by @ilopezluna in #647
- Clarify the mandatory and optional Azure connection parameter by @agoncal in #636
- Adds a test to check that the API version is set to the latest if incorrect by @agoncal in #635
- Adding a script to deploy all the needed model to run the integration tests by @agoncal in #629
- Fixed snapshot release by @langchain4j in #650
- Bump org.postgresql:postgresql from 42.6.0 to 42.7.2 in /langchain4j-pgvector by @dependabot in #649
- Updates to Infinispan Dev09 by @karesti in #646
- Remove direct dependency to the langchain4j-open-ai by @jdubois in #656
- fix [BUG] QianFanChatModel Not Support SystemMessage by @lane12138 in #648
- Use Testcontainers Vector Database modules by @eddumelendez in #654
- Docs: Updated the redundant base route from
/docs
to/
by @amithkoujalgi in #655 - Add
langchain4j-embeddings-all-minilm-l6-v2-q
to the BOM by @boris-petrov in #579 - recursion error on nested POJO extractor by @tenpigs267 in #625
- Strengthen coverage for DefaultToolExecutor. by @crutcher in #590
- Bump azure-ai-openai from 1.0.0-beta.6 to 1.0.0-beta.7 by @jdubois in #700
- Delombok before JavaDoc. by @crutcher in #595
- use maven.compiler.release instead of source+target by @hboutemy in #617
- refactor: AssertJ best practices by @timtebeek in #622
- Bump com.azure:azure-search-documents from 11.6.1 to 11.6.2 by @jdubois in #664
- Bump azure-storage-common and azure-storage-blob versions by @jdubois in #677
- docu: added link to Guide to Choosing Quantization Methods and Infere⦠by @dliubars in #705
- Bump com.azure:azure-identity from 1.11.2 to 1.11.3 by @jdubois in #695
- Fix ChatMessage.text() method that is deprecated by @jdubois in #678
- Throw error if more than one retriever/contentRetriever/retrievalAugm⦠by @jmartisk in #710
- Fix #602: Enum values (names) should be sent to the LLM in original case by @langchain4j in #669
- added missing Javadoc for deprecated methods by @langchain4j in #668
- Update documentation on Vertex AI by @OTR in #709
- Add option to specify num_ctx parameter in for ollama. Fixes #682 by @mmanrai in #683
- Update README.md by @eltociear in #711
- Fix #585: Automatically evict following orphan ToolExecutionResultMessage(s) after evicting AiMessage containing ToolExecutionRequest(s) by @langchain4j in #666
- fix #670 by @langchain4j in #716
- fix #715: Improve Milvus integration performance: load collection in memory only when creating MilvusEmbeddingStore by @langchain4j in #717
- update okhttp version to 4.12.0 by @langchain4j in #724
- Fix UserMessage example in AiServices by @theawesomenayak in #719
- Solve the problem of occasional incomplete response content. by @jiangsier-xyz in #699
- Fix the check whether retriever is already set by @jmartisk in #728
New Contributors
- @sshaaf made their first contribution in #634
- @holly-cummins made their first contribution in #632
- @gkfirst8 made their first contribution in #527
- @Wadimz made their first contribution in #624
- @boris-petrov made their first contribution in #579
- @timtebeek made their first contribution in #622
- @Hrvojeee made their first contribution in #663
- @dliubars made their first contribution in #705
- @jmartisk made their first contribution in #710
- @OTR made their first contribution in #709
- @mmanrai made their first contribution in #683
- @eltociear made their first contribution in #711
- @theawesomenayak made their first contribution in #719
- @1402564807 made their first contribution in #558
Full Changelog: 0.27.1...0.28.0
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
LanguageModelQueryRouter
by @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
verify
stage. 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-ai
module was completely reworked (using official Azure SDK now), there might be breaking changes when constructing models in the builderslangchain4j-spring-boot-starter
module is replaced by separatelangchain4j-*-spring-boot-starter
modules 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,
TextDocumentParser
stays inlangchain4j
module - Amazon S3 loaders migrated to langchain4j-document-loader-amazon-s3 module
EmbeddingStoreIngestor
moved 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