项目简介
FlowVO 是一个综合性的智能应用平台,采用微服务架构,集成了自然语言处理、向量数据库和多种业务服务(如订单、客户、业务管理)。平台的核心功能是通过 Function Call 机制,使得AI能够调用后端暴露的服务能力。其中包括了遵循 Model Context Protocol (MCP) 标准构建的数据库和文件服务,为LLM客户端提供标准化的上下文信息和操作能力。
主要功能点
- 智能对话: 提供基于大型模型的智能问答和交互能力。
- 向量检索 (RAG): 利用向量数据库(Milvus)存储和检索文本嵌入,增强AI回答的知识广度。
- Function Call 机制: 允许AI根据用户意图调用后端注册的特定服务(工具)。
- MCP 服务: 提供标准化的数据访问和文件操作接口,作为AI调用的工具层。
- MCP-MySQL: 通过JSON-RPC暴露数据库查询和更新能力。
- FileMCP: (计划或部分实现)提供文件相关的操作能力。
- 业务管理: 集成了订单、客户、业务等基础管理模块。
- 用户认证: 提供用户注册和登录功能,保护数据安全。
安装步骤
FlowVO 是一个微服务项目,包含多个后端服务、一个Python服务和前端应用。
-
Python 环境准备:
- 确保安装 Python 3.x。
- 在 'flowvo/python/embedding_service' 目录下创建并激活虚拟环境。
- 安装必要的 Python 库:
pip install langchain sentence-transformers fastapi uvicorn - 启动向量嵌入服务:
source embedding_env/bin/activate # 如果使用了虚拟环境 cd flowvo/python/embedding_service uvicorn embed_tools_server:app --host 0.0.0.0 --port 8000
-
外部服务准备:
- 安装并启动 Milvus 向量数据库(推荐使用 Docker Compose 部署)。README提供了示例命令。
- 可选安装 Milvus 可视化工具 Attu。
- 安装并启动 MySQL 数据库。
- 安装并启动 Redis 服务(用于缓存等)。
-
后端服务部署:
- 项目使用 Spring Cloud,需要启动服务注册与发现中心 Eureka ('flowvo/eureka')。
- 构建各个 Spring Boot 服务 ('flowvo/core', 'flowvo/mcp/mcp-mysql', 'flowvo/mcp/fileMCP', 'flowvo/api' 等)。具体构建和启动方式取决于项目的实际部署配置(如 Maven/Gradle 命令,Docker)。
- 按照 README 或项目文档指引,依次启动各个后端服务:Eureka -> Core -> MCP-MySQL -> FileMCP (如果实现) -> API Gateway (如果使用)。
-
前端应用部署:
- 切换到前端目录(如 'flowvo/Floreo' 或 'flowvo/flowvo-ui'),根据使用的前端框架(Vue/React)安装依赖:
npm install - 根据前端配置,确保其能正确代理或直接访问后端服务。
- 启动前端开发服务器:
npm run dev - 访问前端界面,通常通过浏览器打开 'http://localhost:5173' (Vue) 或其他对应端口。
- 切换到前端目录(如 'flowvo/Floreo' 或 'flowvo/flowvo-ui'),根据使用的前端框架(Vue/React)安装依赖:
服务器配置 (MCP-MySQL)
MCP客户端需要知道如何连接到FlowVO平台提供的MCP服务。对于MCP-MySQL服务,它通过JSON-RPC协议提供数据库访问能力。MCP客户端可以配置该服务为一个可用的上下文源或工具提供者。
MCP客户端的配置信息通常是JSON格式,例如:
{ "name": "FlowVO-MCP-Database", "command": "...", // 实际的启动命令,通常指向java可执行文件及jar包 "args": [ "-jar", "mcp-mysql.jar", // mcp-mysql服务的jar包名称 "--server.port=50941", // MCP-MySQL服务监听的端口 "--app.rpc.path=/api/rpc/db", // MCP-MySQL服务的JSON-RPC接口路径 "--spring.datasource.url=jdbc:mysql://<db_host>:<db_port>/<db_name>", // MySQL数据库连接URL "--spring.datasource.username=<db_user>", // MySQL数据库用户名 "--spring.datasource.password=<db_password>", // MySQL数据库密码 "--spring.jpa.hibernate.ddl-auto=update" // JPA配置等 // 可能还需要其他Spring Cloud配置、日志配置等 ], "description": "FlowVO平台提供的MySQL数据库访问MCP服务,支持SQL查询和更新。", "protocol": "json-rpc", // 使用JSON-RPC协议 "transport": "http", // 使用HTTP传输方式 "rpcPath": "/api/rpc/db", // JSON-RPC接口路径,客户端连接时需要知道 "capabilities": ["tool", "resource"] // 声明提供的能力类型 }
说明:
- 'name': MCP服务的唯一标识名称。
- 'command': MCP服务的启动命令,具体取决于您的部署方式(例如,可能是 'java' 命令加上 '-jar' 和服务对应的jar包)。
- 'args': MCP服务的启动参数列表,包括端口、RPC路径以及数据库连接信息等关键配置。
- 'description': 服务的描述。
- 'protocol': 使用的协议,这里是 'json-rpc'。
- 'transport': 使用的传输方式,这里是 'http'。
- 'rpcPath': 服务监听的JSON-RPC请求路径。
- 'capabilities': 服务声明提供的能力,如 'tool' (工具调用) 和 'resource' (资源访问)。
请根据实际部署环境和 'flowvo/mcp/mcp-mysql' 模块的配置,填写 '<db_host>', '<db_port>', '<db_name>', '<db_user>', '<db_password>' 以及正确的 'command' 和 'args' 列表。
基本使用方法
用户通过前端界面与AI进行交互。当用户提出需要查询数据库(如查询订单信息)或执行数据库操作(如取消订单)的问题时,FlowVO的Core服务会识别用户意图,判断需要调用Function Call,并与大模型协作。大模型会根据暴露的MCP-MySQL服务的API schema(通过'/api/schema'获取)生成Function Call指令。Core服务接收到指令后,解析出要调用的方法(如 'query' 或 'update')和参数,然后通过JSON-RPC向MCP-MySQL服务发起请求。MCP-MySQL服务执行相应的数据库操作,并将结果返回给Core服务。Core服务再将结果整合或转述给用户。
类似地,如果涉及文件操作,Core服务会通过Function Call机制调用FileMCP服务。
信息
分类
AI与计算