Aliipou/codebase_intelligence

GitHub: Aliipou/codebase_intelligence

一个基于语义图和约束 DSL 的 Python 库,通过分析代码库结构来约束 LLM 生成符合项目架构规范的代码,并提供自动验证与反馈修正能力。

Stars: 3 | Forks: 0

[![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=flat&logo=python)](https://python.org) [![License](https://img.shields.io/badge/License-MIT-green?style=flat)](LICENSE) # codebase-intelligence **约束感知的代码生成:语义图 + LLM 流水线。**
## 这是什么 一个用于构建代码库语义模型,并利用该模型来约束 LLM 代码生成的 Python 库。它**不是**一个 CLI 工具或向量搜索产品——它是一个可以嵌入到你自己的工具链中的库。 核心循环: 1. 将 Python 仓库解析为 `SemanticGraph`(节点 = 模块/类/函数,边 = 导入/调用/包含关系) 2. 提取结构模式并将其编译为 `ConstraintSet` 3. 将任务描述 + 约束条件编译为上下文相关的 LLM 提示词 4. 调用 LLM 提供商(或用于测试的内置 `StubLLMProvider`) 5. 根据约束条件验证生成的代码;如果违反约束,则最多重试 `max_retries` 次 ## 已实现的功能 | 组件 | 状态 | |-----------|--------| | `SemanticGraph` — 基于 NetworkX 的有向图 | 已完成 | | `ASTParser` — Python AST → 图节点/边 | 已完成 | | `PatternExtractor` — 命名、错误格式、分层模式 | 已完成 | | `ConstraintSet` / 约束 DSL(JSON 序列化) | 已完成 | | `ConstraintCompiler` — 将图 + 模式转换为约束 | 已完成 | | `PromptCompiler` — 将约束注入 LLM 提示词 | 已完成 | | `Pipeline` — 完整的分析 → 生成 → 验证循环 | 已完成 | | `FeedbackEngine` — 违规诊断 + 修正上下文 | 已完成 | | `CodeAgent` — 基于流水线的多步代理 | 已完成 | | HTTP API / CLI | **尚未构建** | | 嵌入 / 向量搜索 | **尚未构建** | | Go / TypeScript 解析器 | **尚未构建** | ## 安装 ``` pip install codebase-intelligence ``` ## 使用方法 ``` from codebase_intelligence import Pipeline, StubLLMProvider # 指向真正的 LLM provider (OpenAI, Anthropic 等) # StubLLMProvider 仅用于测试。 provider = StubLLMProvider(responses=["def hello(): return 'hello'"]) pipeline = Pipeline(llm=provider) graph, constraints = pipeline.analyze_repo("path/to/your/repo") result = pipeline.generate("Add a hello function", graph, constraints) print(result.is_valid) # True/False print(result.generated_code) # the output print(result.violations) # ConstraintViolation list if invalid ``` ## 约束 DSL 约束以 JSON 格式表示,可以保存和加载: ``` from codebase_intelligence import ConstraintDSL, ConstraintSet, MustNotCrossConstraint cs = ConstraintSet(name="my-project", constraints=[ MustNotCrossConstraint(from_layer="api", to_layer="db"), ]) ConstraintDSL.save(cs, "constraints.json") # 稍后: cs2 = ConstraintDSL.load("constraints.json") ``` ## 架构 ``` Repo on disk | v [ASTParser] Python AST → SemanticGraph nodes + edges | v [PatternExtractor] Structural patterns from graph | v [ConstraintCompiler] Patterns → ConstraintSet | v [PromptCompiler] Task description + constraints → LLM prompt | v [LLMProvider] Any provider implementing LLMProvider ABC | v [CodeValidator] Lint + test run + constraint check | v (on violation, up to max_retries) [FeedbackEngine] Diagnose violation → RefinementContext → retry ``` ## 测试 ``` pip install -e ".[dev]" pytest ``` 强制执行 100% 分支覆盖率。 ## 许可证 MIT
标签:AI编程, AST解析, C2, DevSecOps, DLL 劫持, Homebrew安装, LLM, NetworkX, Python, Unmanaged PE, WebSocket, 上游代理, 云安全监控, 人工智能, 代码分析, 代码安全, 代码智能, 代码校验, 代码生成, 依赖分析, 凭证管理, 图神经网络, 大语言模型, 无后门, 渗透测试工具, 漏洞枚举, 特权检测, 用户模式Hook绕过, 突变策略, 约束满足, 自动化payload嵌入, 自动化文档, 语义图, 逆向工具, 静态分析