使您的 LLM 提示可执行并受版本控制。
在您的 Express 服务器中:
yarn add spellbook-forge
import { spellbookForge } from "spellbook-forge" ;
const app = express ( )
. use ( spellbookForge ( {
gitHost : 'https://github.com'
} ) )
进而:
GET http://localhost:3000/your/repository/prompt?execute
<-- HTTP 200
{
"prompt-content": "Complete this phrase in coders’ language: Hello …",
"model": "gpt3.5",
"result": "Hello, World!"
}
查看实例来尝试一下!
这是一个 ExpressJS 中间件,允许您为 LLM 提示创建 API 接口。它会自动为您的提示生成一个服务器,存储在 git 存储库中。使用 Spellbook,您可以:
注意:这是一个早期版本。预计会出现错误、重大变更和性能不佳。
此提示存储库:https://github.com/rafalzawadzki/spellbook-prompts/hello-world
可以这样执行:https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world?execute
➡️法术书服务器:https://book.spell.so
服务器使用spellbook-forge
,目前已作为git 主机连接到Github。您可以使用任何带有提示的公共存储库(只要它们遵循可接受的格式)。
例如,使用存储库 rafalzawadzki/spellbook-prompts,您可以形成一个端点(以及更多端点):
https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world
完整文档即将推出!
如果您想在自己的pellbook-forge实例上使用execute
查询,则需要在.env文件或env变量中提供OpenAI API密钥:
OPENAI_API_KEY=your-key
提示文件必须遵循特定格式 (JSON/YAML)。请参阅此处的示例。
├── prompt1
│ ├── prompt . json
│ └── readme . md
└── collection
└── prompt2
├── prompt . yaml
└── readme . md
上述文件结构将导致生成以下 API 端点:
{host}/prompt1
{host}/collection/prompt2
prompt.json
包含提示内容和配置的主文件。readme.md
有关提示使用、示例等的附加信息。GET
{host}/path/to/prompt
- 获取提示内容
POST
{host}/path/to/prompt
- 更新插入提示内容
DELETE
{host}/path/to/prompt
- 删除提示(以及自述文件和元数据!)
GET
{host}/path/to/prompt?execute
- 用于无需模板的简单提示
POST
{host}/path/to/prompt?execute
- 用于带有模板的提示(推荐)
// request body
{
"variables": [
"name": "World"
]
}
GET
{host}/path/to/prompt?execute=gpt4
- 使用不同的模型(尚未实现)您可以使用LangChain获取提示内容并执行:
import { PromptTemplate } from "langchain/prompts" ;
export const run = async ( ) => {
const template = await fetch (
"https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world"
) . then ( ( res ) => res . text ( ) ) ;
const prompt = new PromptTemplate ( { template , inputVariables : [ "product" ] } )
// do something with the prompt ...
}
ofc 提出的解决方案主要在链接中有意义,对于简单的提示,最好直接使用 Spellbook!
将来我可能会贡献扩展LangChain prompt/load
功能以支持从Spellbook加载提示,例如:
import { loadPrompt } from "langchain/prompts/load" ;
const prompt = await loadPrompt ( "{spellbook-host}/hello-world/prompt" ) ;
POST /prompt?execute
execute=gpt4