Skip to content

Promptulate V2 Proposal #1055

@Undertone0809

Description

@Undertone0809

Proposal: Promptulate v2 路线图与功能规划

Promptulate v2 旨在通过模块化、易用性和强大的工程最佳实践实现框架的重大升级。本路线图详细列出了关键改进和新功能,以确保 Promptulate 始终是 LLM 应用开发的领先解决方案,让开发者可以用最低的成本上手大模型应用开发。


核心改进

  1. 移除冗余模块

    • 简化框架,去除不必要的模型相关组件。
    • 聚焦于 LLM、Agent、Tool 和 RAG 集成的核心模块。
  2. 更强的数据类型推断

    • 使用 pydantic v2,增强类型验证和推断。
    • 提升类型安全性和开发体验,使集成更直观。
    • 不再兼容 pydantic v1
  3. 优化 Tool 模块

    • 重构 Tool 模块,提供更好的可用性和灵活性。
    • 支持 音频模型视觉模型 的集成。
  4. Model Factory

    • 引入统一的 Model Factory,标准化模型管理和初始化流程。
    • 支持各种 LLM 的无缝扩展和集成。
  5. 优化函数调用与 Tool 调用兼容性

    • 重构函数和工具调用逻辑,提高原生兼容性。
    • 确保与外部库和 API 的流畅交互。
  6. 重构 LLM 逻辑

    • 重新设计 LLM 核心工作流,提高模块化和性能。
    • 优化响应解析和错误处理机制。
    • 更方便的使用 function call 的逻辑
  7. Hooks 系统重构

  8. 优化重试机制

    • 增强重试逻辑,引入指数退避和自定义异常处理。
    • 降低高负载或网络不稳定场景下的失败率。
  9. mcp 协议兼容


生态系统改进

  1. 集成 Zeeland-Core

    • 基于轻量级的 zeeland-core 库,实现高性能和一致性。
  2. 与 LangChain 的无缝衔接

    • 确保与 LangChain 的兼容性,支持链式工作流构建。
    • 便于开发者迁移或结合 LangChain 使用。
  3. Agent 模块重构

    • 重建 Agent 模块,符合 v2 精简架构。
    • 增强模块化,支持多 Agent 协作,引入过去 Cogit 设计的 Mulit-Agent 自助编排与任务调度框架。
    • 这一块还需要进一步讨论,当前的想法是基于 LangChain Agent Protocol 的生态进行 Agent Infra 的构建。
  4. 本地模型密钥管理

    • 目的:方便本地开发调试与管理,不鼓励在生产中使用。
    • 引入安全的 Model Manager,支持本地存储和检索模型密钥。
    • 调研并借鉴 LlamaIndex 的 Model Manager 实践。
    • 将配置存入 ~/.zeeland/pne
  5. 多种 Prompting 范式支持

    • 增加多种 Prompting 样式的支持,配套 回调函数 实现运行时自定义。
  6. RAG 支持

    • 通过 pip install pne[rag] 实现模块化 RAG 集成,按需使用。
    • 简化配置,让 RAG 快速上手。

开发者体验

  1. 基于 StackBlitz 的 Streamlit 项目体验

    • 让开发者可以快速使用 StreamlitStackBlitz 构建 PNE 驱动的原型项目。
  2. 精炼示例项目

    • 优化示例项目,聚焦常见的真实使用场景。
    • 提供从最小化到高级配置的逐步指导。
  3. 极致的文档支持

    • 注重 know-why,不仅仅是 know-how,帮助开发者深入理解最佳实践。
    • 强调工具、Agent 和工作流设计的实用原则。
    • 通过文档赋能开发者解决实际问题,提供可操作的深度指导。
  4. 代码生成器(待定)

    • 可选地集成一个 代码生成器,帮助用户快速生成项目模板和 Prompting 范式代码。
    • 支持快速原型开发,减少配置和学习成本。

技术优化

  1. 依赖精简

    • 减少不必要的依赖,降低框架体积和安装开销。
    • 专注于轻量化和高性能的库。
  2. 增强 Trace 和日志支持

    • 添加内置追踪机制,便于调试和性能分析。
    • 支持工具、Agent 和链式工作流的执行追踪。
    • OpenTelemetry 协议集成
  3. 分离 PNE Client 库

    • 将 PNE Client 独立为一个库:pip install pne[client]
    • 允许用户按需选择模块。
  4. 重构项目结构

  • 使用 poetry 进行多包管理,在 libs 目录下
  • 管理 pne, promptulate, pne-chat, pne[client], pne[langchain] 等包

开放性问题

  1. Agent 的必要性

    • Agent 是否应作为 PNE 核心部分,还是独立为可选模块?
    • 讨论 Agent 的依赖对生态系统的一致性影响。
  2. 代码生成器的可行性

    • 评估加入代码生成器的价值,是否符合 PNE 简单灵活的设计理念。
    • 确定其是否能提升开发者体验。
  3. Real time API 的设计


交付目标

  • Promptulate v2:包含所有核心改进和生态系统优化,Agent 处于 P1,pne.chat 为 P0 核心功能。
  • 模块化插件式架构,支持按需加载功能(如 RAG 和高级客户端)。
  • 全面的文档、示例和入门资料。
  • 卓越的开发者体验,强调清晰性、灵活性和最佳实践。

欢迎大家在此 Issue 中反馈意见和建议

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions