文章目录
- 概述
- SpringAI介绍
- Spring AI 提供以下功能
- 支持的聊天模型有哪些
- 支持的文生图的模型有哪些
- 支持的音频到文本模型
- 支持的嵌入模型有哪些
- 支持的矢量数据库有哪些
概述
在当今快速发展的技术时代,人工智能(AI)已经成为各行各业的关键驱动力。而作为一种领先的Java应用开发框架,Spring Framework在软件开发领域享有盛誉。下面跟着我一起去了解Spring AI的庐山真面目吧。
官网地址如下:https://spring.io/projects/spring-ai#learn
文档地址如下:https://docs.spring.io/spring-ai/reference/index.html
可以看到现在SpringAI出了一个预览版和一个快照版,GA版尚未发布,大家伙可以提前学习,等GA版发布再行使用最佳。
GA指的是 General Availability,意为正式发布的版本,推荐使用(主要是稳定),与maven的releases类似;
PRE指的是预览版,主要提供给开发测试人员找bug的。
SNAPSHOT指的是快照版,会在此版本上持续更新,与maven的SNAPSHOT类似。
SpringAI介绍
Spring AI 是 AI 工程的应用框架。其目标是将 Spring 生态系统设计原则(如可移植性和模块化设计)应用于 AI 领域,并促进使用 POJO 作为应用程序的构建块到 AI 领域。
Spring AI 提供以下功能
- 支持所有主要模型提供商,例如 OpenAI、Microsoft、Amazon、Google 和 Hugging Face。
- 支持的模型类型包括聊天、文本到图像、音频转录、文本到语音等。
- 适用于所有模型的跨 AI 提供商的可移植 API。支持同步和流式 API 选项。还支持下拉以访问特定于模型的功能。
- 将 AI 模型输出映射到 POJO。
- 支持所有主要的矢量数据库提供商,例如 Apache Cassandra、Azure Vector Search、Chroma、Milvus、MongoDB Atlas、Neo4j、Oracle、PostgreSQL/PGVector、PineCone、Qdrant、Redis 和 Weaviate。
- 跨 Vector Store 提供商的可移植 API,包括一种新颖的类似 SQL 的元数据过滤器 API,它也是可移植的。
- 函数调用。
- 用于 AI 模型和向量存储的 Spring Boot 自动配置和启动器。
- 数据工程的 ETL 框架。
支持的聊天模型有哪些
支持的聊天模型,有国外的、国内的、托管在平台上的和运行在自己硬件上的,还是比较齐全的。
模型名称 | 公司 | 简介 |
---|---|---|
Amazon Bedrock | 亚马逊云科技 | 亚马逊云科技推出的一项完全托管的服务。 |
Anthropic Claud | 由OpenAI 前研究副总裁达里奥·阿莫迪等人于创立 | Claude 是由 Anthropic 开发的一系列大型语言模型。 |
Azure Open AI | 微软云 | Azure Open AI 是微软结合其 Azure 云平台功能与 Open AI 的人工智能模型所推出的服务。 |
Google Vertex AI | 谷歌云 | Google Vertex AI 是谷歌云发布的一款机器学习开发平台。 |
Groq | Groq是一家专注于提高人工智能计算速度的创新公司 | Groq推出的世界上最快的大模型,每秒可以输出近500个token,其性能是GPT-4的18倍。 |
HuggingFace | 开源人工智能创业公司 | 构建了庞大的社区 Hugging Face Hub。其提供的模型和数据集等资源可以通过类似 GitHub 的模型仓库进行管理,使用方式也较为简便。 |
MistralAI | 人工智能初创企业 | Mistral AI 与微软达成了合作,成为继 OpenAI 后第二个能在微软云服务 Azure 上提供大模型服务的公司。 |
MiniMax | 该公司是国内唯一一家拥有文本、语音、视觉多种模态融合的通用大模型引擎能力并打通产品全链路的科技创业公司。 | 公司的部分产品如下:1、Glow:基于大模型面向 to C 在虚拟聊天领域的应用 2、Inspo:自主开发的生成式对话 AI 3、星野:AI 社交应用 |
Moonshot AI | 国内的大模型创业公司 | 在2023年10月9日宣布在“长文本”领域实现突破,推出了首个支持输入20万汉字的智能助手产品 Kimi Chat 。 |
Ollama | 它允许用户在自己的硬件环境中轻松部署和使用大规模预训练模型 | |
OpenAI | OpenAI 是一家人工智能研究公司 | 开发了一系列具有影响力的语言模型,如 GPT-3、GPT-4 等。这些模型在自然语言处理任务中表现出色,包括文本生成、问答、翻译、摘要等。 |
QianFan | 百度智能云千帆大模型平台 | 百度智能云千帆大模型平台是文心大模型企业级服务的唯一入口,是一站式企业级大模型平台,提供先进的生成式 AI 生产及应用全流程开发工具链。 |
ZhiPu AI | 北京智谱华章科技有限公司 | 智谱 AI 是北京智谱华章科技有限公司打造的新一代认知智能大模型。 |
Watsonx.AI | IBM | Watsonx 是 IBM 推出的一个人工智能和数据平台。 |
支持的文生图的模型有哪些
OpenAI 的文生图大家很熟悉了,Stability AI呢有大名鼎鼎的Stable Diffusion,是不是很熟悉呢。
1、OpenAI 的DALL-E。
2、Stability AI。
支持的音频到文本模型
现在只支持OpenAI的,后面可能会支持其他公司的,毕竟SpringAI框架还在开发中。
1、OpenAI
支持的嵌入模型有哪些
Embedding Models(嵌入模型)是一类机器学习模型,其主要功能是将高维、离散的输入数据(如词汇、类别标签、节点或实体等)映射到低维、连续的向量空间中。
嵌入是文本、图像或视频的数字表示,用于捕捉输入之间的关系。
嵌入的工作原理是将文本、图像和视频转换为浮点数数组(称为向量)。这些向量旨在捕捉文本、图像和视频的含义。嵌入数组的长度称为向量的维数。
通过计算两段文本的向量表示之间的数值距离,应用程序可以确定用于生成嵌入向量的对象之间的相似性。
作为探索 AI 的 Java 开发人员,没有必要理解这些矢量表示背后的复杂数学理论或具体实现。对它们在 AI 系统中的作用和功能有基本的了解就足够了,特别是当您将 AI 功能集成到您的应用程序中时。
- Azure OpenAI
- Amazon Bedrock
- Cohere
- Titan
- Azure OpenAI
- Mistral AI
- MiniMax
- Ollama
- (ONNX) Transformers
- OpenAI
- PostgresML
- QianFan
- VertexAI
- Text
- Multimodal
- PaLM2
- ZhiPu AI
支持的矢量数据库有哪些
- Azure AI Service:微软提供的云服务,涵盖多种人工智能功能,包括但不限于机器学习、自然语言处理等。在矢量数据处理方面,提供了强大的计算资源和工具,适合大规模数据处理和企业级应用。
- Apache Cassandra:一种高度可扩展的分布式数据库,常用于处理大量结构化数据。虽然不是专门的矢量数据库,但可以通过适当的设计和扩展来存储和处理矢量数据。
- Chroma:一个轻量级的本地矢量数据库,易于安装和使用,适用于小型项目和快速原型开发。
- Elasticsearch:广泛使用的搜索引擎和数据分析平台,能够高效处理和检索矢量数据,常用于构建大规模的搜索和分析应用。
- GemFire:一款分布式数据管理平台,提供了高并发、低延迟的数据处理能力,可用于构建复杂的矢量数据存储和查询系统。
- Milvus:专为处理海量矢量数据而设计的开源数据库,支持高效的相似性搜索和向量运算,在图像、音频、文本等领域有广泛应用。
- MongoDB Atlas:云托管的 MongoDB 服务,具有灵活的数据模型,可通过适当的方式存储和操作矢量数据,适用于多种应用场景。
- Neo4j:图数据库,主要用于处理关系型数据,对于某些具有复杂关系的矢量数据场景可能会有特殊的应用价值。
- OpenSearch:开源的搜索和分析引擎,类似于 Elasticsearch,能够有效地处理和检索矢量数据,为应用提供搜索和分析功能。
- Oracle:成熟的企业级数据库管理系统,通过适当的配置和扩展可以处理矢量数据,但可能在某些特定场景下不如专门的矢量数据库高效。
- PGvector:PostgreSQL 的扩展,用于在关系数据库中处理矢量数据,方便与现有 PostgreSQL 应用集成。
- Pinecone:专门的矢量数据库服务,提供了高性能的矢量搜索和存储功能,适用于大规模的机器学习和人工智能应用。
- Qdrant:开源的矢量数据库,专注于高效的向量存储和检索,支持多种索引类型和查询方式。
- Redis:内存数据结构存储系统,常用于缓存和快速数据访问,也可以通过一些扩展来处理简单的矢量数据。
- SAP Hana:企业级内存数据库,具有高性能和实时分析能力,可用于处理矢量数据,但通常应用于特定的企业业务场景。
- Typesense:轻量级的搜索引擎,能够处理矢量数据,适合构建快速、简单的搜索应用。
- Weaviate:开源的矢量数据库,支持多种数据类型和复杂的查询操作,为人工智能应用提供数据存储和检索服务。