项目简介
DAT(Data Ask Tool)是一个强大的企业级AI工具,旨在解决传统数据查询的复杂性问题。它允许用户使用自然语言与数据库进行交互,无需编写复杂的SQL语句。通过预定义的语义层和智能代理工作流,DAT确保AI生成的结果不仅准确,而且高质量和确定性高。它支持多种数据库、大语言模型(LLM)和向量嵌入模型(Embedding Model),并提供灵活的架构和丰富的语义建模能力,助力企业实现数据驱动的决策。
主要功能点
- 自然语言问数: 用户可以通过日常语言提问,DAT能够将问题智能转换为可执行的数据库查询,并返回结构化的分析结果。
- 多数据库支持: 能够无缝连接并操作MySQL、PostgreSQL、Oracle、DuckDB等多种主流数据库,并支持通过灵活的插件式架构(SPI机制)轻松扩展对其他数据库的支持。
- 智能语义模型: 通过易于理解的YAML配置文件,定义数据中的业务概念(如实体、维度、度量),构建语义层,确保AI理解和查询的准确性。
- 大模型和向量模型集成: 可以与各种主流的大语言模型和向量嵌入模型无缝协作,提升自然语言理解能力和上下文信息检索效率。
- 向量化知识库: 自动将历史问答对、同义词和业务文档等关键知识转化为向量存储,结合检索增强生成(RAG)技术,帮助AI在复杂场景下提供更精准、更丰富的回答。
- 灵活的部署与集成: 可作为命令行工具进行本地开发和调试,也可以部署为OpenAPI服务供网页应用调用,或作为Model Context Protocol (MCP) 服务集成到支持MCP协议的智能Agent(如Claude Desktop、Cline)中,扩展其数据分析能力。
安装步骤
-
环境准备:
- Java 17+: 推荐使用OpenJDK。
- 数据库: 选择其中一种安装并准备好连接信息,例如 MySQL / PostgreSQL / Oracle / DuckDB。
- LLM API: 准备您选择的大语言模型API密钥和配置,例如 OpenAI / Anthropic / Ollama / Gemini。
-
下载CLI工具:
- Linux/macOS 系统:
# 下载最新版本 (请将 x.x.x 替换为实际版本号,例如 dat-cli-0.7.0-full.tar.gz) wget https://github.com/junjiem/dat/releases/latest/download/dat-cli-x.x.x-full.tar.gz # 解压并配置环境变量,假设解压到当前目录 tar -xzf dat-cli-x.x.x-full.tar.gz mv dat-cli-x.x.x dat-cli export PATH=$PATH:$(pwd)/dat-cli/bin - Windows 系统:
- 访问 DAT Releases页面 下载 'dat-cli-x.x.x-full.tar.gz' 文件。
- 使用WinRAR、7-Zip或Windows内置解压工具将文件解压到您选择的目录(例如 'C:\dat-cli')。
- 将解压后的 'dat-cli\bin' 目录的完整路径添加到系统 'PATH' 环境变量中。
- Linux/macOS 系统:
-
初始化项目: 打开终端或命令行,执行以下命令:
dat init按照提示输入项目名称、描述和数据库类型。
- 提示: 如果您当前没有可用的数据库,或者只想在本地使用CSV数据进行问数体验,初始化项目时数据库类型可以选择 'duckdb'。
-
配置数据源和LLM: 初始化完成后,会在您指定的工作空间下创建一个新的项目目录。进入该目录,编辑生成的 'dat_project.yaml' 文件,填入您的数据库连接信息、LLM API密钥、模型名称等。
- 提示: 如果您没有现成的数据,可以执行以下命令加载初始化项目中的示例种子数据:
# 在您的项目目录下运行,例如 ./my-dat-project dat seed -p ./my-dat-project - 更多配置细节,请参考项目目录下的 'dat_project.yaml.template' 文件。
- 提示: 如果您没有现成的数据,可以执行以下命令加载初始化项目中的示例种子数据:
服务器配置 (供MCP客户端使用)
MCP客户端(如Claude Desktop、Cline等)需要配置DAT MCP服务器的启动命令及其参数才能与其建立连接。以下是一个JSON格式的配置示例,包含MCP客户端连接DAT服务器所需的关键信息:
{ "server_name": "dat-mcp-server", "command": "dat", "args": [ "server", "mcp", "--project-path", "./path/to/your/dat-project", "--host", "0.0.0.0", "--port", "8081", "--transport", "SSE", "--variable", "key1=value1", "key2=value2" ], "comment_project_path": "DAT项目根目录的绝对或相对路径,MCP服务器将在此目录下运行。", "comment_host": "MCP服务器监听的主机地址。例如,设置为 '0.0.0.0' 允许外部访问,'127.0.0.1' 仅允许本地访问。 (默认: 0.0.0.0)", "comment_port": "MCP服务器监听的端口号。请确保该端口未被占用。 (默认: 8081)", "comment_transport": "MCP传输协议类型。支持 'SSE' (基于HTTP的Server-Sent Events,默认选项), 'STREAMABLE' (可流式传输HTTP), 'STATELESS' (无状态可流式传输HTTP)。请根据您的客户端支持和网络环境选择。", "comment_variable": "在DAT项目中使用的动态变量,以 'key=value' 形式提供。可以指定一个或多个,例如 'user=admin' 或 'region=north,year=2023'。" }
基本使用方法
-
启动DAT MCP服务器: 在您的DAT项目目录下(例如 'my-dat-project'),打开终端或命令行,执行以下命令:
dat server mcp -p ./my-dat-project服务器启动后,您将看到服务器地址和端口信息,例如:'http://0.0.0.0:8081/sse'。
-
MCP客户端连接: 配置好MCP客户端后,它将通过上述 'command' 和 'args' 启动DAT服务器,并通过 'http://<host>:<port>/<endpoint>' 连接到DAT。 客户端可以通过调用DAT提供的工具(如 'dat_agents' 列出可用的智能代理,或 'dat_ask_data' 进行自然语言问数)来利用DAT的数据分析能力。
信息
分类
开发者工具