create-context-template
Advanced tools
+1
-1
| { | ||
| "name": "create-context-template", | ||
| "version": "1.0.0", | ||
| "version": "1.0.1", | ||
| "description": "CLI tool to scaffold LLM projects with context engineering architecture", | ||
@@ -5,0 +5,0 @@ "type": "module", |
+194
-95
@@ -1,13 +0,14 @@ | ||
| # context-cli | ||
| # create-context-template | ||
| CLI tool to scaffold context-template-cli projects - 快速创建基于上下文工程的 LLM 应用开发项目 | ||
| 快速创建基于上下文工程的 LLM 应用开发项目 | CLI tool to scaffold LLM projects with context engineering architecture | ||
| [](https://www.npmjs.com/package/context-cli) | ||
| [](https://www.npmjs.com/package/create-context-template) | ||
| [](https://www.npmjs.com/package/create-context-template) | ||
| [](https://opensource.org/licenses/MIT) | ||
| ## 特性 | ||
| ## ✨ 特性 | ||
| - 🚀 **快速启动** - 一分钟内创建完整的 LLM 应用项目 | ||
| - 🎨 **现代 CLI** - 使用 @clack/prompts 提供优雅的交互体验 | ||
| - 📦 **多包管理器** - 支持 bun、pnpm、npm | ||
| - 📦 **多包管理器** - 支持 npm、pnpm、yarn、bun | ||
| - 🔧 **完整工具链** - 预配置 TypeScript、Vitest、ESLint | ||
@@ -18,57 +19,79 @@ - 🤖 **LLM 集成** - 内置 DeepSeek API 支持,可扩展其他提供商 | ||
| - 🧪 **测试评估** - 完整的测试和评估系统 | ||
| - 📚 **架构文档** - 详细的上下文工程设计文档 | ||
| ## 安装 | ||
| ## 📦 使用方式 | ||
| ### 方式 1: npm create (推荐) | ||
| ```bash | ||
| # 使用 npm | ||
| npm install -g context-cli | ||
| npm create context-template | ||
| ``` | ||
| # 使用 pnpm | ||
| pnpm add -g context-cli | ||
| ### 方式 2: pnpm | ||
| # 使用 bun | ||
| bun add -g context-cli | ||
| ```bash | ||
| pnpm create context-template | ||
| ``` | ||
| ## 使用 | ||
| ### 方式 3: yarn | ||
| 创建新项目: | ||
| ```bash | ||
| yarn create context-template | ||
| ``` | ||
| ### 方式 4: bun | ||
| ```bash | ||
| context-cli | ||
| # 或 | ||
| create-context-app | ||
| bun create context-template | ||
| ``` | ||
| 然后按照提示操作: | ||
| ### 方式 5: npx | ||
| ```bash | ||
| npx create-context-template | ||
| ``` | ||
| ### 方式 6: 全局安装 | ||
| ```bash | ||
| npm install -g create-context-template | ||
| create-context-template | ||
| ``` | ||
| ## 🎯 快速开始 | ||
| ### 1. 创建项目 | ||
| 运行命令后,按照提示操作: | ||
| 1. **输入项目名称**(例如:my-ai-app) | ||
| 2. **选择包管理器**(bun / pnpm / npm) | ||
| 2. **选择包管理器**(npm / pnpm / yarn / bun) | ||
| 3. **选择是否立即安装依赖** | ||
| ## 快速开始 | ||
| ### 2. 配置环境变量 | ||
| 创建项目后: | ||
| ```bash | ||
| # 进入项目目录 | ||
| cd my-ai-app | ||
| # 配置环境变量 | ||
| cp .env.example .env | ||
| # 编辑 .env 文件,添加你的 DEEPSEEK_API_KEY | ||
| ``` | ||
| # 运行示例 | ||
| ### 3. 运行示例 | ||
| ```bash | ||
| npm run dev # 简单对话示例 | ||
| npm run dev:tool # 工具调用示例 | ||
| ``` | ||
| # 运行测试 | ||
| npm run test | ||
| ### 4. 阅读架构文档 | ||
| # 构建项目 | ||
| npm run build | ||
| ```bash | ||
| cat docs/架构设计\ -\ 上下文工程.md | ||
| # 或在编辑器中打开 | ||
| ``` | ||
| ## 项目结构 | ||
| **强烈建议先阅读架构文档,理解上下文工程的设计理念!** | ||
| ## 📁 项目结构 | ||
| 生成的项目包含以下模块: | ||
@@ -78,15 +101,22 @@ | ||
| my-ai-app/ | ||
| ├── llm/ # LLM 服务层 | ||
| │ ├── services/ # LLM 提供商实现(DeepSeek) | ||
| │ ├── utils/ # 工具函数(executeToolLoop) | ||
| │ └── factory.ts # LLM 服务工厂 | ||
| ├── context/ # 上下文管理系统 | ||
| │ ├── modules/ # 6 种上下文模块 | ||
| │ └── ContextManager.ts # 统一管理器 | ||
| ├── tool/ # 工具管理系统 | ||
| │ ├── FileReadTool/ # 文件读取工具 | ||
| │ ├── GrepTool/ # 正则搜索工具 | ||
| │ └── ToolManager.ts # 工具管理器 | ||
| ├── agent/ # Agent 编排(预留) | ||
| ├── evaluationTemplate/ # 测试评估系统 | ||
| ├── core/ # 核心系统模块 | ||
| │ ├── llm/ # LLM 服务层 | ||
| │ │ ├── services/ # LLM 提供商实现(DeepSeek) | ||
| │ │ ├── utils/ # 工具函数(executeToolLoop) | ||
| │ │ └── factory.ts # LLM 服务工厂 | ||
| │ ├── context/ # 上下文管理系统 | ||
| │ │ ├── modules/ # 6 种上下文模块 | ||
| │ │ └── ContextManager.ts # 统一管理器 | ||
| │ ├── tool/ # 工具管理系统 | ||
| │ │ ├── ReadFile/ # 文件读取工具 | ||
| │ │ ├── ListFiles/ # 文件列表工具 | ||
| │ │ └── ToolManager.ts # 工具管理器 | ||
| │ ├── agent/ # Agent 编排 | ||
| │ │ ├── SimpleAgent.ts # 简单 Agent 实现 | ||
| │ │ └── MultiAgent.ts # 多 Agent 编排 | ||
| │ └── promptManager/ # 提示词管理 | ||
| ├── evaluation/ # 测试评估系统 | ||
| │ ├── EventBus.ts # 事件总线 | ||
| │ ├── evaluate.ts # 评估器 | ||
| │ └── example.ts # 评估示例 | ||
| ├── utils/ # 工具函数 | ||
@@ -96,46 +126,89 @@ │ └── logger.ts # 日志工具 | ||
| │ └── env.ts # 环境变量加载 | ||
| └── examples/ # 使用示例 | ||
| ├── simple-chat.ts # 简单对话 | ||
| └── tool-calling.ts # 工具调用 | ||
| ├── examples/ # 使用示例 | ||
| │ ├── simple-chat.ts # 简单对话 | ||
| │ └── multi-chat.ts # 多轮对话 | ||
| └── docs/ # 项目文档 | ||
| └── 架构设计 - 上下文工程.md # 核心架构文档 ⭐ | ||
| ``` | ||
| ## 核心功能 | ||
| ## 🧠 核心功能 | ||
| ### 1. LLM 服务层 | ||
| 基于 OpenAI SDK 实现的多模型支持: | ||
| - ✅ DeepSeek API 集成 | ||
| - ✅ 工具调用支持 | ||
| - ✅ 工具调用支持(Tool Calling) | ||
| - ✅ 流式响应 | ||
| - 🔮 多提供商支持(OpenAI、Anthropic 等) | ||
| - 🔮 可扩展其他提供商(OpenAI、Anthropic 等) | ||
| ### 2. 上下文管理 | ||
| **核心方法:** | ||
| - `complete(messages, tools)` - 完整的 LLM 调用,支持工具 | ||
| - `simpleChat(userMessage, systemPrompt)` - 简单对话 | ||
| - `generate(prompt)` - 生成式调用 | ||
| 6 种上下文类型: | ||
| - **Conversation** - 会话历史 | ||
| - **Tool** - 工具调用记录 | ||
| - **Memory** - 用户记忆 | ||
| - **SystemPrompt** - 系统提示词 | ||
| - **StructuredOutput** - 结构化输出 | ||
| - **RelevantContext** - 相关上下文 | ||
| ### 2. 上下文管理系统 | ||
| 基于**上下文工程**理念的 6 种上下文类型: | ||
| | 上下文类型 | 说明 | 用途 | | ||
| |----------|------|------| | ||
| | **ConversationContext** | 会话历史记录 | 维护对话连续性 | | ||
| | **ToolMessageSequenceContext** | 工具调用序列 | 追踪工具使用历史 | | ||
| | **MemoryContext** | 用户记忆 | 长期记忆存储 | | ||
| | **SystemPromptContext** | 系统提示词 | 定义 AI 行为 | | ||
| | **StructuredOutputContext** | 结构化输出 | JSON 格式化输出 | | ||
| | **RelevantContext** | 相关上下文 | 动态相关信息 | | ||
| ### 3. 工具系统 | ||
| 内置工具: | ||
| - **FileReadTool** - 读取文件内容 | ||
| - **GrepTool** - 正则表达式搜索 | ||
| 可扩展的工具调用框架: | ||
| 易于扩展,支持自定义工具。 | ||
| **内置工具:** | ||
| - **ReadFileTool** - 读取文件内容 | ||
| - **ListFilesTool** - 列出目录文件 | ||
| ### 4. 评估系统 | ||
| **工具定义规范:** | ||
| - 标准化的工具接口 | ||
| - JSON Schema 参数定义 | ||
| - 权限控制和并发安全 | ||
| - 工具执行上下文 | ||
| - EventBus 事件收集 | ||
| ### 4. Agent 框架 | ||
| **SimpleAgent**: 单一 Agent 实现 | ||
| **MultiAgent**: 多 Agent 协作编排(预留扩展) | ||
| ### 5. 评估系统 | ||
| 基于 EventBus 的测试评估框架: | ||
| - 事件收集和追踪 | ||
| - Agent 行为评估 | ||
| - 工具调用追踪 | ||
| - 工具调用分析 | ||
| - 自定义评估指标 | ||
| ## 示例代码 | ||
| ## 💡 设计理念 | ||
| ### 上下文工程 (Context Engineering) | ||
| 本项目基于**上下文工程**的设计理念: | ||
| > **核心**: LLM 模型是应用的关键核心 | ||
| > **重心**: 开发重心在上下文的获取和编排 | ||
| > **优势**: 随着模型能力提升,应用效果自动提升;同时充分发挥开发者的创造力 | ||
| **核心思想:** | ||
| 1. **LLM 是核心** - 保证核心是 LLM,随着模型能力提升,Agent 效果自动变好 | ||
| 2. **开发重心是上下文** - 极大发挥应用开发者的能力和创造力 | ||
| 3. **统一上下文管理** - 将所有上下文统一管理,LLM 直接与上下文交互 | ||
| 详细的架构设计请参考生成项目中的 `docs/架构设计 - 上下文工程.md` | ||
| ## 📝 示例代码 | ||
| ### 简单对话 | ||
| ```typescript | ||
| import { createLLMService } from './llm/index.js'; | ||
| import { createLLMService } from './core/llm/index.js'; | ||
| import { loadEnv } from './config/env.js'; | ||
@@ -162,5 +235,5 @@ | ||
| ```typescript | ||
| import { createLLMService } from './llm/index.js'; | ||
| import { ContextManager } from './context/index.js'; | ||
| import { ToolManager } from './tool/index.js'; | ||
| import { createLLMService } from './core/llm/index.js'; | ||
| import { ContextManager } from './core/context/index.js'; | ||
| import { ToolManager } from './core/tool/index.js'; | ||
@@ -180,19 +253,29 @@ // 初始化上下文和工具 | ||
| // 调用 LLM | ||
| const messages = contextManager.getFormattedContext(); | ||
| const tools = toolManager.getTools(); | ||
| const response = await service.complete(messages, tools); | ||
| // 使用 generate 方法自动处理工具调用 | ||
| const answer = await service.generate( | ||
| '请帮我读取 package.json 文件,并告诉我项目名称是什么' | ||
| ); | ||
| console.log(answer); | ||
| ``` | ||
| ## 开发 | ||
| ## 🛠️ 开发 | ||
| ### 克隆本仓库 | ||
| ```bash | ||
| # 克隆仓库 | ||
| git clone https://github.com/yourusername/context-cli.git | ||
| cd context-cli | ||
| git clone https://github.com/WakeUp-Jin/context-cli-template.git | ||
| cd context-cli-template | ||
| ``` | ||
| # 安装依赖 | ||
| ### 安装依赖 | ||
| ```bash | ||
| npm install | ||
| ``` | ||
| # 开发模式 | ||
| ### 本地开发 | ||
| ```bash | ||
| # 开发模式运行 | ||
| npm run dev | ||
@@ -205,13 +288,19 @@ | ||
| npm link | ||
| context-cli | ||
| create-context-template | ||
| ``` | ||
| ## 文档 | ||
| ### 发布新版本 | ||
| - [实施计划](./docs/implementation-plan.md) - 详细的架构设计和实施步骤 | ||
| - [API 文档](#) - API 参考文档 | ||
| - [贡献指南](#) - 如何贡献代码 | ||
| ```bash | ||
| # 更新版本号 | ||
| npm version patch # 1.0.0 -> 1.0.1 | ||
| npm version minor # 1.0.0 -> 1.1.0 | ||
| npm version major # 1.0.0 -> 2.0.0 | ||
| ## 技术栈 | ||
| # 发布到 npm | ||
| npm publish | ||
| ``` | ||
| ## 📚 技术栈 | ||
| - **TypeScript** - 类型安全的 JavaScript | ||
@@ -224,13 +313,15 @@ - **@clack/prompts** - 现代化的 CLI 交互框架 | ||
| ## 路线图 | ||
| ## 🗺️ 路线图 | ||
| ### v1.0 - 核心功能 ✅ | ||
| - [x] CLI 交互界面 | ||
| - [x] 包管理器选择 | ||
| - [x] 多包管理器支持 | ||
| - [x] 项目模板生成 | ||
| - [x] 配置文件生成 | ||
| - [x] 依赖自动安装 | ||
| - [x] 架构文档集成 | ||
| ### v1.1 - 增强功能 🔮 | ||
| ### v1.1 - 增强功能 🚧 | ||
| - [ ] 模板类型选择(full/minimal) | ||
| - [ ] 更多 LLM 提供商模板 | ||
| - [ ] 更详细的进度提示 | ||
@@ -241,15 +332,21 @@ - [ ] 错误恢复机制 | ||
| - [ ] Web 服务器集成(Hono/Koa/Express) | ||
| - [ ] 多 LLM 提供商支持 | ||
| - [ ] 插件系统 | ||
| - [ ] 项目模板市场 | ||
| - [ ] GUI 配置工具 | ||
| ## 贡献 | ||
| ## 🤝 贡献 | ||
| 欢迎贡献!请查看 [贡献指南](#) 了解如何参与项目开发。 | ||
| 欢迎贡献!如果你有任何建议或发现问题,请: | ||
| ## 许可证 | ||
| 1. Fork 本仓库 | ||
| 2. 创建你的特性分支 (`git checkout -b feature/AmazingFeature`) | ||
| 3. 提交你的更改 (`git commit -m 'Add some AmazingFeature'`) | ||
| 4. 推送到分支 (`git push origin feature/AmazingFeature`) | ||
| 5. 打开 Pull Request | ||
| ## 📄 许可证 | ||
| [MIT](./LICENSE) | ||
| ## 致谢 | ||
| ## 🙏 致谢 | ||
@@ -260,2 +357,4 @@ 感谢所有为这个项目做出贡献的开发者! | ||
| Made with ❤️ by the Context-CLI Team | ||
| **Made with ❤️ by WakeUp-Jin** | ||
| 如果这个项目对你有帮助,请给个 ⭐️ 吧! |
192731
1.74%352
39.13%