LicenseAiHelper是面向开源平台打造的智能化开源许可证合规性分析与推荐工具。项目由北京大学开源分析实验室成员研发,融合传统规则引擎与大模型的能力,为开源项目提供全方位的许可证智能服务。
LicenseAiHelper - 基于大模型的开源软件合规性分析工具
核心功能
🔍 智能合规性分析
为平台的开源项目提供专业的合规性检测:
依赖解析与检测
- 完整依赖识别:支持直接与间接依赖解析(精确到版本)
- 多语言支持:覆盖Python、Java、JavaScript等主流开发语言
- 自动冲突检测:识别项目许可证与依赖许可证的不兼容问题
- 组件级分析:检测项目内部组件之间的许可证冲突
AI增强分析能力
- 利用大模型深度理解许可证条款语义
- 智能识别复杂的许可证兼容性关系
- 自动生成通俗易懂的合规性分析报告
- 提供法律条款的智能解读和风险提示
💡 AI智能许可证推荐(基于大模型)
结合项目特征与大模型(GPT-4.1)的决策能力:
- 多维度分析:综合考虑商业模式、社区发展、技术栈等因素
- 个性化推荐:基于项目实际需求生成定制化推荐方案
- 智能对话引导:通过交互式对话深入了解项目需求
- 详细推荐理由:AI自动生成清晰的推荐依据和使用建议
⚙️ 智能冲突消解
基于约束求解技术与AI推理,提供最优消解方案:
- SMT-Solver求解:使用约束求解器生成合规的依赖树
- 最小代价方案:给出依赖迁移、升降级、删除等最优操作建议
技术架构
AI模型
- 大模型(GPT-4.1):提供许可证语义理解、智能推荐、报告生成能力
后端服务
- Python 3.10+ & Flask框架
- Z3 SMT-Solver:依赖约束求解
- Scancode-toolkit:许可证扫描
- Libraries.io:依赖数据源
数据资源
- PyPI生态依赖数据(截止2024.6.19)
- 完整开源许可证知识库
- SPDX许可证兼容性矩阵
应用价值
对开源平台的价值
- 提升平台专业度:为平台提供业界领先的许可证合规服务
- 降低法律风险:帮助平台项目规避许可证合规风险
- 优化用户体验:通过AI技术简化许可证选择和理解流程
- 促进生态发展:推动平台开源项目的规范化发展
对开发者的价值
- 降低学习成本:AI生成的分析报告帮助开发者快速理解许可证
- 减少决策困难:智能推荐帮助开发者选择合适的许可证
- 避免合规陷阱:自动化检测防止无意中违反许可证条款
- 节省时间成本:智能消解方案快速解决依赖冲突
创新亮点
1. 大模型 + 规则引擎混合架构
- 传统规则引擎保证合规检测的准确性和可靠性
- 大模型提供灵活的语义理解和智能推理能力
- AI增强的分析报告让复杂的法律条款变得易懂
- 两者优势互补,实现精确检测与智能分析的完美结合
2. 端到端的许可证管理方案
- 从理解、选择到检测、消解的完整闭环
- 覆盖许可证生命周期的各个阶段
- 一站式解决开源项目的许可证问题
3. 精确到版本的依赖分析
- 业界首创的包版本级合规检测
- 基于SMT-Solver的精确约束求解
- 识别隐藏的间接依赖风险
4. AI增强的智能化体验
- 自动生成通俗易懂的合规性分析报告
- 智能推荐系统理解项目需求并给出最优建议
- 法律条款的智能解读降低理解门槛
快速开始
环境要求
- Python 3.10+
- CUDA 12.1+
安装部署
详细部署说明请参见 DEPLOY.md
在线体验
- 项目主页:https://licenserec-ai.osslab.org
-
合规分析:https://licenserec-ai.osslab.org/#/compliance
示例:选择`gitlink`平台,输入用户名`zhcxww`,仓库名`test_project`,点击上传! - AI推荐:https://licenserec-ai.osslab.org/#/rec
演示视频
📺 完整功能演示视频可于b站在线观看LicenseAiHelper-bilibili
演示内容包括:
- 项目依赖合规性分析(含AI增强分析)
- AI个性化许可证推荐流程
- 冲突检测与智能消解
学术成果
本项目相关核心技术已发表于软件工程领域国际顶级会议:
-
ICSE’23 DEMO Track
LicenseRec: Knowledge based Open Source License Recommendation for OSS Projects -
ASE’23
Understanding and Remediating Open-Source License Incompatibilities in the PyPI Ecosystem
开源许可
本项目采用 木兰公共许可证 v2 授权。详见 LICENSE 文件。
致谢
依赖的开源项目
- scancode-toolkit - Apache-2.0
- depends - MIT