Proposal: Promptulate v2 路线图与功能规划
Promptulate v2 旨在通过模块化、易用性和强大的工程最佳实践实现框架的重大升级。本路线图详细列出了关键改进和新功能,以确保 Promptulate 始终是 LLM 应用开发的领先解决方案,让开发者可以用最低的成本上手大模型应用开发。
核心改进
-
移除冗余模块
- 简化框架,去除不必要的模型相关组件。
- 聚焦于 LLM、Agent、Tool 和 RAG 集成的核心模块。
-
更强的数据类型推断
- 使用
pydantic v2,增强类型验证和推断。
- 提升类型安全性和开发体验,使集成更直观。
- 不再兼容
pydantic v1
-
优化 Tool 模块
- 重构
Tool 模块,提供更好的可用性和灵活性。
- 支持 音频模型 和 视觉模型 的集成。
-
Model Factory
- 引入统一的 Model Factory,标准化模型管理和初始化流程。
- 支持各种 LLM 的无缝扩展和集成。
-
优化函数调用与 Tool 调用兼容性
- 重构函数和工具调用逻辑,提高原生兼容性。
- 确保与外部库和 API 的流畅交互。
-
重构 LLM 逻辑
- 重新设计 LLM 核心工作流,提高模块化和性能。
- 优化响应解析和错误处理机制。
- 更方便的使用 function call 的逻辑
-
Hooks 系统重构
- 重建 hooks 架构,提供更灵活的定制化能力。
- 参考 langchain callback handler 的设计理念来设计
-
优化重试机制
- 增强重试逻辑,引入指数退避和自定义异常处理。
- 降低高负载或网络不稳定场景下的失败率。
-
mcp 协议兼容
生态系统改进
-
集成 Zeeland-Core
- 基于轻量级的 zeeland-core 库,实现高性能和一致性。
-
与 LangChain 的无缝衔接
- 确保与 LangChain 的兼容性,支持链式工作流构建。
- 便于开发者迁移或结合 LangChain 使用。
-
Agent 模块重构
- 重建 Agent 模块,符合 v2 精简架构。
- 增强模块化,支持多 Agent 协作,引入过去 Cogit 设计的 Mulit-Agent 自助编排与任务调度框架。
- 这一块还需要进一步讨论,当前的想法是基于 LangChain Agent Protocol 的生态进行 Agent Infra 的构建。
-
本地模型密钥管理
- 目的:方便本地开发调试与管理,不鼓励在生产中使用。
- 引入安全的 Model Manager,支持本地存储和检索模型密钥。
- 调研并借鉴 LlamaIndex 的 Model Manager 实践。
- 将配置存入
~/.zeeland/pne 下
-
多种 Prompting 范式支持
- 增加多种 Prompting 样式的支持,配套 回调函数 实现运行时自定义。
-
RAG 支持
- 通过
pip install pne[rag] 实现模块化 RAG 集成,按需使用。
- 简化配置,让 RAG 快速上手。
开发者体验
-
基于 StackBlitz 的 Streamlit 项目体验
- 让开发者可以快速使用 Streamlit 和 StackBlitz 构建 PNE 驱动的原型项目。
-
精炼示例项目
- 优化示例项目,聚焦常见的真实使用场景。
- 提供从最小化到高级配置的逐步指导。
-
极致的文档支持
- 注重 know-why,不仅仅是 know-how,帮助开发者深入理解最佳实践。
- 强调工具、Agent 和工作流设计的实用原则。
- 通过文档赋能开发者解决实际问题,提供可操作的深度指导。
-
代码生成器(待定)
- 可选地集成一个 代码生成器,帮助用户快速生成项目模板和 Prompting 范式代码。
- 支持快速原型开发,减少配置和学习成本。
技术优化
-
依赖精简
- 减少不必要的依赖,降低框架体积和安装开销。
- 专注于轻量化和高性能的库。
-
增强 Trace 和日志支持
- 添加内置追踪机制,便于调试和性能分析。
- 支持工具、Agent 和链式工作流的执行追踪。
- OpenTelemetry 协议集成
-
分离 PNE Client 库
- 将 PNE Client 独立为一个库:
pip install pne[client]。
- 允许用户按需选择模块。
-
重构项目结构
- 使用 poetry 进行多包管理,在 libs 目录下
- 管理 pne, promptulate, pne-chat, pne[client], pne[langchain] 等包
开放性问题
-
Agent 的必要性
- Agent 是否应作为 PNE 核心部分,还是独立为可选模块?
- 讨论 Agent 的依赖对生态系统的一致性影响。
-
代码生成器的可行性
- 评估加入代码生成器的价值,是否符合 PNE 简单灵活的设计理念。
- 确定其是否能提升开发者体验。
-
Real time API 的设计
交付目标
- Promptulate v2:包含所有核心改进和生态系统优化,Agent 处于 P1,pne.chat 为 P0 核心功能。
- 模块化插件式架构,支持按需加载功能(如 RAG 和高级客户端)。
- 全面的文档、示例和入门资料。
- 卓越的开发者体验,强调清晰性、灵活性和最佳实践。
欢迎大家在此 Issue 中反馈意见和建议
Proposal: Promptulate v2 路线图与功能规划
Promptulate v2 旨在通过模块化、易用性和强大的工程最佳实践实现框架的重大升级。本路线图详细列出了关键改进和新功能,以确保 Promptulate 始终是 LLM 应用开发的领先解决方案,让开发者可以用最低的成本上手大模型应用开发。
核心改进
移除冗余模块
更强的数据类型推断
pydanticv2,增强类型验证和推断。pydantic v1优化 Tool 模块
Tool模块,提供更好的可用性和灵活性。Model Factory
优化函数调用与 Tool 调用兼容性
重构 LLM 逻辑
Hooks 系统重构
优化重试机制
mcp 协议兼容
生态系统改进
集成 Zeeland-Core
与 LangChain 的无缝衔接
Agent 模块重构
本地模型密钥管理
~/.zeeland/pne下多种 Prompting 范式支持
RAG 支持
pip install pne[rag]实现模块化 RAG 集成,按需使用。开发者体验
基于 StackBlitz 的 Streamlit 项目体验
精炼示例项目
极致的文档支持
代码生成器(待定)
技术优化
依赖精简
增强 Trace 和日志支持
分离 PNE Client 库
pip install pne[client]。重构项目结构
开放性问题
Agent 的必要性
代码生成器的可行性
Real time API 的设计
交付目标
欢迎大家在此 Issue 中反馈意见和建议