README
🚀 SourceSage:大语言模型(LLM)的高效代码内存
SourceSage 是一款基于模型上下文协议(MCP)的服务器,旨在助力大语言模型(LLM)高效理解并记忆代码库中的关键信息。它支持多种编程语言,专注于存储与检索代码语义、实体及其关系,为代码处理带来了新的高效解决方案。
🚀 快速开始
SourceSage 能帮助大语言模型(LLM)更好地理解和记忆代码库,以下是其安装与使用的基本步骤。
安装方法
- 克隆仓库:
git clone https://github.com/your-repository.git cd source-sage - 运行服务器:
python3 -m sourcesage.server
使用说明
- 分析代码:通过 LLM 分析你的代码文件。
"请分析这个 Python 文件,并注册其中的关键实体和关系。" - 注册实体:LLM 会使用
register_entity工具来存储代码中的实体。"我会注册这个文件中的主类。" - 查询知识:后续可以通过以下方式查询代码库:
- 获取定义在代码库中的类列表:
"请告诉我我的代码库中有哪些类?" - 查看特定类的详细信息:
"请显示 `User` 类的详细信息。"
- 获取定义在代码库中的类列表:
- 获取编码模式:可以查询代码中使用的模式和约定。
"请告诉我我的代码库中使用了哪些设计模式?"
✨ 主要特性
- 利用 LLM 的理解能力:SourceSage 利用 LLM 对代码语义的理解,能够处理多种编程语言。
- 存储语义知识:与传统的代码分析工具不同,SourceSage 专注于存储代码的语义和实体之间的关系。
- 语言中立:支持任何 LLM 能够理解的编程语言。
- 优化存储效率:采用高效的存储机制,最小化 token 使用量。
- 随 LLM 技术进步而发展:随着 LLM 的能力提升,SourceSage 也能相应改进代码理解和分析。
💻 使用示例
基础用法
以下是 SourceSage 的一个简单使用流程示例:
# 分析代码
"请分析这个 Python 文件,并注册其中的关键实体和关系。"
# 注册实体
"我会注册这个文件中的主类。"
# 查询类列表
"请告诉我我的代码库中有哪些类?"
高级用法
在实际应用中,我们可能需要处理更复杂的场景,例如查询特定类的详细信息:
"请显示 `User` 类的详细信息。"
📚 详细文档
核心功能模块
- 注册实体:
register_entity:用于存储代码中的关键实体(如类、函数等)。register_relationship:用于记录实体之间的关系(如继承、依赖等)。
- 查询知识:
query_entities:根据语言、名称模式或其他条件查询实体。get_entity_details:获取特定实体的详细信息。query_patterns:按编程语言或模式名称查询代码模式。query_style_conventions:按编程语言或约定名称查询编码风格。
- 统计与清理:
get_knowledge_statistics:获取知识图谱的统计数据。clear_knowledge:清空所有存储的知识。
示例工作流
- 分析代码:
"请分析这个 Python 文件,并注册其中的关键实体和关系。" - 注册实体:
"我会注册这个文件中的主类。" - 注册关系:
"我会记录这些类之间的继承关系。" - 查询知识:
- 获取类列表:
"请告诉我我的代码库中有哪些类?" - 查看特定类的详细信息:
"请显示 `User` 类的详细信息。"
- 获取类列表:
🤝 项目贡献
欢迎社区贡献!如果你有任何问题或建议,请随时提交 Pull Request。
📄 许可证
本项目采用 MIT License 许可证,具体详情请参阅 LICENSE 文件。
Scan to contact