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!"
}
実際の例を参照して試してみてください。
これは、LLM プロンプトの API インターフェイスを作成できる ExpressJS ミドルウェアです。プロンプト用のサーバーが自動的に生成され、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
完全なドキュメントは近日公開予定です。
独自の Spellbook-Forge インスタンスでクエリexecute
を使用したい場合は、.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
- プロンプトを (readme とメタデータとともに) 削除します。
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