RestAI 项目介绍
RestAI 是一个旨在使人工智能服务触手可及的平台。它通过简化的 REST API 接口,让用户可以轻松创建并使用 AI 项目。RestAI 致力于将 AIaaS(AI as a Service)普及给每一个人,提供使用人工智能所需的多种功能和模块。
项目特性
- 多种项目类型:RestAI 提供多种类型的智能代理项目供用户选择,其中包括 RAG、RAGSQL、推理、视觉、路由器、以及通用智能代理。这些项目各具特色,适应不同的应用需求。
- 用户管理:在 RestAI 中,用户表示系统中的一个使用者,通过基本身份验证进行操作。每个用户可以访问多个项目。
- 支持 LLMs:RestAI 支持任何由 LlamaIndex 支持的公共大型语言模型(LLM),包括任何 Ollama、LiteLLM 等支持的本地 LLM。
- VRAM 自动管理:平台会自动管理 VRAM 的使用,根据需求自动加载和卸载模型。
- API 优先:RestAI 自带全面记录的 API,所有端点均通过 Swagger 进行文档化。
- 前端支持:用户可以通过 restai-frontend 客户端进行便捷的操作。
项目类型详细介绍
RAG(随机访问生成)
RAG 项目类型提供对嵌入的支持,用户可以使用任何支持 LlamaIndex 的嵌入模型。RestAI 支持两种向量存储:Chroma
和 Redis
。该项目类型具有沙盒模式,可在无法回答时提供默认回答,以减少模型“幻觉”现象。
RAGSQL
RAGSQL 是专为数据库查询设计的智能代理。输入 MySQL 或 PostgreSQL 连接字符串后,它会自动爬取数据库架构,并尝试将问题翻译为 SQL 查询获取响应。
推理
推理项目提供了强大的数据处理能力,用户可以创建指定工具并由智能代理自动选择与使用。
视觉
- text2img:支持本地稳定扩散和 Dall-E 模型,并能通过内部的 LLM 增强用户提供的提示。
- img2text 和 img2img:支持 LLaVA 和 InstantID 等模型,以实现图像识别与转换。
路由器
路由器类型项目可以将消息路由到最合适的项目,这是在拥有多个项目时非常有用的特性。它采用类似 Zero Shot React 的策略,以项目为单位进行评分和路由。
LLMs 支持
用户可以使用任何 Ollama 和/或 LlamaIndex 支持的 LLM,极大地增强了项目的可扩展性和灵活性。
安装与开发
RestAI 使用 Poetry 管理依赖。使用 make install
和 make dev
命令可以快速安装和启动开发模式。生产环境也可以通过类似的方式启动。
docker 支持
RestAI 提供 Docker 支持,以便用户根据需要启动 Redis、MySQL 或 PostgreSQL 等数据库服务进行完整服务的构建及部署。具体命令可以根据项目文档进行定制。
测试与前端
- 使用
pytest
进行测试,make test
命令可运行所有测试用例。 - 前端代码位于 restai-frontend,执行
make install
可以自动安装。
许可证
RestAI 项目由 Pedro Dias 开发,采用 Apache 2.0 许可证进行发布。这意味着用户在遵守相关规定的情况下可以自由使用相关代码和资源。
RestAI 是一个充满活力的项目,旨在提供全面且高效的 AI 服务解决方案。它结合了强大的项目管理功能、多样的模型支持,以及易于使用的接口,使之成为开发与使用人工智能项目的理想平台。