基于同名node.js库 uniai 开发
UniAI MaaS旨在构建一个模型即服务平台,提供多模型的接入,开发者可以直接基于该平台进行AI应用开发。
该项目包含了向量数据库,缓存数据库,文件存储服务等,实现了RAG技术,可以解析上传的Office文件,并存入知识库,在模型输入时进行抽取和注入。
同名node.js库uniai是从本项目中剥离出去的nodejs类库,集成了许许多多的模型,你也可以单独使用uniai,来自定义你的MaaS平台,这样或许更轻量化。为了在你的项目中融入UniAI底座,你可以通过npm 或者Github来安装。
UniAI集成了多个AI模型,已包括:
- 科大讯飞/星火大模型
- THUDM/ChatGLM-6B
- 智谱/GLM
- 月之暗面/moonshot
- OpenAI/GPT
- 百度/文心一言
- Google/Gemini
- Stability AI
- OpenAI/DALL-E
- Midjourney
想探索UniAI的使用?请体验以下应用!
微信扫码登陆小程序!
👍推荐使用我们的专业版:https://lechat.cas-ll.cn
- 多模型聊天
- 办公室文件上传和解析
- 图片生成
- 图片识别
确定你已经安装以下的NPM
库:
- Node.js (版本 >= 18) - nvm Installation Guide
- Docker & Docker-compose
- LibreOffice 文档转换版(libreoffice-convert)
- pdf-to-img (canvas-node) - Canvas NPM Package
在项目的根目录下创建一个 .env
文件:
touch ./.env
填充 .env
文件的以下环境变量:
# 平台默认管理员令牌
ADMIN_TOKEN=
# OPENAI GPT
OPENAI_API= # openai 代理
OPENAI_KEY= # openai 密钥
# Google AI 工作室
GOOGLE_AI_API= # google 代理
GOOGLE_AI_KEY= # google 密钥
# 质普 AI
# ZHIPU_AI_API= #zhipu 代理
ZHIPU_AI_KEY= # zhipu 密钥
GLM_API= # 本地部署的 glm6b
# SPARK
FLY_APP_ID= # 科大讯飞 app id
FLY_API_KEY= # 科大讯飞 api 密钥
FLY_API_SECRET= # 科大讯飞 api secret
# 百度问心研究所
# BAIDU_API=http://192.168.41.52:5300
BAIDU_API_KEY=
BAIDU_SECRET_KEY=
# Moonshot
# MOONSHOT_API=http://192.168.41.52:5400
MOONSHOT_KEY=
# Stable Diffusion
STABLE_DIFFUSION_API=
# Midjourney
MJ_API= # https://github.com/novicezk/midjourney-proxy
MJ_IMG_PROXY= # 代理到 discord cdn 图片
MJ_TOKEN= # mj 令牌
# stability ai
STABILITY_KEY=
# PostgreSQL 数据库
DB_DIALECT=postgres
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASS=postgres
POSTGRES_DB=uniai
# Redis 缓存
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASS=redis
REDIS_DB=0
# 微信
WX_APP_ID= # 微信小程序id
WX_APP_SECRET= # 微信小程序密钥
WX_MCH_ID=
WX_PAY_PRIVATE=
WX_PAY_CERT=
WX_PAY_KEY=
# MINIO 存储
MINIO_END_POINT=localhost
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=
MINIO_PORT=9000
MINIO_BUCKET=uniai
# 极验验证码测试
GEE_TEST_ID=
GEE_TEST_KEY=
# 阿里云 SMS 账号
ALI_KEY_ID=
ALI_KEY_SECRET=
ALI_SMS_TEMPLATE=
ALI_SMS_SIGN=
# 用于启动 Docker 的 pgvector
POSTGRES_DATA_PATH=./data
# 用于启动 Minio 的 Docker
MINIO_DATA_PATH=./data
MINIO_ROOT_USER=root
MINIO_ROOT_PASS=12345678
Node-gyp 安装
npm -g install node-gyp
LibreOffice 安装
- Ubuntu:
sudo apt install libreoffice
- Mac:
brew install libreoffice
Node-Canvas 支持
- 参考: Canvas NPM文档
- 根据你的操作系统安装依赖。
使用 Yarn (推荐在 npm 之上)
npm -g install yarn
yarn
Sharp Support
yarn add sharp --ignore-engines
对于像PostgresSQL (pgvector) 这样的数据库,可以使用 Docker 和 Docker-compose 完成设置:
sudo apt install docker.io docker-compose
Docker 命令用于数据库服务
- 开启 pgvector:
yarn docker up pgvector
- 开启 Redis:
yarn docker up redis
- 开启 Minio (本地 OSS):
yarn docker up minio
重要提示
- 确保 Docker 卷有适当的权限。
- Docker 初始化后配置 Minio。
- 默认 Docker 设置在
.env
中可用。
Minio 访问:
- 链接:
http://localhost:9000
- 默认用户名:
root
- 默认密码:
12345678
开发模式
- 初始化数据库。
yarn dev
生产模式
- 编译 TypeScript 文件并启动应用。
yarn tsc
yarn start
tsc
,请在 yarn dev
之前使用 yarn clean
。
yarn clean
通过常见的 Web HTTP 方法访问 UniAI 的 APIs ,包括 SSE。 详细的文档,请访问 UniAI API 文档。
UniAI 集成了多种 AI 模型,主要关注在 NLP 和 CV 领域。需要独立部署具体的模型,我们提供了下载链接和导引。
- OpenAI GPT, GLM/ChatGLM, IFLYTEK/SPARK
- OpenAI DALL-E, Stable Diffusion, MidJourney
UniAI计划扩展其能力到:
- 预测 API
- 训练 API
- 提示 API
- 资源管理 API
中科苏州智能计算技术研究院
基于 Egg.js
版权所有 © 2022至今, 中科苏州智能计算技术研究院