|
发表于 2025-1-24 13:35:19
来自手机
以下的操作步骤,帮助您将 DeepSeek 集成到 NocoBase 中。
我们将从环境准备、NocoBase 安装、DeepSeek API 集成、插件开发到测试部署,逐步展开。
---
### **1. 环境准备**
#### 1.1 服务器要求
- **操作系统**:Linux(Ubuntu 20.04 或 CentOS 7)或 macOS。
- **Node.js**:安装 Node.js v16.x 或更高版本。
- **数据库**:PostgreSQL(推荐)或 MySQL。
- **DeepSeek API 密钥**:注册 DeepSeek 账户并获取 API 密钥。
#### 1.2 安装依赖
- 安装 Node.js 和 npm:
```bash
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
```
- 安装 PostgreSQL:
```bash
sudo apt-get install postgresql postgresql-contrib
sudo systemctl start postgresql
sudo systemctl enable postgresql
```
---
### **2. 安装 NocoBase**
#### 2.1 下载 NocoBase
- 从 GitHub 克隆 NocoBase 仓库:
```bash
git clone https://github.com/nocobase/nocobase.git
cd nocobase
```
#### 2.2 安装依赖
- 安装项目依赖:
```bash
npm install
```
#### 2.3 配置数据库
- 创建 PostgreSQL 数据库:
```bash
sudo -u postgres psql
CREATE DATABASE nocobase;
CREATE USER nocobase_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE nocobase TO nocobase_user;
\q
```
- 修改 NocoBase 配置文件:
编辑 `config/config.json`,配置数据库连接信息:
```json
{
"database": {
"dialect": "postgres",
"host": "localhost",
"port": 5432,
"username": "nocobase_user",
"password": "your_password",
"database": "nocobase"
}
}
```
#### 2.4 初始化数据库
- 运行数据库迁移脚本:
```bash
npm run db:migrate
```
#### 2.5 启动 NocoBase
- 启动开发服务器:
```bash
npm run start
```
- 访问 NocoBase:
打开浏览器,访问 `http://localhost:3000`,完成初始设置。
---
### **3. 集成 DeepSeek**
#### 3.1 创建 NocoBase 插件
- 使用 NocoBase CLI 创建插件:
```bash
npm run cli plugin:create deepseek-integration
cd plugins/deepseek-integration
```
#### 3.2 安装 DeepSeek SDK
- 安装 DeepSeek 的 Node.js SDK(假设 DeepSeek 提供 SDK):
```bash
npm install deepseek-sdk
```
#### 3.3 配置 DeepSeek API 密钥
- 在插件配置文件中添加 DeepSeek API 密钥:
编辑 `plugins/deepseek-integration/config/config.json`:
```json
{
"deepseek": {
"apiKey": "your_deepseek_api_key"
}
}
```
#### 3.4 实现 DeepSeek 服务
- 创建服务文件 `plugins/deepseek-integration/src/services/deepseekService.js`:
```javascript
const DeepSeek = require('deepseek-sdk');
class DeepSeekService {
constructor(apiKey) {
this.deepseek = new DeepSeek(apiKey);
}
async query(prompt) {
const response = await this.deepseek.complete({
prompt: prompt,
max_tokens: 150
});
return response.choices[0].text.trim();
}
}
module.exports = DeepSeekService;
```
#### 3.5 创建 API 路由
- 创建路由文件 `plugins/deepseek-integration/src/routes/deepseekRoutes.js`:
```javascript
const express = require('express');
const DeepSeekService = require('../services/deepseekService');
const router = express.Router();
const config = require('config');
const deepseekService = new DeepSeekService(config.deepseek.apiKey);
router.post('/query', async (req, res) => {
const { prompt } = req.body;
try {
const result = await deepseekService.query(prompt);
res.json({ success: true, result });
} catch (error) {
res.status(500).json({ success: false, error: error.message });
}
});
module.exports = router;
```
#### 3.6 注册插件
- 编辑插件入口文件 `plugins/deepseek-integration/src/index.js`:
```javascript
const deepseekRoutes = require('./routes/deepseekRoutes');
module.exports = function(app) {
app.use('/api/deepseek', deepseekRoutes);
};
```
---
### **4. 测试集成**
#### 4.1 启动 NocoBase
- 启动 NocoBase:
```bash
npm run start
```
#### 4.2 测试 DeepSeek API
- 使用 `curl` 或 Postman 测试 API:
```bash
curl -X POST http://localhost:3000/api/deepseek/query \
-H "Content-Type: application/json" \
-d '{"prompt": "显示最近三个月联系过的客户"}'
```
---
### **5. 部署到生产环境**
#### 5.1 使用 Docker 部署
- 创建 `docker-compose.yml` 文件:
```yaml
version: '3'
services:
app:
image: node:16
container_name: nocobase
working_dir: /app
volumes:
- .:/app
ports:
- "3000:3000"
environment:
- NODE_ENV=production
command: npm run start
db:
image: postgres:13
container_name: nocobase_db
environment:
POSTGRES_USER: nocobase_user
POSTGRES_PASSWORD: your_password
POSTGRES_DB: nocobase
ports:
- "5432:5432"
```
- 启动 Docker 容器:
```bash
docker-compose up -d
```
#### 5.2 配置 HTTPS
- 使用 Nginx 反向代理并配置 HTTPS:
```nginx
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
---
### **6. 总结**
通过以上步骤,您已经成功将 DeepSeek 集成到 NocoBase 中,并可以通过 API 调用实现自然语言查询、智能建议等功能。这一集成显著提升了 NocoBase 的智能化水平,为用户提供了更高效的操作体验。 |
|