项目介绍:Promptulate
概述
Promptulate 是由 Cogit Lab 精心打造的一个人工智能代理应用开发框架,为开发人员提供了一种极为简洁高效的方式,通过 Pythonic 的开发范式构建代理应用。Promptulate 的核心理念是借鉴并整合开源社区的智慧,将多种开发框架的亮点融入其中,以降低入门门槛并统一开发者的共识。通过 Promptulate,开发者可以用最简洁的代码处理组件,如 LLM、Agent、Tool、RAG 等,因为大多数任务只需几行代码就能轻松完成。🚀
💡 主要特性
- Pythonic 代码风格: 采用 Python 开发者的编码习惯,提供 Pythonic 的 SDK 调用方式,只需一个
pne.chat
函数即可封装所有核心功能。 - 模型兼容性强: 支持市场上几乎所有类型的大模型,并允许轻松定制以满足特定需求。
- 多样化的代理: 提供多种类型的代理,如 WebAgent、ToolAgent、CodeAgent 等,能进行计划、推理和行动,从而处理复杂问题。原子化的计划者和其他组件简化了开发过程。
- 低成本集成: 轻松集成诸如 LangChain 等不同框架的工具,显著降低集成成本。
- 函数即工具: 将任何 Python 函数直接转换为代理可用的工具,简化了工具的创建和使用过程。
- 生命周期与钩子: 针对代理、工具和 LLM 提供丰富的钩子和完善的生命周期管理,允许在不同阶段插入自定义代码。
- 终端集成: 便捷集成应用终端,内置客户端支持,提供快速调试功能。
- 提示缓存: 为 LLM 提供提示缓存机制,减少重复工作,提高开发效率。
- 强大的 OpenAI 包装器: 使用 pne,无需再使用 openai sdk,核心功能可用 pne.chat 替代,简化了开发难度。
- Streamlit 组件集成: 快速原型设计,并提供大量开箱即用的示例和可重用的 Streamlit 组件。
支持的基础模型
Promptulate 集成了 litellm 的能力,支持市场上几乎所有类型的大模型。通过 pne,您可以轻松构建任何第三方模型的调用。以下是支持的一些模型:
- OpenAI
- Azure
- AWS Sagemaker 和 Bedrock
- Google 的 Vertex AI (Gemini) 和 Palm
- Cloudflare AI Workers
- Huggingface
- 以及更多...
详细模型支持请访问 litellm 文档。
使用示例
下面是使用本地 llama3 模型的一个简单示例:
import promptulate as pne
resp: str = pne.chat(model="ollama/llama2", messages=[{"content": "Hello, how are you?", "role": "user"}])
另一个示例中,利用多模态功能进行图像分析:
import promptulate as pne
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
},
],
}
]
resp = pne.chat(model="gpt-4o", messages=messages)
print(resp)
快速开始
- 在终端中输入以下命令安装框架:
pip install -U pne
注意:Python 版本需为 3.8 或更高。
虽然 pne 提供了许多模块,但在 90% 的 LLM 应用开发场景中,您只需使用 pne.chat()
函数。您可以从 chat 入手,之后根据需要了解更多模块的功能和使用方法。
联系与贡献
如需更多信息,请通过 zeeland4work@gmail.com 联系我们。
非常感谢您对我们开源项目的兴趣。我们提供了 开发者指南,详细解释了如何为 Promptulate 做出贡献。您也可以查看 当前开发计划 了解最新的开发进度。贡献对于我们项目的成功和持续改进至关重要。🤝🚀