Skip to content

⚡ A LLM Prompt distribution tool ⚡

License

Notifications You must be signed in to change notification settings

PlumpMole/ssprompt

 
 

Repository files navigation

🌌 ssprompt

简体中文 | English


Change the world, even a little bit.

 Python cleo license

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

🚀 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).Content | py -

🔔 What it can do?

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

Ssprompt Interaction

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

ssprompt show

命令介绍

  • 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 <[email protected]>
  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`

🚩 Roadmap

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

🌏 项目交流讨论

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

💥 贡献

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

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

About

⚡ A LLM Prompt distribution tool ⚡

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%