Spring AI 应用框架
Spring AI 是面向人工智能工程的应用框架。其目标是将Spring生态系统的设计原则如可移植性和模块化设计应用于AI领域,并推广使用POJOs(Plain Old Java Objects,简单旧式Java对象)作为应用程序的构建块。
特点
- 跨AI提供商的可移植API支持,涵盖聊天、文本到图像以及嵌入模型。
- 支持同步和流API选项。
- 支持特定模型特性的深入访问。
聊天模型
- 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 with DALL-E
- StabilityAI
转录模型(音频到文本)
- OpenAI
嵌入模型
- OpenAI
- Azure OpenAI
- Ollama
- ONNX
- PostgresML
- Bedrock Cohere
- Bedrock Titan
- Google VertexAI
- Mistal AI
向量存储 API
提供跨不同提供商的可移植性,特色是类似SQL的元数据过滤API,维持可移植性。
向量数据库
- Azure Vector Search
- Chroma
- Milvus
- Neo4j
- PostgreSQL/PGVector
- PineCone
- Redis
- Weaviate
- Qdrant
Spring Boot 自动配置和AI模型及向量存储启动器
函数调用
您可以声明java.util.Function实现以用于OpenAI模型的提示响应。可以直接提供这些函数作为对象,或者在应用上下文中注册为@Bean后引用它们的名称。此功能最大限度地减少不必要的代码,并使AI模型能够请求更多信息以完成其响应。
支持的模型包括:
- OpenAI
- Azure OpenAI
- VertexAI
- Mistral AI
ETL框架用于数据工程
核心功能是使用向量存储将文档传输到模型提供商。ETL框架基于Java功能性编程概念,帮助您串联多个步骤。我们支持读取各种格式的文档,包括PDF、JSON等。框架允许根据需要进行数据操作,通常包括拆分文档以遵守上下文窗口限制,并通过关键词增强以提高文档检索效果。最后,处理过的文档存储在向量数据库中,方便未来检索。
参考文档、样本应用和工作坊/课程材料
未来的版本将在这一基础上构建,提供对额外AI模型的访问,例如Google刚发布的Gemini多模态模型,一个评估AI应用有效性的框架,更多便利API,以及帮助解决“查询/总结我的文档”用例的功能。请查看GitHub以获取即将发布的详情。
入门
您可以通过以下几个简单步骤开始:
- 安装Spring CLI,然后在您的Shell中运行命令。
将为您创建一个应用程序,开始与ChatGPT的基本交互,只需按照spring boot new --from ai --name myai
生成的README文件中的说明获取您的API密钥。
- 运行应用程序
并访问端点:./mvw spring-boot:run
curl localhost:8080/ai/simple