Progresses #3916. ## Change Adds `AnthropicBatchChatModel`, an implementation of the core `BatchChatModel` interface (`submit` / `retrieve` / `cancel` / `list`) for the [Anthropic Message Batches API](https://docs.anthropic.com/en/docs/build-with-claude/batch-processing), which processes many chat requests asynchronously at 50% of the standard per-token price. Each request is built through the same `createAnthropicRequest` path as `AnthropicChatModel`, so per-request parameters (tools, thinking, caching, etc.) behave identically in a batch and in a single call. Results come back in arbitrary order and are re-sorted to submission order by generated `custom_id`s. Anthropic reports only `in_progress` / `canceling` / `ended` at the batch level, so `ended` maps to `BatchState.SUCCEEDED` and the per-request `succeeded` / `errored` / `canceled` / `expired` outcomes are surfaced as `BatchItemResult`s. The batch endpoints are added to the existing hand-rolled `AnthropicClient` as default methods that throw `UnsupportedFeatureException`, so existing `AnthropicClient` implementations keep compiling. No new dependency. Chat requests only. Covered by unit tests against a mock HTTP server (custom-id ordering, success/error/canceled mapping, the in-progress case that fetches no results until the batch ends, and pagination). The integration test `AnthropicBatchChatModelIT` (key-gated on `ANTHROPIC_API_KEY`) was also run against the live Batches API and passes, exercising submit / retrieve / list / cancel. ## General checklist - [X] There are no breaking changes (API, behaviour) - [X] I have added unit and/or integration tests for my change - [X] The tests cover both positive and negative cases - [X] I have manually run all the unit and integration tests in the module I have added/changed, and they are all green - [X] I have manually run all the unit and integration tests in the core and main modules, and they are all green - [X] I have added/updated the documentation - [ ] I have added an example in the examples repo (only for "big" features) - [ ] I have added/updated Spring Boot starter(s) (if applicable) --------- Co-authored-by: Dmytro Liubarskyi <ljubarskij@gmail.com> |
||
|---|---|---|
| .. | ||
| docs | ||
| src | ||
| static | ||
| .gitignore | ||
| .nvmrc | ||
| Makefile | ||
| README.md | ||
| babel.config.js | ||
| build.sh | ||
| docusaurus.config.js | ||
| package-lock.json | ||
| package.json | ||
| sidebars.js | ||
| start.bat | ||
| start.sh | ||
README.md
LangChain4j Documentation
Table of Contents
This is built using Docusaurus, a modern static docs/website generator.
Prerequisites
- Node.JS (20+)
If Node.js is managed by Node Version Manager (nvm), run:
nvm use
Installation
This command installs all the Node dependencies.
npm ci
Build
This command builds the deployable static artifacts (i.e., html, js, css, etc) under the build directory. This static content can then be deployed to GitHub pages or Vercel, etc.
npm run build
Local Development
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
npm run start