Skip to content

yoghurt321/datax

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

datax - AI-powered pipe filter for your terminal

将自然语言转化为管道命令,让 AI 帮你处理数据流。

快速开始

安装

# 从源代码安装
git clone https://github.com/yourusername/datax.git
cd datax
pip install -e .

配置 API Key

# OpenAI(推荐)
export OPENAI_API_KEY="sk-..."

# 或使用本地 Ollama
export DATAX_LLM_PROVIDER="ollama"
export DATAX_OLLAMA_URL="http://localhost:11434"
export DATAX_OLLAMA_MODEL="llama2"

基本使用

# 提取 IP 地址
netstat -ano | datax 提取公网 IP

# 过滤日志
cat access.log | datax 只显示状态码为 500 的请求

# 列出内存占用最高的进程
ps aux | datax 列出占用内存最高的 5 个进程名字和内存百分比

功能特性

核心功能

  • 自然语言处理:用中文/英文描述需求,AI 理解你的意图
  • 本地模板缓存:常见任务(提取 IP、过滤行等)无需调用 LLM,秒速返回
  • 多模型支持:OpenAI、Ollama、本地模型
  • 流式处理:大数据流实时输出,低延迟
  • 隐私保护:支持本地模式,数据不上传

进阶功能(规划中)

  • --explain:将自然语言转换为传统命令,帮助学习
  • --save 别名:缓存常用指令
  • --local:使用本地模型
  • --stream:流式处理

项目结构

datax/
├── datax/
│   ├── __init__.py           # 包初始化
│   ├── cli.py                # 命令行入口
│   ├── intent.py             # 意图解析和模板匹配
│   ├── llm.py                # LLM 接口(OpenAI、Ollama等)
│   ├── output.py             # 输出格式化(JSON、CSV等)
│   ├── config.py             # 配置管理
│   ├── templates/            # 本地模板库
│   └── tests/                # 单元测试
├── setup.py                  # 安装配置
├── requirements.txt          # 依赖列表
└── README.md                 # 项目说明

工作原理

  1. 接收输入:从 stdin 读取数据
  2. 意图识别
    • 首先尝试匹配本地模板(快速,无延迟)
    • 如果没有匹配,调用 LLM 处理
  3. 数据处理:LLM 理解需求,处理数据
  4. 输出结果:只输出处理后的数据,不添加额外说明

开发与贡献

安装开发环境

git clone https://github.com/yourusername/datax.git
cd datax
pip install -e ".[dev]"

运行测试

python -m pytest datax/tests/

添加本地模板

datax/intent.py 中注册新模板:

matcher.register_template(
    "my_template",
    ["关键词1", "关键词2"],
    my_handler_function
)

许可证

MIT License

相关资源

About

Make your terminal understand human language — so you can focus on what truly matters.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors