ssprompt:一个LLM Prompt分发管理工具

阅读顺序

  • 前言
  • ssprompt介绍
      • 命令介绍
      • Metafile介绍
        • 版本依赖规则
    • PromptHub
        • GitHub Token
    • Quick Install
      • 系统依赖
      • pip安装
      • Linux, macOS, Windows (WSL)
      • Windows (Powershell)
    • Roadmap
    • 项目交流讨论

前言

自从OpenAI掀起了一轮新的AI革命,国内外众多玩家入场接受时代洗礼,一时间LLM相关技术井喷,而提示工程( prompt engineering )就在其中。
它就像是为大语言模型(LLM)设计的"语言游戏"。通过这个"游戏",我们可以更有效地引导 LLM 来处理问题。在真正的通用智能到来前,基于当前的LLM范式,要充分发挥LLM的优势,Prompt设计越来越复杂化,进一步Prompt的代码化,模块化会越发明显,同时写prompt将会成为AI时代人的基本技能。
基于此,我构思创作了ssprompt,希望每个人都能利用Prompt,享受AI时代红利

ssprompt介绍

ssprompt是一个Prompt分发管理工具,定义了一套Prompt分发规则
支持创建Prompt工程和拉取Prompt Hub上对应Prompt的工程文件到本地工程

ssprompt:一个LLM Prompt分发管理工具_第1张图片

注:以下为 0.1.0 第一版ssprompt的内容介绍,项目还在持续完善,如有疏漏或不足之处请包涵了解,谢谢~

命令介绍

  • ssprompt new -> 新建一个新的Prompt工程,指定工程目录,Prompt类型等参数
  • ssprompt init -> 基于当前目录,引导创建一个Prompt工程
  • ssprompt add -> 添加一个不同Prompt类型和相关依赖到metafile,并生成相应的Prompt工程目录(工程配置文件)
  • ssprompt show -> 展示本地Prompt工程的基本信息(metafile)或拉取PromptHub上对应工程的信息
  • ssprompt pull -> 拉取远端工程到本地项目中,相关工程可以引用Prompt文件或代码
  • ssprompt list -> 展示当前版本ssprompt支持的命令
  • ssprompt about -> 展示ssprompt的介绍和版本信息
  • ssprompt version -> 展示ssprompt的版本信息

更多命令参数详情,请使用ssprompt [command] -h进一步了解

Metafile介绍

ssprompt通过定义prompt工程的Meta文件来约束管理Prompt分发规则和内容
ssprompt关于prompt定义了四种类型的Prompt

  • Text
  • Json
  • Yaml
  • Python

可以按需生成对应的Prompt上传到PromptHub进行分发
metafile以Prompt工程名称命名,如prompt_project.yaml ,是ssprompt管理Prompt分发的关键

注:上述类型结合参考了langchain和haystack

#Prompt工程基础信息
meta:
  name: open #工程名称
  author: 
  - ptonlix >
  description: ''
  license: MIT #Prompt工程遵循的协议
  llm:    #Prompt支持的LLM模型
  - gpt-3.5-turbo 
  readme_format: md #Readme文件格式
  tag:  #Prompt工程相关类型领域,如question-generation common为公共领域
  - common
  version: 0.1.0 #版本号

#Text类型的Prompt
text_prompt:
  dirname: text #目录名称, 默认为text

#Json类型的Prompt
json_prompt:
  dirname: json #目录名称,默认为json
  list:                  #支持多个json类型子工程
  - dependencies:   
      langchain: 0.0.266 #json解析依赖的三方库版本号,如langchain等
    name: example        #子工程名,对应生成工程目录名

#Yaml类型的prompt
yaml_prompt: 
  dirname: yaml #目录名称,默认为yaml
  list:					 #支持多个yaml类型子工程
  - dependencies:		
      langchain: 0.0.266 #yaml解析依赖的三方库版本号,如langchain等
    name: example		 #子工程名,对应生成工程目录名

#Python类型的Prompt
python_prompt:	#目录名称,默认为yaml
  dirname: python		 #目录名称,默认为yaml
  list: 				 #支持多个yaml类型子工程
  - dependencies:
      langchain: 0.0.266 #Python库引用的三方库版本号,如langchain等
    name: example		 #子工程名,对应生成工程目录名

版本依赖规则

当前版本支持三种版本依赖规则

  • Caret requirements

    • ^1.2.3
  • Tilde requirements

    • ~1.2.3
  • Wildcard requirements

    • 1.2.*
  • laster

    • 支持最新版本

PromptHub

目前ssprompt生成的Prompt工程,依赖Git管理,通过Git将Prompt工程上传到Git仓库以便ssprompt拉取引用

当前默认PromptHub托管在GitHub ptonlix/PromptHub

目前PromptHub的Prompt工程还在持续建设中

后续会陆续收集和建设更多Prompt工程发布到我们PromptHub ☁️

欢迎大家上传自己的Prompt到PromptHub,共建一个开源的Prompt生态

GitHub Token

由于目前GitHub API请求访问限制,不采用authentication访问,会限制一个小时只能访问60次,导致使用ssprompt频繁拉取工程时存在403限制请求

推荐在使用ssprompt时,设置GitHub Personal access tokens到环境变量

export GITHUB_ACCESS_KEY=`Your GitHub Token`

Quick Install

系统依赖

Ssprompt requires Python 3.10+

✨支持多平台使用,满足广大Prompt Engineer

pip安装

pip install ssprompt

Linux, macOS, Windows (WSL)

curl -sSL https://raw.githubusercontent.com/ptonlix/ssprompt/main/install.py | python3 -

Windows (Powershell)

(Invoke-WebRequest -Uri https://raw.githubusercontent.com/ptonlix/ssprompt/main/install.py -UseBasicParsing).Conte

Roadmap

  • 搭建ssprompt初步框架,完善基本功能
  • 完善ssprompt命令
    1. pull命令支持拉取特定类型Prompt工程到本地
    2. show命令支持展示更多PromptHub信息
  • 搭建和完善PromptHub
    1. 收集全网优秀的Prompt案例,使用ssprompt 构建工程并上传到PromptHub
  • ssprompt网站与文档建设
    1. ssprompt 说明文档
    2. PromptHub 网站建设

项目交流讨论

项目地址 ptonlix/ssprompt

如果你也对本项目感兴趣,欢迎联系作者,加入ssprompt项目群参与讨论交流。

欢迎大家贡献力量,一起共建ssprompt,您可以做任何有益事情

  • 报告错误
  • 建议改进
  • 文档贡献
  • 代码贡献

你可能感兴趣的:(python,github,prompt,ai)