@@ -42,5 +42,6 @@
|
||||
** xref:api/etl-pipeline.adoc[]
|
||||
** xref:api/testing.adoc[]
|
||||
** xref:api/generic-model.adoc[]
|
||||
* xref:contribution-guidelines.adoc[Contribution Guidelines]
|
||||
* Appendices
|
||||
** xref:upgrade-notes.adoc[]]
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
[[contribution-guidelines]]
|
||||
= Contribution Guidelines
|
||||
|
||||
== Contributing a New AI Model Implementation
|
||||
|
||||
This section outlines the steps for contributing a new AI model implementation.
|
||||
AI models vary significantly, with diverse inputs and outputs -- from chat models that
|
||||
translate text input into text output, to text-to-image models that generate images
|
||||
from text descriptions.
|
||||
Complex models may even handle multiple types of input and output, such as combining text,
|
||||
images, and videos to produce mixed media output.
|
||||
|
||||
To contribute a new model, adhere to the following steps:
|
||||
|
||||
. *Create a Low-Level Client API Class*: If no existing Java client suits the AI model,
|
||||
you'll need to develop a low-level client API class. This often involves utilizing the
|
||||
`RestClient` class from the Spring Framework, similar to the `OpenAiApi` class.
|
||||
|
||||
. *Create a ModelClient implementation*
|
||||
Ensure your client conforms to the link:https://docs.spring.io/spring-ai/reference/api/clients/generic-model.html[Generic Model API].
|
||||
Use existing request and response classes if your model's inputs and outputs are supported.
|
||||
If not, create new classes for the Generic Model API and establish a new Java package.
|
||||
|
||||
. *Implement Auto-Configuration and a Spring Boot Starter*: This step involves creating the
|
||||
necessary auto-configuration and Spring Boot Starter to easily instantiate the new model with
|
||||
Spring Boot applications.
|
||||
|
||||
. *Write Tests*: All new classes should be accompanied by comprehensive tests.
|
||||
Existing tests can serve as a useful reference for structuring and implementing your tests.
|
||||
|
||||
. *Document Your Contribution*: Ensure your documentation follows the existing format,
|
||||
For an example of the suggested structure and formatting, refer to the
|
||||
link:https://docs.spring.io/spring-ai/reference/api/clients/openai-chat.html[Open AI Chat documentation].
|
||||
|
||||
By following these guidelines, we can greatly expand the framework's range of supported models
|
||||
while following a common implementation and documentation pattern.
|
||||
Reference in New Issue
Block a user