Add contribution documention

Fixes #296
This commit is contained in:
Mark Pollack
2024-02-22 22:36:46 -05:00
parent d9c2f4dae7
commit c8dea142b5
2 changed files with 37 additions and 0 deletions

View File

@@ -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[]]

View File

@@ -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.