This project demonstrates how to integrate IBM's Watsonx AI models into a Spring Boot application. The application provides endpoints for generating chat responses and text embeddings using the Watsonx AI chat and embedding models. As a contributor to the Spring AI module, I have implemented these integrations to enable seamless interactions with Watsonx AI.
- Chat API: Get responses from the Watsonx AI chat model based on input text.
- Streaming Chat API: Stream responses from the Watsonx AI chat model in real-time.
- Embedding API: Get text embeddings using the Watsonx AI embedding model.
- Embedding models: CLICK HERE
- Chat models: CLICK HERE
- Clone the Repository
git clone https://github.com/PabloSanchi/IBM-WatsonxAI-Spring-AI-Example
- Change Directory
cd IBM-WatsonxAI-Spring-AI-Example
- Configure Watsonx AI: Ensure you have your Watsonx AI credentials set up in your application properties or environment variables.
Example shcema:
spring:
ai:
watsonx:
ai:
base-url: ${WATSONX_BASE_URL}
stream-endpoint: ${WATSONX_STREAM_ENDPOINT}
text-endpoint: ${WATSONX_TEXT_ENDPOINT}
embedding-endpoint: ${WATSONX_EMBEDDING_ENDPOINT}
project-id: ${WATSONX_PROJECT_ID}
iam-token: ${WATSONX_IAM_TOKEN}
chat:
options:
model: ${WATSONX_CHAT_MODEL}
embedding:
options:
model: ${WATSONX_EMBEDDING_MODEL}
springdoc:
swagger-ui:
path: /swagger.html
- Run the APP
- Go to the Swagger UI: test the endpoints http://localhost:8080/swagger-ui/index.html
To build the project, run the following command:
./mvnw clean install
To run the project linter and formatter, run the following command:
./mvnw spring-javaformat:apply
- Retry template instead of fixed retry policy
- Add new watsonx ai options (HAP)
- [NOT FINAL] Add Instana observability, see this gh issue