Skip to content

Commit 3586b97

Browse files
authored
feat: initial api & client implementation (#27)
* feat: idea for api design Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * refactor: Fix up build plugin & dependencies structure Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Support both Jackson 2 & Jackson 3 Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Support both Jackson 2 & Jackson 3 Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Support both Jackson 2 & Jackson 3 Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Support both Jackson 2 & Jackson 3 Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Support both Jackson 2 & Jackson 3 Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Convert all to POJOs Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Rename modules Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Fix build Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * feat: idea for api design Use lombok Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com> * refactor docling-api into docling-serve-api * refactor docling-api into docling-serve-api --------- Signed-off-by: Eric Deandrea <eric.deandrea@ibm.com>
1 parent 9108562 commit 3586b97

File tree

122 files changed

+3512
-2744
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+3512
-2744
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ jobs:
2828
- 21
2929
- 25
3030
module:
31-
- api
32-
- client
33-
- testing
34-
- testcontainers
31+
- docling-serve-api
32+
- docling-serve-client
33+
- docling-testing
34+
- docling-testcontainers
3535
name: jvm-build-test-${{ matrix.module }}-java${{ matrix.java }}
3636
steps:
3737
- uses: actions/checkout@v5
@@ -46,7 +46,7 @@ jobs:
4646
- name: build-test-${{ matrix.module }}-java${{ matrix.java }}
4747
run: |
4848
./gradlew --no-daemon -Pjava.version=${{ matrix.java }} \
49-
:docling-${{ matrix.module }}:clean :docling-${{ matrix.module }}:build
49+
:${{ matrix.module }}:clean :${{ matrix.module }}:build
5050
5151
docs:
5252
runs-on: ubuntu-latest
@@ -68,4 +68,4 @@ jobs:
6868
cache: gradle
6969

7070
- name: Generate documentation
71-
run: ./gradlew --console=plain clean :docling-docs:mkdocsBuild
71+
run: ./gradlew --console=plain clean :docs:mkdocsBuild

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
cache: gradle
4646

4747
- name: Generate documentation
48-
run: ./gradlew --console=plain clean :docling-docs:mkdocsBuild
48+
run: ./gradlew --console=plain clean :docs:mkdocsBuild
4949

5050
- name: Setup pages
5151
uses: actions/configure-pages@v5

README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,31 +26,32 @@ This is repository for Docling Java, a Java API for using [Docling](https://gith
2626

2727
This project aims to provide the following artifacts:
2828

29-
* [`docling-api`](api): The core API for interacting with Docling. Should be framework-agnostic.
30-
* [`docling-client`](client): A reference implementation of the [`docling-api`](api) using Java's [`HttpClient`](https://openjdk.org/groups/net/httpclient/intro.html) and [Jackson](https://github.com/FasterXML/jackson).
31-
* [`docling-testing`](testing): Utilities for testing Docling
32-
* [`docling-testcontainers`](testcontainers): A [Testcontainers module](https://testcontainers.com/) for running Docling in a Docker container.
29+
* [`docling-serve-api`](docling-serve/docling-serve-api): The core API for interacting with Docling. Should be framework-agnostic.
30+
* [`docling-serve-client`](docling-serve/docling-serve-client): A reference implementation of the [`docling-serve-api`](docling-serve/docling-serve-api) using Java's [`HttpClient`](https://openjdk.org/groups/net/httpclient/intro.html) and [Jackson](https://github.com/FasterXML/jackson) to connect to a [Docling Serve](https://github.com/docling-project/docling-serve) endpoint.
31+
* [`docling-testing`](docling-testing): Utilities for testing Docling integration.
32+
* [`docling-testcontainers`](docling-testcontainers): A [Testcontainers module](https://testcontainers.com/) for running Docling in a Docker container.
3333

3434
## Getting started
3535

3636
Use `DoclingApi.convertSource()` to convert individual documents. For example:
3737

3838
```java
39-
import ai.docling.api.DoclingApi;
40-
import ai.docling.api.convert.request.ConvertDocumentRequest;
41-
import ai.docling.api.convert.response.ConvertDocumentResponse;
42-
import ai.docling.client.DoclingClient;
43-
44-
DoclingApi doclingApi = DoclingClient.builder()
45-
.baseUrl("<location of docling server>")
39+
import ai.docling.api.serve.DoclingServeApi;
40+
import ai.docling.api.serve.convert.request.ConvertDocumentRequest;
41+
import ai.docling.api.serve.convert.request.source.HttpSource;
42+
import ai.docling.api.serve.convert.response.ConvertDocumentResponse;
43+
import ai.docling.client.serve.DoclingServeClientBuilderFactory;
44+
45+
DoclingServeApi doclingServeApi = DoclingServeClientBuilderFactory.newBuilder()
46+
.baseUrl("<location of docling serve instance>")
4647
.build();
4748

48-
ConvertDocumentRequest request = ConvertDocumentRequest.builder()
49-
.addHttpSources(URI.create("https://arxiv.org/pdf/2408.09869"))
49+
ConvertDocumentRequest request = new ConvertDocumentRequest()
50+
.withSources(List.of(new HttpSource().withUrl(URI.create("https://arxiv.org/pdf/2408.09869"))))
5051
.build();
5152

5253
ConvertDocumentResponse response = doclingApi.convertSource(request);
53-
System.out.println(response.document().markdownContent());
54+
System.out.println(response.getDocument().getMarkdownContent());
5455
```
5556

5657
More [usage information](https://docling-project.github.io/docling-java) are available in the docs.
@@ -59,7 +60,6 @@ More [usage information](https://docling-project.github.io/docling-java) are ava
5960

6061
Please feel free to connect with us using the [discussion section](https://github.com/docling-project/docling-java/discussions).
6162

62-
6363
## Contributing
6464

6565
Please read [Contributing to Docling Java](CONTRIBUTING.md) for details.

api/build.gradle.kts

Lines changed: 0 additions & 9 deletions
This file was deleted.

api/src/main/java/ai/docling/api/DoclingApi.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

api/src/main/java/ai/docling/api/convert/package-info.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

api/src/main/java/ai/docling/api/convert/request/ConvertDocumentRequest.java

Lines changed: 0 additions & 127 deletions
This file was deleted.

0 commit comments

Comments
 (0)