Skip to content

基于AI解析的结构化任务管理系统. 安徽大学集成电路学院程序设计实训. Kicks your tasks in the ass… so you don’t have to.

License

Notifications You must be signed in to change notification settings

Zeeh-Lin/Ass-Igned

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ass-Igned: 基于 AI 解析的结构化任务管理系统

Kicks your tasks in the ass… so you don’t have to.

安徽大学 集成电路学院|程序设计实训课程项目


项目简介

Ass-Igned 是一个轻量级的命令行(CLI)任务管理系统,面向“任务记录与整理成本过高”的实际问题。

项目使用 C 语言实现基础数据结构与存储逻辑,并通过 AI 服务将自然语言任务解析为结构化数据(时间、优先级等),从而减少人工分类与判断的负担。


核心特性

  • 🧠 自然语言解析:将任务描述解析为结构化字段(截止时间、优先级 P0–P3)
  • 🗂 单文件本地存储:自定义任务数据库文件,支持快速查找与空间复用
  • 💻 CLI 交互:基于 readline 的交互式命令行
  • 🧩 分层模块设计:交互层 / AI 层 / 数据层解耦,结构清晰

项目结构

Ass-Igned
├── LICENSE
├── Makefile  // 项目的构建脚本,用于定义编译、链接、清理等操作
├── README.md
├── docs  // 文档目录,用于存放设计文档
├── include  // 包含了所有模块的公共头文件
│   ├── ai_client.h  // AI 客户端模块的接口
│   ├── api_key.h  // 存储API密钥的头文件,被排除在版本控制之外。
│   ├── cJSON.h  // 第三方 JSON 解析库 cJSON 的头文件
│   ├── common.h  // 通用定义,跨模块共享
│   ├── database.h  // 数据库模块的顶级接口,将底层文件操作抽象
│   ├── log.h  // 日志模块的接口
│   ├── macro.h  //存放项目中的各种宏
│   ├── monitor.h  // 监控器(用户交互)模块的接口
│   └── parser.h  // 解析器模块的接口
├── package-lock.json
├── package.json
└── src
    ├── ai_client  // AI交互层
    │   ├── ai_client.c  // AI 客户端与外部 API 交互逻辑
    │   └── prompts.c  // 用于不同 AI 功能的提示词模板
    ├── ass_main.c  // 主程序入口点
    ├── database  // 数据层
    │   ├── database.c  // 数据库模块的业务逻辑实现,对外提供接口
    │   ├── index_manager.c  // 索引管理器的实现
    │   ├── index_manager.h  // 索引管理器的接口文件
    │   ├── parser.c  // 解析器的实现
    │   ├── storage_manager.c  // 存储管理器的实现
    │   └── storage_manager.h  // 存储管理器的接口文件
    ├── monitor  // 交互层
    │   ├── adb.c  // Ass-Igned Debugger(ADB) 的命令实现
    │   ├── adb.h  // ADB 的接口
    │   └── monitor.c  // 主监控器的实现
    └── utils  // 工具函数和库
        ├── cJSON.c
        └── log.c

环境要求

  • Linux (在 Ubuntu 24.04 LTS 上经过测试)
  • GCC
  • Make

依赖库:

  • libcurl —— 用于 AI API / HTTP 请求
  • readline —— CLI 交互体验

Quick Start

配置 AI API Key

本项目默认不包含 API Key,需要用户自行配置:

  1. include/ 目录下新建文件 api_key.h
  2. 定义你的 API Key,例如:
#define MY_API_KEY "your_api_key_here"

相关宏定义位于 ai_client.h,如有需要可直接修改为你自己的 Key 或 API 地址。

设置项目根目录环境变量

项目使用 ASS_HOME 作为根目录,请先设置:

export ASS_HOME=$(pwd)

建议将其加入 ~/.bashrc~/.zshrc,取决于你的Shell。

安装依赖

sudo apt install libcurl4-openssl-dev
sudo apt install libreadline-dev

编译并运行

make run

默认行为:

  • 可执行文件:build/ass
  • 日志文件:build/ass.log
  • 数据库:build/tasks.db

调试与工具支持

使用 GDB 调试

make gdb

使用 Valgrind 进行内存检查

make valgrind

内存报告将保存至:

build/valgrind.log

Makefile 设计说明(简要)

  • 自动递归扫描 src/ 下的所有 .c 文件
  • 使用 -MMD 自动生成依赖,避免手动维护
  • 开启 -Wall -Werror,强制工程级代码质量
  • 构建产物全部集中在 build/,保持源码目录整洁

TODO / 可扩展方向

  • 更复杂的任务依赖与调度
  • 任务优先级与时间冲突检测
  • 插件化 AI Provider(支持多模型)
  • TUI / Web 前端

About

基于AI解析的结构化任务管理系统. 安徽大学集成电路学院程序设计实训. Kicks your tasks in the ass… so you don’t have to.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published