使您的 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