Skip to content

Commit d1bac75

Browse files
committed
Docs: Add Chat Model comparision page
1 parent e970c26 commit d1bac75

File tree

10 files changed

+99
-7
lines changed

10 files changed

+99
-7
lines changed

spring-ai-docs/src/main/antora/modules/ROOT/images/no.svg

Lines changed: 23 additions & 0 deletions
Loading
Lines changed: 2 additions & 0 deletions
Loading

spring-ai-docs/src/main/antora/modules/ROOT/nav.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
** xref:api/advisors.adoc[Advisors]
66
* xref:api/index.adoc[AI Models]
77
** xref:api/chatmodel.adoc[Chat Models]
8+
*** xref:api/chat/comparison.adoc[Chat Models Comparison]
89
*** xref:api/bedrock-chat.adoc[Amazon Bedrock]
910
**** xref:api/chat/bedrock/bedrock-anthropic3.adoc[Anthropic3]
1011
**** xref:api/chat/bedrock/bedrock-anthropic.adoc[Anthropic2]
@@ -91,7 +92,7 @@
9192
** xref:api/vectordbs/typesense.adoc[]
9293
** xref:api/vectordbs/weaviate.adoc[]
9394
94-
* xref:observabilty/index.adoc[]
95+
* xref:observability/index.adoc[]
9596
* xref:api/prompt.adoc[]
9697
* xref:api/structured-output-converter.adoc[Structured Output]
9798
* xref:api/functions.adoc[Function Calling]

spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/anthropic-chat.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man
5858

5959
The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the Anthropic chat model.
6060

61-
[cols="3,5,1"]
61+
[cols="3,5,1", stripes=even]
6262
|====
6363
| Property | Description | Default
6464

@@ -77,7 +77,7 @@ NOTE: currently the retry policies are not applicable for the streaming API.
7777

7878
The prefix `spring.ai.anthropic` is used as the property prefix that lets you connect to Anthropic.
7979

80-
[cols="3,5,1"]
80+
[cols="3,5,1", stripes=even]
8181
|====
8282
| Property | Description | Default
8383

@@ -92,7 +92,7 @@ the output tokens limit is increased from `4096` to `8192` tokens (for claude-3-
9292

9393
The prefix `spring.ai.anthropic.chat` is the property prefix that lets you configure the chat model implementation for Anthropic.
9494

95-
[cols="3,5,1"]
95+
[cols="3,5,1", stripes=even]
9696
|====
9797
| Property | Description | Default
9898

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
= Chat Models Comparison
2+
3+
// :YES: image::yes.svg[width=16]
4+
// :NO: image::no.svg[width=12]
5+
// [%autowidth]
6+
7+
This table compares various Chat Models supported by Spring AI, detailing their capabilities:
8+
9+
- Multimodality: The types of input the model can process (e.g., text, image, audio, video).
10+
- Tools/Functions: Whether the model supports function calling or tool use.
11+
- Streaming: If the model offers streaming responses.
12+
- Retry: Support for retry mechanisms.
13+
- Observability: Features for monitoring and debugging.
14+
- Built-in JSON: Native support for JSON output.
15+
- Local deployment: Whether the model can be run locally.
16+
- OpenAI API Compatibility: If the model is compatible with OpenAI's API.
17+
18+
[cols="10,5,1,1,1,1,1,1,1", stripes=even]
19+
|====
20+
^| Provider ^a| xref:api/multimodality.adoc[Multimodality] ^a| xref:api/functions.adoc[Tools/Functions] ^| Streaming ^| Retry ^| xref:observability/index.adoc[Observability] ^a| xref:api/structured-output-converter.adoc#_built_in_json_mode[Built-in JSON] ^| Local ^| OpenAI API Compatibility
21+
22+
| xref::api/chat/anthropic-chat.adoc[Anthropic Claude] | text, image ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
23+
24+
| xref::api/chat/azure-openai-chat.adoc[Azure OpenAI] | text, image ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16]
25+
26+
| xref::api/chat/vertexai-gemini-chat.adoc[Google VertexAI Gemini] | text, image, audio, video ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16]
27+
28+
| xref::api/chat/vertexai-palm2-chat.adoc[Google VertexAI PaML2] | text ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
29+
30+
| xref::api/chat/groq-chat.adoc[Groq (OpenAI-proxy)] | text, image ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16]
31+
32+
| xref::api/chat/huggingface.adoc[HuggingFace] | text ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
33+
34+
| xref::api/chat/mistralai-chat.adoc[Mistral AI] | text ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16]
35+
36+
| xref::api/chat/minimax-chat.adoc[MiniMax] | text ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a|
37+
38+
| xref::api/chat/minimax-chat.adoc[Moonshot AI] | text ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a|
39+
40+
| xref::api/chat/nvidia-chat.adoc[NVIDIA (OpenAI-proxy)] | text, image ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16]
41+
42+
| xref::api/chat/ollama-chat.adoc[Ollama] | text, image ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16]
43+
44+
| xref::api/chat/openai-chat.adoc[OpenAI] | text, image ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16]
45+
46+
| xref::api/chat/qianfan-chat.adoc[QianFan] | text ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
47+
48+
| xref::api/chat/zhipuai-chat.adoc[ZhiPu AI] | text ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
49+
50+
| xref::api/chat/watsonx-ai-chat.adoc[Watsonx.AI] | text ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
51+
52+
| xref::api/chat/bedrock/bedrock-cohere.adoc[Amazon Bedrock/Cohere] | text ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
53+
54+
| xref::api/chat/bedrock/bedrock-jurassic2.adoc[Amazon Bedrock/Jurassic] | text ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
55+
56+
| xref::api/chat/bedrock/bedrock-llama.adoc[Amazon Bedrock/Llama] | text ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
57+
58+
| xref::api/chat/bedrock/bedrock-titan.adoc[Amazon Bedrock/Titan] | text ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
59+
60+
| xref::api/chat/bedrock/bedrock-anthropic3.adoc[Amazon Bedrock/Anthropic 3] | text ^a| image::no.svg[width=12] ^a| image::yes.svg[width=16] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12] ^a| image::no.svg[width=12]
61+
62+
|====
63+

spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/minimax-chat.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<= MiniMax Chat
1+
= MiniMax Chat
22

33
Spring AI supports the various AI language models from MiniMax. You can interact with MiniMax language models and create a multilingual conversational assistant based on MiniMax models.
44

spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ public class CustomerSupportAssistant {
488488
The `SimpleLoggerAdvisor` is an advisor that logs the `request` and `response` data of the `ChatClient`.
489489
This can be useful for debugging and monitoring your AI interactions.
490490

491-
TIP: Spring AI supports observability for LLM and vector store interactions. Refer to the xref:observabilty/index.adoc[Observability] guide for more information.
491+
TIP: Spring AI supports observability for LLM and vector store interactions. Refer to the xref:observability/index.adoc[Observability] guide for more information.
492492

493493
To enable logging, add the `SimpleLoggerAdvisor` to the advisor chain when creating your ChatClient.
494494
It's recommended to add it toward the end of the chain:

spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatmodel.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ This design aligns with Spring's philosophy of modularity and interchangeability
1111
Also with the help of companion classes like `Prompt` for input encapsulation and `ChatResponse` for output handling, the Chat Model API unifies the communication with AI Models.
1212
It manages the complexity of request preparation and response parsing, offering a direct and simplified API interaction.
1313

14+
You can find more about available implementations in the xref:api/chatmodel.adoc#_available_implementations[Available Implementations] section as well as detailed comparison in the xref:api/chat/comparison.adoc[Chat Models Comparison] section.
15+
1416
== API Overview
1517

1618
This section provides a guide to the Spring AI Chat Model API interface and associated classes.

spring-ai-docs/src/main/antora/modules/ROOT/pages/index.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ The project was founded with the belief that the next wave of Generative AI appl
99

1010
NOTE: Spring AI addresses the fundamental challenge of AI integration: `Connecting your enterprise Data and APIs with the AI Models`.
1111

12-
image::spring-ai-integration-diagram2.svg[Integration Problem, width=500, align="center"]
12+
// image::spring-ai-integration-diagram2.svg[Integration Problem, width=500, align="center"]
13+
image::spring-ai-integration-diagram2.svg[Interactive,500,opts=interactive]
1314

1415
Spring AI provides abstractions that serve as the foundation for developing AI applications.
1516
These abstractions have multiple implementations, enabling easy component swapping with minimal code changes.

0 commit comments

Comments
 (0)