Additionally:

  • Throw IllegalArgumentException instead of NullPointerException from constructor for null EmbeddingModel.
  • Delegate Documentation embedding generation to embed(:Document) method called by doAdd(:Document).
  • Break doSimilaritySearch(:SearchRequest) method into discrete, overridable operations.
  • Implement load(:File) in terms of load(:Resource) using a FileSystemResource.
  • Hide implementation details of EmbeddedMath dotProduct(..) and norm(..) methods.
  • Use more meaningful and descriptive variable names.
  • Simplify Exception handling in save(:File).
  • Add whitespace to improve readability.
  • Fix compiler warnings.