Giter Club home page Giter Club logo

prompt-me's Introduction

promptulate

promptulate 是一个专为Prompt工程师设计的大语言模型自动化与应用开发框架,支持智能决策、消息持久化、外部工具调用、角色预设等功能,开箱即用。 通过 promptulate,你可以轻松构建起属于自己的LLM应用程序。

promptulate旨在构建为开发者提供一种强大而灵活的平台,以创建能够自动化各种任务和应用程序的自主代理。通过Core AI Engine、Agent System、APIs and Tools Provider、Multimodal Processing、Knowledge Base和Task-specific Modules 6个组件实现自动化AI平台。 Core AI Engine是该框架的核心组件,负责处理和理解各种输入,生成输出和作出决策。Agent System是提供高级指导和控制AI代理行为的模块;APIs and Tools Provider提供工具和服务交互的API和集成库;Multimodal Processing是一组处理和理解不同数据类型(如文本、图像、音频和视频)的模块,使用深度学习模型从不同数据模式中提取有意义的信息;Knowledge Base是一个存储和组织世界信息的大型结构化知识库,使AI代理能够访问和推理大量的知识;Task-specific Modules是一组专门设计用于执行特定任务的模块,例如情感分析、机器翻译或目标检测等。通过这些组件的组合,框架提供了一个全面、灵活和强大的平台,能够实现各种复杂任务和应用程序的自动化。

特性

  • 大语言模型支持:支持不同类型的大语言模型的扩展接口
  • 对话终端:提供简易对话终端,直接体验与大语言模型的对话
  • 角色预设:提供预设角色,以不同的角度调用GPT
  • 长对话模式:支持长对话聊天,支持多种方式的对话持久化
  • 外部工具:集成外部工具能力,可以进行网络搜索、执行Python代码等强大的功能
  • KEY池:提供API key池,彻底解决key限速的问题
  • 智能代理:集成ReAct,self-ask等高级Agent,结合外部工具赋能LLM
  • 自治代理模式:支持调用API官方接口、自治代理或使用promptulate提供的代理
  • 中文优化:针对中文语境进行特别优化,更适合中文场景
  • 数据导出:支持markdowm等格式的对话导出
  • 对话总结:提供API式的对话总结、翻译、标题生成
  • 事件总线:自研总线机制,通过broadcast-service进行Planing与Action的并发调度
  • 高级抽象,支持插件扩展、存储扩展、大语言模型扩展

快速开始

基础架构

在本人深度阅读langchain, Auto-GPT, django, django-rest-framework, gpt_academic... 等项目的源码,参与pr之后,学习它们的架构、代码设计思路等内容,重构了两次,有了现在的版本,相较于之前的老版本prompt-mepromptulate 重新构建了 llms, message, memory, framework, preset_roles, tools, provider等模块,将prompt 的各个流程全部组件化,便有了现在的promptualte框架。当前promptualte仍有很多细节需要完善,也十分欢迎大家的讨论与参与。

promptualte作为一个为大语言模型设计的Prompt Layer框架,主要由以下几部分组成:

  • Agent 更高级的执行器,负责复杂任务的调度和分发
  • framework 框架层,实现不同类型的prompt框架,包括最基础的Conversation模型,还有self-askReAct等模型。
  • llm 大语言模型,负责生成回答,可以支持不同类型的大语言模型
  • memory 负责对话的存储,支持不同的存储方式及其扩展,如文件存储、数据库存储等
  • tools 提供外部工具扩展调用,如搜索引擎、计算器、编译器等
  • preset roles 提供预设角色,进行定制化对话
  • provider 为framework和agent提供tools和其他细粒度能力的集成

设计原则

promptulate框架的设计原则包括:模块化、可扩展性、互操作性、鲁棒性、可维护性、安全性、效率和可用性。

  • 模块化是指以模块为基本单位,允许方便地集成新的组件、模型和工具。
  • 可扩展性是指框架能够处理大量数据、复杂任务和高并发的能力。
  • 互操作性是指该框架与各种外部系统、工具和服务兼容,并且能够实现无缝集成和通信。
  • 鲁棒性是指框架具备强大的错误处理、容错和恢复机制,以确保在各种条件下可靠地运行。
  • 安全性是指框架采用了严格的安全措施,以保护框架、其数据和用户免受未经授权访问和恶意行为的侵害。
  • 效率是指优化框架的性能、资源使用和响应时间,以确保流畅和敏锐的用户体验。
  • 可用性是指该框架采用用户友好的界面和清晰的文档,使其易于使用和理解。

以上原则的遵循,以及最新的人工智能技术的应用,promptulate旨在为创建自动化代理提供强大而灵活的大语言模型应用开发框架。

交流群

欢迎加入群聊一起交流讨论有关LLM相关的话题,链接过期了可以issue或email提醒一下作者。

贡献

本人正在尝试一些更加完善的抽象模式,以更好地兼容该框架,以及外部工具的扩展使用,如果你有更好的建议,欢迎一起讨论交流。 如果你想为这个项目做贡献,请先查看当前开发计划参与贡献/开发者手册。我很高兴看到更多的人参与并优化它。

prompt-me's People

Contributors

undertone0809 avatar hizeros avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.