项目简介

FlowVO 是一个综合性的智能应用平台,采用微服务架构,集成了自然语言处理、向量数据库和多种业务服务(如订单、客户、业务管理)。平台的核心功能是通过 Function Call 机制,使得AI能够调用后端暴露的服务能力。其中包括了遵循 Model Context Protocol (MCP) 标准构建的数据库和文件服务,为LLM客户端提供标准化的上下文信息和操作能力。

主要功能点

  • 智能对话: 提供基于大型模型的智能问答和交互能力。
  • 向量检索 (RAG): 利用向量数据库(Milvus)存储和检索文本嵌入,增强AI回答的知识广度。
  • Function Call 机制: 允许AI根据用户意图调用后端注册的特定服务(工具)。
  • MCP 服务: 提供标准化的数据访问和文件操作接口,作为AI调用的工具层。
    • MCP-MySQL: 通过JSON-RPC暴露数据库查询和更新能力。
    • FileMCP: (计划或部分实现)提供文件相关的操作能力。
  • 业务管理: 集成了订单、客户、业务等基础管理模块。
  • 用户认证: 提供用户注册和登录功能,保护数据安全。

安装步骤

FlowVO 是一个微服务项目,包含多个后端服务、一个Python服务和前端应用。

  1. 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
  2. 外部服务准备:

    • 安装并启动 Milvus 向量数据库(推荐使用 Docker Compose 部署)。README提供了示例命令。
    • 可选安装 Milvus 可视化工具 Attu。
    • 安装并启动 MySQL 数据库。
    • 安装并启动 Redis 服务(用于缓存等)。
  3. 后端服务部署:

    • 项目使用 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 (如果使用)。
  4. 前端应用部署:

    • 切换到前端目录(如 'flowvo/Floreo' 或 'flowvo/flowvo-ui'),根据使用的前端框架(Vue/React)安装依赖:
      npm install
    • 根据前端配置,确保其能正确代理或直接访问后端服务。
    • 启动前端开发服务器:
      npm run dev
    • 访问前端界面,通常通过浏览器打开 'http://localhost:5173' (Vue) 或其他对应端口。

服务器配置 (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与计算