Skip to content

PabloSanchi/IBM-WatsonxAI-Spring-AI-Example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Watsonx AI Integration

Overview

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.

Features

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

Notes

Getting Started

  1. Clone the Repository
git clone https://github.com/PabloSanchi/IBM-WatsonxAI-Spring-AI-Example
  1. Change Directory
cd IBM-WatsonxAI-Spring-AI-Example
  1. 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
  1. Run the APP
  2. Go to the Swagger UI: test the endpoints http://localhost:8080/swagger-ui/index.html

Build

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 

Incoming updates to spring ai watsonxai integration:

  • Retry template instead of fixed retry policy
  • Add new watsonx ai options (HAP)
  • [NOT FINAL] Add Instana observability, see this gh issue