اجعل مطالبات 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 الخاصة بك. سيقوم تلقائيًا بإنشاء خادم لمطالباتك المخزنة في مستودع 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
وهو متصل حاليًا بـ Github كمضيف git. يمكنك استخدام أي مستودع عام يحتوي على مطالبات (طالما أنه يلتزم بالتنسيق المقبول).
على سبيل المثال، باستخدام مطالبات مستودع rafalzawadzki/spellbook، يمكنك تشكيل نقطة نهاية (وغيرها الكثير):
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
- حذف المطالبة (مع الملف التمهيدي والبيانات الوصفية!)
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 ...
}
الحل المقدم منطقي في الغالب في التسلسل، بالنسبة للمطالبات البسيطة، من الأفضل استخدام 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