最近,Spring官网发布了SpringAI,可点此查看https://spring.io/blog/2024/03/12/spring-ai-0-8-1-released,对于SpringAI的介绍,可看官方文档:https://spring.io/projects/spring-ai#overview。
本文将使用SpringAI配合Ollama完成SpringAI的体验,下面分别介绍SpringAI和Ollama。
一、Spring AI
Spring AI是一个专为人工智能工程而设计的应用框架。它的目标是将Spring生态系统的设计原则,如可移植性和模块化设计,应用于人工智能领域,并推广使用纯Java对象(POJO)作为AI领域应用程序的构建块。
1.Spring AI的核心特性
- 跨AI提供商的API支持:Spring AI提供了一套可移植的API,支持与多个AI服务提供商的聊天、文本到图像和嵌入模型进行交云。
- 同步和流式API选项:框架支持同步和流式API,为开发者提供了灵活的交互方式。
- 模型特定功能访问:允许开发者通过配置参数访问特定模型的功能,提供了更细致的控制。
2.支持的模型
- 聊天模型:包括OpenAI、Azure Open AI、Amazon Bedrock、Cohere’s Command、AI21 Labs’ Jurassic-2、Meta’s LLama 2、Amazon’s Titan、Google Vertex AI Palm、Google Gemini、HuggingFace(包括Meta的Llama2等数千种模型)、Ollama(本地运行AI模型)、MistralAI等。
- 文本到图像模型:如OpenAI的DALL-E、StabilityAI等。
- 嵌入模型:包括OpenAI、Azure Open AI、Ollama、ONNX、PostgresML、Bedrock Cohere、Bedrock Titan、Google VertexAI、Mistal AI等。
3.向量存储API和向量数据库
Spring AI提供了跨不同提供商的向量存储API,具有类似SQL的元数据过滤API,保持了可移植性。支持的向量数据库包括Azure Vector Search、Chroma、Milvus、Neo4j、PostgreSQL/PGVector、PineCone、Redis、Weaviate、Qdrant等。
4.函数调用和ETL框架
Spring AI允许开发者声明java.util.Function实