删除冗余的README文件
This commit is contained in:
parent
fc2c962d75
commit
146107f82c
168
README.md
168
README.md
@ -1,173 +1,11 @@
|
|||||||
# Jingrow Local - 本地版 Jingrow 框架
|
# Jingrow - 一站式通用AI Agent全栈开发框架
|
||||||
|
|
||||||
## 🎯 **项目简介**
|
## 🎯 **项目简介**
|
||||||
|
|
||||||
Jingrow Local 是基于 FastAPI + Vue 3 开发的本地版 Jingrow 框架,提供与 SaaS 版完全一致的开发体验。开发者可以在本地开发 PageType 和 App,然后直接打包发布到 SaaS 版应用市场。
|
Jingrow 是基于 Python + Vue 3 的一站式通用AI Agent全栈开发框架。
|
||||||
|
|
||||||
## 🏗️ **目录结构**
|
|
||||||
|
|
||||||
```
|
|
||||||
jingrow_local/
|
|
||||||
├── backend/
|
|
||||||
│ ├── apps/ # 应用目录(平级结构)
|
|
||||||
│ │ └── jingrow/ # Jingrow 核心应用
|
|
||||||
│ │ ├── jingrow/ # 核心模块
|
|
||||||
│ │ │ ├── __init__.py # SDK 入口
|
|
||||||
│ │ │ ├── model/ # 数据模型
|
|
||||||
│ │ │ │ ├── document.py
|
|
||||||
│ │ │ │ ├── meta.py
|
|
||||||
│ │ │ │ └── db_query.py
|
|
||||||
│ │ │ ├── adapters/ # 适配器
|
|
||||||
│ │ │ │ ├── hybrid_adapter.py
|
|
||||||
│ │ │ │ ├── saas_adapter.py
|
|
||||||
│ │ │ │ └── local_adapter.py
|
|
||||||
│ │ │ ├── utils/ # 工具函数
|
|
||||||
│ │ │ ├── core/ # 核心功能
|
|
||||||
│ │ │ │ └── pagetype/
|
|
||||||
│ │ │ │ └── customer/
|
|
||||||
│ │ │ │ └── customer.py
|
|
||||||
│ │ │ ├── ai/ # AI 功能
|
|
||||||
│ │ │ │ └── pagetype/
|
|
||||||
│ │ │ │ └── local_ai_agent/
|
|
||||||
│ │ │ │ └── local_ai_agent.py
|
|
||||||
│ │ │ └── exceptions.py # 异常定义
|
|
||||||
│ │ ├── hooks.py # 应用钩子
|
|
||||||
│ │ └── setup.py # 应用配置
|
|
||||||
│ ├── app/ # FastAPI 应用
|
|
||||||
│ │ ├── main.py
|
|
||||||
│ │ └── routes/ # API 路由
|
|
||||||
│ │ └── dynamic_router.py # 动态路由处理
|
|
||||||
│ └── requirements.txt
|
|
||||||
└── frontend/ # Vue 3 前端
|
|
||||||
├── src/
|
|
||||||
└── package.json
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🚀 **核心特性**
|
|
||||||
|
|
||||||
### **1. 完全兼容的 API 接口**
|
|
||||||
```python
|
|
||||||
# 与 SaaS 版完全一致的开发方式
|
|
||||||
import jingrow
|
|
||||||
from jingrow.model.page import Page
|
|
||||||
|
|
||||||
class Customer(Page):
|
|
||||||
def validate(self):
|
|
||||||
if not self.customer_name:
|
|
||||||
jingrow.throw("验证错误", "客户名称不能为空")
|
|
||||||
|
|
||||||
def on_update(self):
|
|
||||||
# 更新时的业务逻辑
|
|
||||||
pass
|
|
||||||
```
|
|
||||||
|
|
||||||
### **2. 双模式支持**
|
|
||||||
- **API 模式**: 通过 API 操作 Jingrow SaaS 版数据
|
|
||||||
- **本地模式**: 直接操作本地安装的 MariaDB/PostgreSQL 数据库
|
|
||||||
- **灵活切换**: 可以根据需要切换不同的数据源
|
|
||||||
|
|
||||||
### **3. Jingrow 风格路由**
|
|
||||||
```
|
|
||||||
/api/action/jingrow.core.pagetype.system_settings.system_settings.load
|
|
||||||
```
|
|
||||||
|
|
||||||
### **3. 应用市场兼容**
|
|
||||||
- ✅ 本地开发的 App 和 PageType 可以直接打包发布到 SaaS 版应用市场
|
|
||||||
- ✅ 目录结构完全一致
|
|
||||||
- ✅ 代码实现完全一致
|
|
||||||
|
|
||||||
## 📦 **安装和使用**
|
|
||||||
|
|
||||||
### **1. 安装依赖**
|
|
||||||
```bash
|
|
||||||
cd backend
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
### **3. 配置环境**
|
|
||||||
```bash
|
|
||||||
# 复制环境配置文件
|
|
||||||
cp env.example .env
|
|
||||||
|
|
||||||
# 编辑数据库配置
|
|
||||||
vim .env
|
|
||||||
```
|
|
||||||
|
|
||||||
### **4. 启动服务**
|
|
||||||
```bash
|
|
||||||
# 启动后端
|
|
||||||
cd backend
|
|
||||||
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
|
||||||
|
|
||||||
# 启动前端
|
|
||||||
cd frontend
|
|
||||||
npm install
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔧 **开发指南**
|
|
||||||
|
|
||||||
### **1. 创建自定义 PageType**
|
|
||||||
```python
|
|
||||||
# backend/apps/jingrow/jingrow/core/pagetype/my_pagetype/my_pagetype.py
|
|
||||||
import jingrow
|
|
||||||
from jingrow.model.page import Page
|
|
||||||
|
|
||||||
class MyPageType(Page):
|
|
||||||
def validate(self):
|
|
||||||
# 验证逻辑
|
|
||||||
pass
|
|
||||||
|
|
||||||
def on_update(self):
|
|
||||||
# 更新逻辑
|
|
||||||
pass
|
|
||||||
```
|
|
||||||
|
|
||||||
### **2. 创建自定义应用**
|
|
||||||
```python
|
|
||||||
# backend/apps/my_app/my_app/pagetype/my_pagetype/my_pagetype.py
|
|
||||||
import jingrow
|
|
||||||
from jingrow.model.page import Page
|
|
||||||
|
|
||||||
class MyPageType(Page):
|
|
||||||
def validate(self):
|
|
||||||
# 验证逻辑
|
|
||||||
pass
|
|
||||||
```
|
|
||||||
|
|
||||||
### **3. 配置适配器**
|
|
||||||
```python
|
|
||||||
# 在应用启动时配置
|
|
||||||
import jingrow
|
|
||||||
|
|
||||||
# API 模式(通过 API 操作 SaaS 版数据)
|
|
||||||
jingrow.configure(mode="api",
|
|
||||||
api_url="https://api.jingrow.com",
|
|
||||||
api_key="your_api_key",
|
|
||||||
api_secret="your_api_secret")
|
|
||||||
|
|
||||||
# 本地模式(直接操作本地数据库)
|
|
||||||
jingrow.configure(mode="local",
|
|
||||||
db_host="localhost",
|
|
||||||
db_port="3306",
|
|
||||||
db_name="jingrow_local",
|
|
||||||
db_user="root",
|
|
||||||
db_password="your_password")
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🎯 **与 SaaS 版的兼容性**
|
|
||||||
|
|
||||||
### **完全一致的开发体验**
|
|
||||||
- ✅ 相同的 `import jingrow` 方式
|
|
||||||
- ✅ 相同的 `from jingrow.model.page import Page` 方式
|
|
||||||
- ✅ 相同的 PageType 开发模式
|
|
||||||
- ✅ 相同的应用目录结构
|
|
||||||
- ✅ 相同的钩子函数
|
|
||||||
|
|
||||||
### **直接发布到应用市场**
|
|
||||||
本地开发的 App 和 PageType 可以直接打包发布到 SaaS 版应用市场,无需任何修改。
|
|
||||||
|
|
||||||
## 📝 **许可证**
|
## 📝 **许可证**
|
||||||
|
|
||||||
Copyright (c) 2025, JINGROW and contributors
|
Copyright (c) 2025, JINGROW
|
||||||
For license information, please see license.txt
|
For license information, please see license.txt
|
||||||
@ -1,162 +0,0 @@
|
|||||||
# Jingrow Local Backend README
|
|
||||||
|
|
||||||
## 项目结构
|
|
||||||
|
|
||||||
```
|
|
||||||
jingrow/
|
|
||||||
├── frontend/ # Vue 3 前端
|
|
||||||
├── backend/ # FastAPI 后端
|
|
||||||
│ ├── app/
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── main.py # FastAPI 应用入口
|
|
||||||
│ │ ├── routes/
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ └── nodes.py # 节点执行路由
|
|
||||||
│ │ ├── services/
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ └── executor.py # 节点执行器
|
|
||||||
│ │ ├── models/
|
|
||||||
│ │ │ └── __init__.py
|
|
||||||
│ │ └── utils/
|
|
||||||
│ │ └── __init__.py
|
|
||||||
│ ├── nodes/ # 节点实现目录
|
|
||||||
│ │ ├── language_python/
|
|
||||||
│ │ │ ├── language_python.py
|
|
||||||
│ │ │ └── language_python.json
|
|
||||||
│ │ ├── language_go/
|
|
||||||
│ │ │ ├── language_go.go
|
|
||||||
│ │ │ └── language_go.json
|
|
||||||
│ │ ├── language_rust/
|
|
||||||
│ │ │ ├── language_rust.rs
|
|
||||||
│ │ │ └── language_rust.json
|
|
||||||
│ │ └── data_processing/
|
|
||||||
│ │ ├── data_processing.py
|
|
||||||
│ │ └── data_processing.json
|
|
||||||
│ ├── config.py # 配置文件
|
|
||||||
│ ├── requirements.txt
|
|
||||||
│ └── run.py # 启动脚本
|
|
||||||
└── README.md
|
|
||||||
```
|
|
||||||
|
|
||||||
## 核心特性
|
|
||||||
|
|
||||||
### 1. 统一执行路径
|
|
||||||
所有节点都使用统一的执行路径:
|
|
||||||
```
|
|
||||||
POST /nodes.{node_type}.{node_type}.execute
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. 多语言支持
|
|
||||||
- **Python节点**:直接导入执行
|
|
||||||
- **Go节点**:编译后执行
|
|
||||||
- **Rust节点**:编译后执行
|
|
||||||
|
|
||||||
### 3. 异步执行
|
|
||||||
使用FastAPI的异步特性,支持并发执行多个节点。
|
|
||||||
|
|
||||||
## 快速开始
|
|
||||||
|
|
||||||
### 1. 安装依赖
|
|
||||||
```bash
|
|
||||||
cd backend
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. 启动服务
|
|
||||||
```bash
|
|
||||||
python run.py
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. 访问API文档
|
|
||||||
打开浏览器访问:http://localhost:8000/docs
|
|
||||||
|
|
||||||
## API使用示例
|
|
||||||
|
|
||||||
### 执行Python节点
|
|
||||||
```bash
|
|
||||||
curl -X POST "http://localhost:8000/nodes.language_python.language_python.execute" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"context": {"timestamp": "2024-01-01"},
|
|
||||||
"inputs": {},
|
|
||||||
"config": {
|
|
||||||
"code": "print(\"Hello from Python!\")\noutput = \"Python执行成功\""
|
|
||||||
}
|
|
||||||
}'
|
|
||||||
```
|
|
||||||
|
|
||||||
### 执行Go节点
|
|
||||||
```bash
|
|
||||||
curl -X POST "http://localhost:8000/nodes.language_go.language_go.execute" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"context": {"timestamp": "2024-01-01"},
|
|
||||||
"inputs": {},
|
|
||||||
"config": {
|
|
||||||
"code": "package main\nimport \"fmt\"\nfunc main() { fmt.Println(\"Hello from Go!\") }"
|
|
||||||
}
|
|
||||||
}'
|
|
||||||
```
|
|
||||||
|
|
||||||
### 执行Rust节点
|
|
||||||
```bash
|
|
||||||
curl -X POST "http://localhost:8000/nodes.language_rust.language_rust.execute" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"context": {"timestamp": "2024-01-01"},
|
|
||||||
"inputs": {},
|
|
||||||
"config": {
|
|
||||||
"code": "fn main() { println!(\"Hello from Rust!\"); }"
|
|
||||||
}
|
|
||||||
}'
|
|
||||||
```
|
|
||||||
|
|
||||||
## 开发新节点
|
|
||||||
|
|
||||||
### 1. 创建节点目录
|
|
||||||
```bash
|
|
||||||
mkdir -p nodes/my_new_node
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. 实现节点逻辑
|
|
||||||
创建 `my_new_node.py`(或其他语言文件):
|
|
||||||
```python
|
|
||||||
def execute(context=None, inputs=None, config=None):
|
|
||||||
# 节点执行逻辑
|
|
||||||
return {
|
|
||||||
"success": True,
|
|
||||||
"result": "节点执行成功"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. 创建节点配置
|
|
||||||
创建 `my_new_node.json`:
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"name": "我的新节点",
|
|
||||||
"description": "节点描述",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"category": "custom"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. 测试节点
|
|
||||||
```bash
|
|
||||||
curl -X POST "http://localhost:8000/nodes.my_new_node.my_new_node.execute" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{"context": {}, "inputs": {}, "config": {}}'
|
|
||||||
```
|
|
||||||
|
|
||||||
## 环境要求
|
|
||||||
|
|
||||||
- Python 3.8+
|
|
||||||
- Go 1.19+ (用于Go节点)
|
|
||||||
- Rust 1.70+ (用于Rust节点)
|
|
||||||
|
|
||||||
## 配置说明
|
|
||||||
|
|
||||||
在 `config.py` 中可以配置:
|
|
||||||
- 节点超时时间
|
|
||||||
- 内存限制
|
|
||||||
- CORS设置
|
|
||||||
- 日志级别
|
|
||||||
@ -1,158 +0,0 @@
|
|||||||
# Jingrow Local 前端应用
|
|
||||||
|
|
||||||
基于Vue 3 + Naive UI的现代化AI Agent工作流平台前端应用。
|
|
||||||
|
|
||||||
## 功能特性
|
|
||||||
|
|
||||||
- 🔐 **用户认证**: 集成Jingrow SaaS登录
|
|
||||||
- 🤖 **AI智能体管理**: 创建、编辑、执行智能体
|
|
||||||
- 🔧 **节点管理**: 管理工作流节点组件
|
|
||||||
- 📊 **仪表板**: 系统概览和统计信息
|
|
||||||
- ⚙️ **设置管理**: 个人和系统配置
|
|
||||||
|
|
||||||
## 技术栈
|
|
||||||
|
|
||||||
- **Vue 3** - 渐进式前端框架
|
|
||||||
- **TypeScript** - 类型安全的JavaScript
|
|
||||||
- **Naive UI** - 现代化UI组件库
|
|
||||||
- **Pinia** - 轻量级状态管理
|
|
||||||
- **Vue Router** - 路由管理
|
|
||||||
- **Axios** - HTTP客户端
|
|
||||||
- **Vite** - 快速构建工具
|
|
||||||
|
|
||||||
## 快速开始
|
|
||||||
|
|
||||||
### 1. 安装依赖
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. 启动开发服务器
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. 访问应用
|
|
||||||
|
|
||||||
打开浏览器访问: http://localhost:3000
|
|
||||||
|
|
||||||
## 项目结构
|
|
||||||
|
|
||||||
```
|
|
||||||
src/
|
|
||||||
├── main.ts # 应用入口
|
|
||||||
├── App.vue # 根组件
|
|
||||||
├── router/ # 路由配置
|
|
||||||
│ └── index.ts
|
|
||||||
├── stores/ # 状态管理
|
|
||||||
│ ├── auth.ts # 认证状态
|
|
||||||
│ ├── agent.ts # 智能体状态
|
|
||||||
│ └── node.ts # 节点状态
|
|
||||||
├── api/ # API客户端
|
|
||||||
│ ├── index.ts # Axios配置
|
|
||||||
│ ├── auth.ts # 认证API
|
|
||||||
│ ├── agents.ts # 智能体API
|
|
||||||
│ └── nodes.ts # 节点API
|
|
||||||
├── components/ # 通用组件
|
|
||||||
│ └── layout/ # 布局组件
|
|
||||||
│ ├── AppLayout.vue
|
|
||||||
│ ├── AppHeader.vue
|
|
||||||
│ └── AppSidebar.vue
|
|
||||||
├── views/ # 页面视图
|
|
||||||
│ ├── auth/ # 认证页面
|
|
||||||
│ │ └── Login.vue
|
|
||||||
│ ├── agents/ # 智能体页面
|
|
||||||
│ │ └── AgentList.vue
|
|
||||||
│ ├── nodes/ # 节点页面
|
|
||||||
│ │ └── NodeList.vue
|
|
||||||
│ ├── flows/ # 流程页面
|
|
||||||
│ │ └── FlowBuilder.vue
|
|
||||||
│ ├── Dashboard.vue # 仪表板
|
|
||||||
│ └── Settings.vue # 设置页面
|
|
||||||
└── assets/ # 静态资源
|
|
||||||
└── styles/
|
|
||||||
└── main.css # 全局样式
|
|
||||||
```
|
|
||||||
|
|
||||||
## 开发指南
|
|
||||||
|
|
||||||
### 添加新页面
|
|
||||||
|
|
||||||
1. 在 `src/views/` 下创建页面组件
|
|
||||||
2. 在 `src/router/index.ts` 中添加路由
|
|
||||||
3. 在 `src/components/layout/AppSidebar.vue` 中添加菜单项
|
|
||||||
|
|
||||||
### 添加新API
|
|
||||||
|
|
||||||
1. 在 `src/api/` 下创建API文件
|
|
||||||
2. 在对应的store中添加状态管理
|
|
||||||
3. 在组件中调用API
|
|
||||||
|
|
||||||
### 样式规范
|
|
||||||
|
|
||||||
- 使用Naive UI组件库
|
|
||||||
- 遵循Vue 3 Composition API
|
|
||||||
- 使用TypeScript类型定义
|
|
||||||
- 响应式设计,支持移动端
|
|
||||||
|
|
||||||
## 构建部署
|
|
||||||
|
|
||||||
### 开发环境
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
### 生产构建
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
### 预览构建结果
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run preview
|
|
||||||
```
|
|
||||||
|
|
||||||
## 环境配置
|
|
||||||
|
|
||||||
复制环境变量示例文件并配置:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cp env.example .env.local
|
|
||||||
```
|
|
||||||
|
|
||||||
编辑 `.env.local` 文件:
|
|
||||||
|
|
||||||
```env
|
|
||||||
# Jingrow SaaS配置
|
|
||||||
VITE_JINGROW_API_URL=https://cloud.jingrow.com
|
|
||||||
|
|
||||||
# 本地API配置
|
|
||||||
VITE_LOCAL_API_URL=http://localhost:8000
|
|
||||||
|
|
||||||
# 应用配置
|
|
||||||
VITE_APP_NAME=Jingrow Local
|
|
||||||
VITE_APP_VERSION=1.0.0
|
|
||||||
```
|
|
||||||
|
|
||||||
### 环境变量说明
|
|
||||||
|
|
||||||
- `VITE_JINGROW_API_URL`: Jingrow SaaS API地址,默认为 https://cloud.jingrow.com
|
|
||||||
- `VITE_LOCAL_API_URL`: 本地API服务地址,默认为 http://localhost:8000
|
|
||||||
- `VITE_APP_NAME`: 应用名称
|
|
||||||
- `VITE_APP_VERSION`: 应用版本
|
|
||||||
|
|
||||||
## 浏览器支持
|
|
||||||
|
|
||||||
- Chrome >= 87
|
|
||||||
- Firefox >= 78
|
|
||||||
- Safari >= 14
|
|
||||||
- Edge >= 88
|
|
||||||
|
|
||||||
## 许可证
|
|
||||||
|
|
||||||
MIT License
|
|
||||||
Loading…
x
Reference in New Issue
Block a user