Jadikan perintah LLM Anda dapat dieksekusi dan dikontrol versinya.
Di server Ekspres Anda:
yarn add spellbook-forge
import { spellbookForge } from "spellbook-forge" ;
const app = express ( )
. use ( spellbookForge ( {
gitHost : 'https://github.com'
} ) )
kemudian:
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!"
}
Lihat contoh langsung untuk mencobanya!
Ini adalah middleware ExpressJS yang memungkinkan Anda membuat antarmuka API untuk perintah LLM Anda. Ini secara otomatis akan menghasilkan server untuk prompt Anda yang disimpan dalam repositori git. Dengan menggunakan Buku Ejaan, Anda dapat:
Catatan: Ini adalah versi awal. Harapkan bug, perubahan yang mengganggu, dan kinerja yang buruk.
Repositori cepat ini: https://github.com/rafalzawadzki/spellbook-prompts/hello-world
Dapat dieksekusi seperti ini: https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world?execute
➡️ Server buku ejaan: https://book.spell.so
Server menggunakan spellbook-forge
dan saat ini terhubung ke Github sebagai host git. Anda dapat menggunakan repositori publik mana pun yang memiliki perintah di dalamnya (asalkan repositori tersebut mematuhi format yang diterima).
Misalnya, dengan menggunakan repositori rafalzawadzki/spellbook-prompts, Anda dapat membentuk titik akhir (dan banyak lagi):
https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world
Dokumentasi lengkap segera hadir!
Jika Anda ingin menggunakan kueri execute
pada instance spellbook-forge Anda sendiri, Anda perlu menyediakan kunci API OpenAI dalam file .env atau variabel env:
OPENAI_API_KEY=your-key
File prompt harus mematuhi format tertentu (JSON/YAML). Lihat contohnya di sini.
├── prompt1
│ ├── prompt . json
│ └── readme . md
└── collection
└── prompt2
├── prompt . yaml
└── readme . md
Struktur file di atas akan menghasilkan titik akhir API berikut:
{host}/prompt1
{host}/collection/prompt2
prompt.json
file utama dengan konten dan konfigurasi prompt.readme.md
informasi tambahan tentang penggunaan cepat, contoh, dll. GET
{host}/path/to/prompt
- dapatkan konten cepat
POST
{host}/path/to/prompt
- memasukkan konten prompt
DELETE
{host}/path/to/prompt
- hapus perintah (bersama dengan readme dan metadata!)
GET
{host}/path/to/prompt?execute
- untuk perintah sederhana tanpa membuat templat
POST
{host}/path/to/prompt?execute
- untuk perintah dengan templating (disarankan)
// request body
{
"variables": [
"name": "World"
]
}
GET
{host}/path/to/prompt?execute=gpt4
- dengan model berbeda (belum diterapkan)Anda dapat mengambil konten prompt dan menjalankannya menggunakan 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 ...
}
Solusi yang disajikan sebagian besar masuk akal dalam rangkaian, untuk petunjuk sederhana yang terbaik adalah menggunakan Buku Ejaan secara langsung!
Di masa depan saya dapat berkontribusi untuk memperluas fungsi prompt/load
LangChain untuk mendukung perintah pemuatan dari Spellbook, misalnya:
import { loadPrompt } from "langchain/prompts/load" ;
const prompt = await loadPrompt ( "{spellbook-host}/hello-world/prompt" ) ;
POST /prompt?execute
dengan isi execute=gpt4