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

⭐前言

自从OpenAI掀起了一轮新的AI革命,国内外众多玩家入场接受时代洗礼,一时间LLM相关技术井喷,而提示工程( prompt engineering )就在其中。

它就像是为大语言模型(LLM)设计的"语言游戏"。通过这个"游戏",我们可以更有效地引导 LLM 来处理问题。在真正的通用智能到来前,基于当前的LLM范式,要充分发挥LLM的优势,Prompt设计越来越复杂化,进一步Prompt的代码化,模块化会越发明显,同时写prompt将会成为AI时代人的基本技能。

基于此,我构思创作了ssprompt,希望每个人都能利用Prompt,享受AI时代红利

🔔ssprompt介绍

ssprompt 是一个Prompt分发管理工具,定义了一套Prompt分发规则

支持创建Prompt工程和拉取Prompt Hub上对应Prompt的工程文件到本地工程

注:以下为 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

yaml 复制代码
#Prompt工程基础信息
meta:
  name: open #工程名称
  author: 
  - ptonlix <baird0917@163.com>
  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到环境变量

ini 复制代码
export GITHUB_ACCESS_KEY=`Your GitHub Token`

🚀 Quick Install

系统依赖

Ssprompt requires Python 3.10+

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

pip安装

复制代码
pip install ssprompt

Linux, macOS, Windows (WSL)

ruby 复制代码
curl -sSL https://raw.githubusercontent.com/ptonlix/ssprompt/main/install.py | python3 -

Windows (Powershell)

ruby 复制代码
(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,您可以做任何有益事情

  • 报告错误
  • 建议改进
  • 文档贡献
  • 代码贡献
    ...
    👏👏👏
相关推荐
牛奔10 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
想用offer打牌15 小时前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp
passerby606116 小时前
完成前端时间处理的另一块版图
前端·github·web components
KYGALYX16 小时前
服务异步通信
开发语言·后端·微服务·ruby
掘了16 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
在校大学生00717 小时前
AI教我赚100万用1年的时间–4(水文)
aigc
爬山算法17 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
Moment17 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
心疼你的一切17 小时前
解密CANN仓库:AIGC的算力底座、关键应用与API实战解析
数据仓库·深度学习·aigc·cann