ทำให้พรอมต์ 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 ที่ให้คุณสร้างอินเทอร์เฟซ API สำหรับพร้อมท์ LLM ของคุณได้ มันจะสร้างเซิร์ฟเวอร์โดยอัตโนมัติสำหรับพร้อมท์ของคุณที่เก็บไว้ในที่เก็บคอมไพล์ การใช้ 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
และขณะนี้เชื่อมต่อกับ Github ในฐานะโฮสต์ git คุณสามารถใช้พื้นที่เก็บข้อมูลสาธารณะใดๆ พร้อมข้อความแจ้งในนั้น (ตราบใดที่พื้นที่เก็บข้อมูลเหล่านั้นเป็นไปตามรูปแบบที่ยอมรับ)
ตัวอย่างเช่น การใช้พื้นที่เก็บข้อมูล rafalzawadzki/spellbook-prompts คุณสามารถสร้างจุดสิ้นสุดได้ (และอื่นๆ อีกมากมาย):
https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world
เอกสารฉบับเต็มจะมาเร็ว ๆ นี้!
หากคุณต้องการใช้การสืบค้น execute
บนอินสแตนซ์ Spellbook-forge ของคุณเอง คุณต้องระบุคีย์ OpenAI API ในไฟล์ .env หรือตัวแปร env:
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 โดยตรง!
ในอนาคต ฉันอาจมีส่วนร่วมในการขยายฟังก์ชัน prompt/load
ของ LangChain เพื่อรองรับการโหลดพร้อมท์จาก Spellbook เช่น:
import { loadPrompt } from "langchain/prompts/load" ;
const prompt = await loadPrompt ( "{spellbook-host}/hello-world/prompt" ) ;
POST /prompt?execute
ด้วยเนื้อหา execute=gpt4